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