go语言并发之MPG模型

请记住go并发的真理: Do not communicate by sharing memory; instead, share memory by communicating.不要以共享内存的方式来通信,相反,要通过通信来共享内存。 go语言天生的并发大家都知道,可是go是如何实现轻松的构造上万的协程呢?今天我们就说一下go并发的MPG模型。 M 代表着一个内核线程,也可以称为一个工作线程。goroutine就是跑在M之上的 P 代表着(Processor)处理器 它的主要用途就是用来执行go...阅读全文

51CTO博客 2020-07-15 15:54:21 阿泽Aze

Crawlab Lite 正式发布,更轻量的爬虫管理平台

Crawlab 是一款基于 Golang 的分布式爬虫管理平台,产品发布已经一年有余,经过开发团队的不断打磨,即将迭代到 v0.5 版本。在这期间我们为 Crawlab 加入了大量社区用户共同期望的功能,使产品更加专业。但与此同时我们也注意到,部分用户并不是分布式爬虫用户,他们更多只是在单机情况下使用 Crawlab。其次目前 Crawlab 逐步加入了丰富的功能,也使整个产品逐渐巨化,大部分用户并不能充分使用所有的功能。因此 Crawlab Lite 作为 Crawlab 的轻量化版本正式发布...阅读全文

Segmentfault 2020-07-16 00:32:42 张凯强

docker封装首次实践记录 2020-07-15

实践环境 从docker官仓pull下来的centos:latest镜像,run起来之后执行yum install epel-release && yum install golang装好go,但未配置go相关环境变量。然后commit 生成带go的新镜像,命名为centos:golang centos:golang 实践目标 通过Dockerfile 和 docker build命令,在centos:golang镜像的基础上进一步封装,创建新镜像centos:autorungoapp Dock...阅读全文

简书 2020-07-15 19:32:44 9_SooHyun

就这,就这,一篇就搞定微服务体系,我反正收藏了章

前言微服务概念微服务是对于微信公众平台帐号提供的辅助管理平台,强化了微信公众号的互动营销推广与客户关系维护功能。微服务平台开发了为商家定制的“个性化管理、营销推广、客户关系管理、会员卡管理”等几个重要的运营管理模块。具体功能包括分层级的自动应答菜单编辑功能,互动游戏,优惠券发放,抽奖,人工微信客服即时响应,用户管理与会员卡管理等,实现了通过微信对接商家的线下业务,助力企业率先进入移动电商时代。一、微服务技术体系下图列出了微服务的技术体系: 二、Golang微服务技术栈微服务框架go-microg...阅读全文

简书 2020-07-15 19:32:42 程序员时时

GC实现原理学习笔记

原文在此:Golang源码探索(三) GC的实现原理 内存分为了3个区域, 在X64上大小分别是spans:512M, bitmap:16G和arena:512G go的gc保证了go更适合做高并发服务,减少响应时间。 bitmap区域用于表示arena区域中哪些地址保存了对象, 并且对象中哪些地址包含了指针. bitmap区域中一个byte(8 bit)对应了arena区域中的四个指针大小的内存, 也就是2 bit对应一个指针大小的内存. 所以bitmap区域的大小是 512GB / 指针大小...阅读全文

简书 2020-07-15 18:32:49 yellowone

golang gc竟然可以自动关闭tcp连接

事情由来 在golang最近经常写http或者grpc服务,带着这种习惯写了tcp服务,最后看了下代码,tcp连接没有调用fd.Close()方法,竟然没有报错。是测试童鞋没有测试出来,还是另外有玄机? 来个demo模拟 服务端代码,保存为server.go package main import ( "fmt" "log" "net" ) func main() { addr := "0.0.0.0:8787" tcpAddr, err := net.ResolveTCPAddr("tcp",...阅读全文

简书 2020-07-15 18:32:47 疯狂的小蚂蚁go

资料 | 白话深度学习与TensorFlow

下载地址:资料 | 白话深度学习与TensorFlow 内容简介 · · · · · · 本书基本独立成册,适用于零基础的初学者。 基础篇(第1~3章),讲解了机器学习、深度学习与实践的上下文知识,如基本的机器学习与深度学习算法,TensorFlow框架的安全与配置,简单的深度学习实践。该篇是阅读和实践的基石。 原理与实践篇(第4~8章),介绍“老牌”的深度学习网络的数学原理和工程实现原理,尤其是第4章,如果能基本读懂,后面的网络实现层面的问题基本都可以迎刃而解。涵盖BP网络、CNN、RNN的结...阅读全文

SpringCloud框架全解析,继续你的微服务之旅,直达成功彼岸

写在前面 Spring Cloud是一系列框架的有序集合, 它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。Spring Cloud微服务工具包为开发者提供了分布式系统中的配置管理、服务发现、断路器、智能路由、微代理、控制总线等开发工具包。它的各个项目基于Spring Boot,将Netlix的多个框架进行封装,并且通过自动配置的方式将这些框架...阅读全文

简书 2020-07-15 18:32:46 Java领域指导者

对于golang中的http server api访问异常(panic)的recover操作

对于golang进程出现crash,大家都知道使用recover,但是对于http server这种流程,recover应该怎么加呢? 一般会想到: package main import ( "errors" "fmt" "github.com/gorilla/mux" "log" "net/http" ) func main() { defer func() { // 必须要先声明defer,否则不能捕获到panic异常 glog.Infoln("d") if err := recover(...阅读全文

简书 2020-07-15 18:32:43 蒙浩

IPFS下的网络世界:高效高速、低成本,保障数据安全不再难

IPFS是旨在代替HTTP成为新一代网络底层协议的去中心化网络,IPFS的未来愿景:主要是对于全球网络、网络存储数据、证明文件的存储,以及在网络上检索文件等方面的应用。 首先,IPFS能摆脱地理位置的局限。在中心化存储中,大部分数据都集中存储在少数几个服务器中,大部分用户离自己的数据很远。数据被几家存储服务商垄断,无论传输成本,还是数据归属权,都有明显劣势。IPFS将数据分散存储在世界各个角落的闲置服务器中,打破了垄断企业的控制,摆脱地理局限。 其次,IPFS能实现数据的永久保存...阅读全文

Go语言中文网 2020-07-15 18:17:26 zhilianyun1

协程的实现与原理剖析—协程的起源

问题:协程存在的原因?协程能够解决哪些问题?在我们现在CS,BS开发模式下,服务器的吞吐量是一个很重要的参数。其实吞吐量是IO处理时间加上业务处理。为了简单起见,比如,客户端与服务器之间是长连接的,客户端定期给服务器发送心跳包数据。客户端发送一次心跳包到服务器,服务器更新该新客户端状态的。心跳包发送的过程,业务处理时长等于IO读取(RECV系统调用)加上业务处理(更新客户状态)。吞吐量等于1s业务处理次数。​业务处理(更新客户端状态)时间,业务不一样的,处理时间不一样,我们就不做讨论。那如何提升...阅读全文

Go语言中文网 2020-07-15 17:07:03 yttsam

计算机网络基础(三)---网络层-IP协议的转发流程

文章内容概览 在上一篇文章中提到,计算机A在给计算机B发送数据的时候,数据的路径,可能是通过中型网络、大型网络、中型网络、小型网络,然后到达计算机B 现在把这条路径抽取出来 并且将其压平,可以看到计算机A通过中间的3个网络和路由器,将数据报文传输给了B 关于数据的转发过程,有一个概念叫:逐跳(hop-by-hop)。意思就是计算机A发送的报文是一跳一跳的来到计算机B的,网络1==》路由器1==》网络2==》路由器2==》网络3==》计算机B 路由表简介 在前边介绍数据链路层的时候,有提到过一个M...阅读全文

Segmentfault 2020-07-16 00:32:40 书旅

从零学习 Go 语言(30):如何使用 GDB 调试 Go 程序?

![](http://image.iswbm.com/20200607145423.png) 在线博客:http://golang.iswbm.com/ Github:https://github.com/iswbm/GolangCodingTime --- 做为新手,熟练掌握一个好的调试工具,对于我们学习语言或者排查问题的时候,非常有帮助。 你如果使用 VS Code 或者 Goland ,可以直接上手,我就不再写这方面的文章了。 其实相比有用户界面的 ...阅读全文

Go语言中文网 2020-07-15 08:41:37 hello_wbm

小姐姐用动图展示 10 大 Git 命令,包你看完过目不忘!

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载 原文:https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1 作者:Lydia Hallie,机器之心编译,参与:Panda、杜伟 git merge、git rebase、git reset、git revert、git fetch、git pull、git reflog……你知道这些 git 命令执行的究竟是什么任务吗?如果你还有些分...阅读全文

简书 2020-07-14 22:33:06 Java技术栈

万级K8s集群背后 etcd 稳定性及性能优化实践

1背景与挑战随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群、EKS弹性集群、edge边缘计算集群、mesh服务网格、serverless knative)也越来越丰富。各类容器服务类型背后的核心都是K8s,K8s核心的存储etcd又统一由我们基于K8s构建的etcd平台进行管理。基于它我们目前管理了千级etcd集群,背后支撑了万级K8s集群。在万级K8s集群规模下的我们如何高效保障etcd集群的稳...阅读全文

简书 2020-07-14 22:32:58 灵雀云

vscode 使用Markdown

什么是Markdown Markdown 是一种轻量级文本标记语言,使用markdown不需要排版,你只要关系内容。说到语言,不用紧张,简单的标记语言,并非要你要你学习一门编程。只要你掌握了markdown,你就会觉得那些收费的offices太重了。写作一直是这个时代最好的投资,学习最好的方式是费曼学习法,你要用最通俗易懂的语言把你学的专业知识将给一个外行人听。如果做不到这点,说明你对知识的掌握就是一知半解。 常用的markdown编辑器 1 . markdownpad 2 . typora 这...阅读全文

简书 2020-07-14 22:32:49 Charon93