![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go
文章平均质量分 60
向阳的野草
这个作者很懒,什么都没留下…
展开
-
微服务组件之consul
微服务组件之consul概述在微服务中会有大量的函数,如果进行一对一的管理会很繁琐,所以需要一个管理发现的工具。consul是开源工具,用于实现分布式系统,服务发现和配置。安装https://blog.csdn.net/u013536232/article/details/1041372433consul角色client端:无状态,将http和dns接口的请求转发给局域网内的服务器集群server端:保存配置信息,高可用集群,在局域网内部与本地客户端进行通信,通过广域网与其他数据原创 2021-08-19 15:19:14 · 132 阅读 · 0 评论 -
微服务组件之grpc
微服务组件之grpc概述grpc是一个高性能、开源、通用的rpc框架,面向移动和http/2设计,带来诸如双向流、流控、头部压缩、单tcp连接的多复用请求等特点,简单来说可以认为是一个比http好用的协议。rpc即远程过程调用协议,通过网络从远程计算机进行请求,和web请求差不多,但是web请求是使用的http高层协议,而rpc使用的多是tcp协议,是网络层的协议减少了一部分信息的包装,加快了网络处理的速度。golang自有rpc包,可以用于构建rpc服务。rpc使用实例服务端pa原创 2021-08-19 11:16:47 · 612 阅读 · 0 评论 -
微服务组件之proto
微服务组件之protoprotobuf和平台、语言无关的一种序列化的数据格式,适合用来做数据存储和作为不同语言、应用、平台之间相互通信的数据格式,只要实现proto的不同语言版本,加入不同的工程中,其他语言就可以解析出序列化的数据,官网目前提供C++、Python、Java、Go。08年开源。格式对比json:一般的web项目中主要使用的是json,浏览器对json支持非常好,内建的函数支持。xml:在webservice中应用比较广泛,相比json会显得更加的荣誉,json使用键值对的原创 2021-08-18 15:54:08 · 457 阅读 · 0 评论 -
dial tcp: lookup kafka:Temporary failure in name resolution
概述在使用"github.com/Shopify/sarama"连接kafka发送测试消息的时候出现dial tcp: lookup kafka:Temporary failure in name resolution解决:在/etc/hosts文件增加kafka的ip实例代码package mainimport ( "fmt" "github.com/Shopify/sarama")func main() { config := sarama.NewConfig() co原创 2021-07-18 20:57:56 · 1751 阅读 · 1 评论 -
什么是协程
概述随着GO的流行,协程概念讨论越来越多,用一篇文章记录协程协程线程在java中线程是一个重要概念,程序想要高性能高并发就离不开线程在使用线程中一般会用线程池,即用有限的线程执行大量并发任务,以期达到减少线程数量,线程创建、关闭、切换的开销。单单线程池还不足以支持高并发,在执行过程中有阻塞就会在一定程度上导致性能下降–>消除阻塞。阻塞原因:sleep、wait、IO(read、write)解决办法:io->NIO、sleep->回调(代码会被切分很多段,不符合人体工学难原创 2021-07-12 09:53:30 · 155 阅读 · 0 评论 -
2021-07-11回顾
本部分内容:Context单元测试pprof调试工具(代码cpu内存的信息)回顾:Sync.Mutex是一个结构体,值类型传参的时候要传指针 不然会i产生拷贝 变成两把锁两个方法:mutex.lock();mutext.unlock();为什么要用锁:防止多个groutine操作同一个互斥资源读写互斥锁:应用场景:适用与读多写少的应用场景特点:读的goroutine来了是读锁机 后续的能读不能写写的goroutine获取写锁,后续不管是读还是写都要等原创 2021-07-11 11:37:44 · 64 阅读 · 1 评论 -
Go解决TCP粘包
粘包tcp粘包:tcp是流式协议:发送包的时候一次可能没有发完可能给了下一次 nagle算法导致客户端发送的粘包,本意是为了改善客户端网络nagle算法该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要收集这些少量的分组,并在ack到来时以一个分组的方式发送出去;其中小分组的定义是小于MSS的任何分组; 该算法的优越之处在于它是自适应的,确认到达的越快,数据也就发哦送的越快;而在希望减少微小分组数目的低速广域网上,则原创 2021-07-10 11:28:20 · 1254 阅读 · 1 评论 -
k8s二进制安装部署超超详细指南
k8s安装部署详细指南概念什么是k8sK8s的功能k8s集群架构K8s部署步骤集群结构实验环境规划部署单master集群集群规划:初始化服务器关闭防火墙(所有节点都执行)关闭selinux(所有节点都执行)配置主机名称(所有节点都执行)配置名称解析 host文件(所有节点都执行)配置时间同步配置k8s-master1配置客户端 node1 node2关闭交换分区(会导致服务起不来)部署集群给etcd颁发证书部署etcd概念什么是k8sK8s是一组服务器集群 K8s所管理的集群节点上的容器K8s的原创 2021-07-09 19:32:27 · 4145 阅读 · 1 评论 -
vscode go t.Log不显示解决
配置好vscode的go开发环境之后,在默认情况下在控制台t.Log(a)是不会打印内容的,如:package fibnacimport ( "fmt" "testing")func TestFib(t *testing.T) { a := 1 b := 1 t.Log(a) fmt.Print("打印:",a) for i := 0; i < 5; i++ { t.Log(" ", b) tmp := a a = b b = tmp + a }}原创 2021-06-22 17:21:32 · 1554 阅读 · 0 评论