随笔分类 - Go从入门到精通
发表于 2024-03-21 16:36阅读次数:375评论次数:0
摘要:目录一、Go操作之kafka二、sarama1. 下载及安装2. 注意事项三、连接使用kafka1. 发送消息2. 消费消息 一、Go操作之kafka Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,具有高性能、持久化、多副本备份、横向扩展等特点。本文
阅读全文 »
发表于 2024-03-19 12:22阅读次数:160评论次数:0
摘要:目录一、限流-熔断-降级介绍1.1 限流1.1.1 限流指标TPSHPSQPS1.1.12 限流方法流量计数器滑动时间窗口漏桶算法令牌桶算法1.2 熔断1.2.1 断路器的状态1.2.2 需要考虑的问题1.2.3 使用场景1.3 降级1.4 总结二、熔断限流技术选型2.1 Hystrix2.2 se
阅读全文 »
发表于 2024-03-19 10:07阅读次数:172评论次数:0
摘要:目录Go语言基础之网络编程一、互联网协议介绍二、互联网分层模型1. 物理层2. 数据链路层3. 网络层4. 传输层5. 应用层三、socket编程1. socket图解四、Go语言实现TCP通信1. TCP协议2. TCP服务端3. TCP客户端4. TCP黏包(1)黏包示例(2)为什么会出现粘包(
阅读全文 »
发表于 2024-03-19 10:06阅读次数:286评论次数:0
摘要:目录一、什么是负载均衡1.1 负载均衡软件1.2 七层和四层负载二、负载均衡策略2.1 轮循2.2 加权轮循2.3 最少连接数2.4 最少连接数慢启动时间2.5 加权最少连接2.6 基于代理的自适应负载均衡2.7 固定权重2.8 加权响应2.9 源 IP 哈希三、go-rpc负载均衡演示3.1 pr
阅读全文 »
发表于 2024-03-19 10:05阅读次数:95评论次数:0
摘要:目录一、注册中心1.1 服务注册与发现1.2 分布式一致性算法1.3 注册中心选型二、Consul2.1 介绍2.2 consul特点2.3 安装(1)普通安装i. winii. mac(2)docker安装三、常用API3.1 服务注册(1)使用postman注册演示(2)Go 语言注册3.2 服
阅读全文 »
发表于 2024-03-19 10:05阅读次数:181评论次数:0
摘要:目录一、gRPC超时重试1.1 客户端1.2 服务端1.3 proto二、接口幂等性2.1 什么是幂等性2.2 什么情况下需要幂等2.3 如何保证幂等(1)token机制(2)关键点 先删除token,还是后删除token(3)token机制缺点(4)乐观锁机制(5)唯一主键(6)防重表(7)唯一I
阅读全文 »
发表于 2024-03-19 10:04阅读次数:47评论次数:0
摘要:目录一、grpc metadata机制1.1 proto1.2 生成go文件1.3 服务端1.4 客户端二、grpc 拦截器interceptor2.1 服务端拦截器grpc.UnaryInterceptor(interceptor)2.2 客户端拦截器2.3 开源拦截器三、通过metadata+拦
阅读全文 »
发表于 2024-03-19 10:04阅读次数:91评论次数:0
摘要:目录protobuf进阶一、protobuf 基本类型和默认值1.1 protobuf类型和语言对应关系1.2 protobuf默认值3. 案例(1)目录结构(2)hello.proto(3)生成go文件(4)client/main.go(5)server/main.go二、option go_pa
阅读全文 »
发表于 2024-03-19 10:04阅读次数:940评论次数:0
摘要:目录gRPC的四种通信模式一、RPC(Unary RPC)二、服务端流RPC三、客户端流RPC四、双向流RPC五、综合案例5.1 新建streamdemo.proto5.2 执行命令,生成go文件5.3 客户端5.4 服务端六、总结 gRPC的四种通信模式 gRPC有四种通信⽅式,分别是:简单 RP
阅读全文 »
发表于 2024-03-19 10:03阅读次数:98评论次数:0
摘要:目录一、grpc介绍1.1 RPC 介绍1.2 Protobuf 介绍二、下载生成proto工具三、下载go的依赖包四、快速使用4.1 编写proto4.2 生成go脚本4.3 编写main.go4.4 修改proto,加入更多参数4.5 重新生成4.6 修改代码五、完整的客户端服务端5.1 pro
阅读全文 »
发表于 2024-03-19 10:02阅读次数:35评论次数:0
摘要:目录一、什么是 RPC?二、RPC 是如何通讯的?三、为什么要用 RPC?四、常见RPC框架 一、什么是 RPC? RPC 是指远程过程调用,也就是说两台服务器 A、B,一个应用部署在 A 服务器上,想要调用 B 服务器上应用提供的函数或方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调
阅读全文 »
发表于 2024-03-18 14:22阅读次数:181评论次数:0
摘要:目录Go操作NSQ一、NSQ1. NSQ介绍2. NSQ的应用场景(1)异步处理(2)应用解耦(3)流量削峰二、安装三、NSQ组件1. nsqd2. nsqlookupd3. nsqadmin四、NSQ架构1. NSQ工作模式2. Topic和Channel五、NSQ接收和发送消息流程1. NSQ特
阅读全文 »
发表于 2024-03-18 14:21阅读次数:928评论次数:0
摘要:目录Go第三方日志库logrus一、logrus介绍二、安装三、基本示例四、进阶示例五、日志级别六、设置日志级别七、字段八、默认字段九、日志条目十、Hooks十一、格式化十二、记录函数名 Go第三方日志库logrus 日志是程序中必不可少的一个环节,由于Go语言内置的日志库功能比较简洁,我们在实际开
阅读全文 »
发表于 2024-03-15 10:37阅读次数:503评论次数:0
摘要:目录Go的orm框架1. gorm2. facebook-ent3. xorm4. upper/db:5. gorose一、Gorm介绍二、gorm连接数据库2.1 快速链接mysql2.2 其他配置2.3 加入日志打印sql(1)日志级别(2)Debug(3)具体代码三、automigrate功能
阅读全文 »
发表于 2024-03-14 17:48阅读次数:76评论次数:0
摘要:目录一、go操作redis的选择二、redis安装1. windowd平台安装方案2. mac平台和linux平台安装方案3. redis应用三、快速使用1. 快速连接2. 字符串操作(1)方法(2)示例3. 列表操作(1)方法(2)示例4. hash操作(1)方法(2)示例5. 集合操作(1)方法
阅读全文 »
发表于 2024-03-14 17:37阅读次数:61评论次数:0
摘要:目录一、go操作redis的选择二、redigo快速使用1. 快速链接三、redis操作四、连接池 一、go操作redis的选择 golang操作redis主要有两个库,go-redis和redigo。 go-redis:star数更多,支持连接哨兵及集群模式的Redis redigo:star数少
阅读全文 »
发表于 2024-03-14 17:36阅读次数:21评论次数:0
摘要:目录一、介绍和使用1. 安装和快速使用二、基本增删查改1. 增加数据2. 修改数据3. 删除数据4. 查询数据三、其他查询1. Get和Select查询四、其他方法1. sqlx的NamedExec2. sqlx的NamedQuery五、事务操作六、连接池 一、介绍和使用 上一篇我们用了go-sql
阅读全文 »
发表于 2024-03-14 17:33阅读次数:23评论次数:0
摘要:目录一、快速使用1. 下载2. 快速链接3. 最佳使用方案4. 设置连接池二、查询数据1. 单行查询db.QueryRow()2. 多行查询db.Query()三、插入数据四、删除数据五、更新数据六、MySQL预处理1. 什么是预处理?2. 为什么要预处理?3. Go实现MySQL预处理4. SQL
阅读全文 »
发表于 2024-03-14 16:36阅读次数:64评论次数:0
摘要:目录Template1. 模板1. 模板示例2. 模板语法(1){{.}}(2)注释(3)pipeline(4)变量3. 条件判断(1)range(2)with4. 预定义函数5. 比较函数6. 自定义函数7. 嵌套template Template html/template包实现了数据驱动的模板
阅读全文 »
发表于 2024-03-14 16:29阅读次数:28评论次数:0
摘要:目录一、log包介绍二、使用Logger三、logger的配置1. flag参数2. 配置日志前缀3. 配置日志输出位置4. 创建logger 一、log包介绍 Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用,更方便强大的日志记录需要借助于其它第三方日志库:zap、lo
阅读全文 »