- 博客(8)
- 收藏
- 关注
原创 分布式 和 微服务
2.将复杂的服务(应用)拆分成多个微小的服务,单独运行和部署,服务与服务之间通过RPC通信。2.将同一个服务拆分成(不同组件)部署到多台机器(分摊单台机器的部署压力)集群:zookeeper 选举 主从 ,kafka 消息队列。1、垂直拆分: 功能分离,例如前端后端分离。注册中心 ,负载均衡 ---》 etcd。2、水平拆分:增加机器,线程池,集群。通信问题:Restful RPC。1.系统架构的一种设计方式。负载均衡:nginx。
2024-08-05 14:21:01
130
原创 websocket --> 使浏览器具备了实时双向通信的能力
基于HTML5,提供一种浏览器与服务器进行全双工通讯的网络技术,应用层协议,基于TCP传输协议,并复用HTTP的握手通道(比传统的HTTP请求/响应模型更高效,因为它不需要建立和拆除连接,从而减少网络延迟)golang.org/x/net/websocket 标准库,不支持多路复用,自定义头部和心跳。gorilla/websocket 支持多路复用,自定义头部和心跳功能。Go语言的WebSocket库。websocket 客户端。websocker服务器。
2024-08-05 13:33:36
282
原创 grpc实现
grpc 高性能的开源rpc框架,基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单tcp连接的多路复用请求。执行命令 protoc --go_out=plugins=grpc :. hello.proto。rpc remote procedure calls 远程过程调用。生成 hello.pb.go 文件。
2024-08-03 21:43:48
171
原创 redis 集群搭建(cluster模式)
1、cluster模式特点多个redis节点网络互联,数据共享所有节点都是一主一从(也可以一主多从),从节点不提供服务,仅作为备用不支持同时处理多个key,因为redis需要把key均匀分布在各个节点上并发量很高的情况下,同时创建key-value会降低性能并导致不可预测的行为支持在线增加、删除节点客户端可以连接任何一个主节点进行读写2、搭建步骤 1)复制服务器文件夹,如图 2)修改各个服务器文件夹下的配置文件redis.windows.co...
2021-10-06 17:31:15
415
1
原创 goland 使用的几个点
1、格式化File-Setting-Tools-File Watchers 点击+下拉列表选择 go fmt , 然后Apply应用2、全局替换ctrul+Shift+R3、使用debug模式 1)添加测试程序图中已经添加了game测试程序,点击game旁边的下箭头,打开 debug configurations, 配置debug2)点击断点执行3)查看执行结果在下部variables 查看执行中产生...
2021-09-24 14:48:43
211
原创 golang 之 channel
通道是引用类型,一个通道类型的变量在初始化之前,其值是nil1.单向管道接收管道 chan<- T发送管道 <-chan T
2018-07-09 15:32:18
155
原创 golang 中select的三种用法
1.超时处理select { case str := <- resultChan: fmt.Println("receive str", str) case <- time.After(time.Second * 5): fmt.Println("timeout!!")}2. 退出select { case <- quit...
2018-07-05 15:18:35
6761
原创 golang并发中的死锁问题
//超时处理func main() {var resultChan = make(chan string)var inputChan = make(chan string)select {case str := <-resultchan:fmt.Println("get string", str)case <- time....
2018-07-05 15:00:54
1333
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人