03 2024 档案
发表于 2024-03-25 10:05阅读次数:310评论次数:0
摘要:目录一、Haproxy介绍1.1 常见的负载均衡器1.2 三者的优缺点1.2.1 LVS1.2.2 Nginx1.2.3 Haproxy1.2.4 总结理论总结应用总结3个案例负载均衡的通用的配置步骤二、Haproxy的部署2.1 下载、安装Haproxy2.1.1 yum源安装2.1.2 第三方安
阅读全文 »
发表于 2024-03-21 16:38阅读次数:7307评论次数:0
摘要:目录一、python 操作 kafka1. python 使用 kafka 生产者2. python 使用 kafka 消费者3. 使用 docker 中的 kafka二、python操作kafka细节2.1 生产者demo2.2 消费者demo2.3 消费者(消费者组)2.4 消费者(读取目前最早
阅读全文 »
发表于 2024-03-21 16:36阅读次数:375评论次数:0
摘要:目录一、Go操作之kafka二、sarama1. 下载及安装2. 注意事项三、连接使用kafka1. 发送消息2. 消费消息 一、Go操作之kafka Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,具有高性能、持久化、多副本备份、横向扩展等特点。本文
阅读全文 »
发表于 2024-03-21 16:27阅读次数:267评论次数:0
摘要:目录Kafka集群部署1.1 服务器资源1.1.1 安装JDK(所有设备)1.1.2 配置ip和主机名映射(所有服务器)(可不做)1.1.3 配置主机名(所有设备)(可不做)1.2 在node1上安装、配置kafka1.2.1 安装kafka1.2.2 修改配置文件1.2.2.1 修改zookeep
阅读全文 »
发表于 2024-03-21 11:40阅读次数:3090评论次数:0
摘要:目录安装、使用Kafka一、下载Kafka和相关依赖二、安装和配置Kafka2.1 安装Kafka2.2 Kafka的配置2.2.1 kafka服务配置server.properties2.2.2 消费者配置consumer.properites2.2.3 生产者配置producer.propert
阅读全文 »
发表于 2024-03-21 11:39阅读次数:199评论次数:0
摘要:目录为什么要用Kafka一、kafka介绍1.1 基本概念和四大核心API1.1.1 基本概念1.1.2 核心API1.2 使用场景1.3 kafka生产者1.4 kafka消费者1.4.1 kafka的消费模式(1)At-most-once(最多一次)(2)At-least-once(最少一次)(
阅读全文 »
发表于 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阅读次数:97评论次数: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 16:32阅读次数:40评论次数:0
摘要:目录一、代码优化原则二、避免全局变量三、避免 . 的使用3.1 优化方案一3.2 优化方案二3.3 优化方案三四、避免类内属性访问优化方案五、避免不必要的抽象优化方案六、避免数据复制1. 要避免无意义的数据复制优化方案2. 交换值时不使用中间变量优化方案3. 字符串拼接用join或者f-string
阅读全文 »
发表于 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
阅读全文 »
发表于 2024-03-14 16:25阅读次数:54评论次数:0
摘要:目录一、json 序列化和反序列化1. 序列化Marshal函数2. 反序列化Unmarshal函数3. 示例(1)Golang - 序列化结构体(2)Golang - 序列化map(3)Golang - 序列化slice二、xml 解析1. 案例一2. 解析xml3. 生成xml4. tag解释三
阅读全文 »
发表于 2024-03-14 16:16阅读次数:33评论次数:0
摘要:目录一、Http1. net/http介绍2. HTTP协议3. HTTP客户端4. GET请求示例5. 带参数的GET请求示例6. Post请求示例7. 自定义Client8. 自定义Transport9. 服务端(1)默认的Server(2)默认的Server示例(3)自定义Server 一、H
阅读全文 »
发表于 2024-03-14 16:07阅读次数:93评论次数:0
摘要:目录标准库之context一、为什么需要context1. 基本并发的示例2. 全局变量方式的并发3. 通道方式的并发4. 官方版的方案二、Context初识1. Context接口2. 两个顶级Context(1)Background()和TODO()(2)区别3. 派生Context(With系
阅读全文 »
发表于 2024-03-14 16:06阅读次数:76评论次数:0
摘要:目录一、Path包1. 常用函数2. 示例二、filepath1. 常用函数2. 示例 一、Path包 实现的功能和python的os模块的os.path的方法类似 注意:该包只对 /路径有效,windows的\路径无效 1. 常用函数 path包实现了对用斜杠进行分隔的路径进行操作的函数 func
阅读全文 »
发表于 2024-03-14 16:06阅读次数:44评论次数:0
摘要:目录一、rand库介绍二、math/rand1. 基本使用2. 常用的方法3. 生成定长的随机数三、crypto/rand 一、rand库介绍 在Go中,有两个包提供了rand,分别为 math/rand 和 crypto/rand, 对应两种应用场景 math/rand 包实现了伪随机数生成器。也
阅读全文 »
发表于 2024-03-14 16:05阅读次数:32评论次数:0
摘要:目录一、strings库介绍二、字符串比较-Compare1. 介绍2. 示例三、检测字符串是否包含子串-Contains1. 介绍2. 示例四、大小写转换1. 介绍2. 示例五、统计子字符串出现的次数1. 介绍2. 示例六、判断字符串的前后缀1. 介绍2. 示例七、分割和连接1. 介绍2. 示例八
阅读全文 »
发表于 2024-03-14 16:04阅读次数:33评论次数:0
摘要:目录一、exec介绍1. exec 函数和Cmd的方法二、案例1. 只执行命令,不获取结果2. 执行命令并获取结果3. 执行命令,区分stdout 和 stderr4. 使用管道,多条命令组合5. 设置程序级别的环境变量 一、exec介绍 有时候我们的go程序需要执行外部的命令,比如执行linux
阅读全文 »
发表于 2024-03-14 16:03阅读次数:14评论次数:0
摘要:目录os介绍1. os基础操作2. os文件及目录相关3. 其他 os介绍 os 包提供了不依赖平台的操作系统函数接口。错误处理设计为go 风格,失败的调用会返回错误值而非错误码。通常错误值里包含更多信息 1. os基础操作 // 获取文件信息,可以用来判断文件或目录是否存在,获取文件大小 os.S
阅读全文 »
发表于 2024-03-13 17:14阅读次数:0评论次数:0
该文被密码保护。
发表于 2024-03-13 17:11阅读次数:0评论次数:0
该文被密码保护。
发表于 2024-03-08 17:35阅读次数:240评论次数:0
摘要:目录一、 go中变量的内在机制二、反射1. 反射是把双刃剑2. 反射的简介三、reflect 库1. reflect.TypeOf(1)reflect.Type的 name 和 kind(2)kind 的能返回的类型如下2. reflect.ValueOf(1)反射取值(2)反射改值3. isNil
阅读全文 »
发表于 2024-03-06 17:57阅读次数:1评论次数:0
该文被密码保护。
发表于 2024-03-06 10:41阅读次数:5评论次数:0
该文被密码保护。
发表于 2024-03-06 10:40阅读次数:1评论次数:0
该文被密码保护。
发表于 2024-03-06 10:39阅读次数:1评论次数:0
该文被密码保护。
发表于 2024-03-06 10:38阅读次数:49评论次数:0
摘要:目录一、flag库1. flag的简单替代2. flag的参数类型3. flag参数的定义(1)flag.Type()(2)flag.TypeVar()4. flag解析命令行参数5. flag其他方法二、strconv库1. string转换为int类型2. int转换为string类型3. Pa
阅读全文 »
发表于 2024-03-06 10:38阅读次数:24评论次数:0
摘要:目录time库1. 时间类型2. 时间戳(1)时间格式转化为时间戳(2)时间戳转换为时间格式3. 时间间隔类型4. 时间的操作(1)时间转字符串(时间格式化)(2)字符串转时间(3)时间加时间间隔(4)两个时间之差(5)时间是否相同(6)判断时间前后(7)定时器 time库 time库是Go语言内置
阅读全文 »
发表于 2024-03-06 10:35阅读次数:50评论次数:0
摘要:目录fmt库1. 获取输入(1)fmt.Scan(常用)(2)fmt.Scanln(常用)(3)fmt.Scanf2. print、println、printf 输出3. Sprint(了解即可)4. Errorf(了解即可)5. 格式化占位符(1)通用占位符(2)布尔型占位符(3)整型占位符(4)
阅读全文 »