自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 go-zero源码阅读-服务部署

服务部署生产环境搭建docker & k8s搭建详细请看我的下一篇文章git私有仓库 & 容器私有仓库 & CI、DI详细请看我的下一篇文章配置文件编写 & 生成dockerfile我们先用网关部分代码来演示执行代码./cmd.sh gen dockerfile gateway生成文件 code/service/gateway/api/Dockerfile### 加载基础镜像FROM golang:alpine AS builderL

2022-05-03 01:06:28 529

原创 go-zero源码阅读-负载均衡(下)#第六期

一致性哈希一致性哈希主要针对的是缓存服务做负载均衡,以保证缓存节点变更后缓存失效过多,导致缓存穿透,从而把数据库打死。一致性哈希原理可以参考这篇文章图解一致性哈希算法,细节剖析本文不再赘述。我们来看看其核心算法// service node 结构体定义type ServiceNode struct { Ip string Port string Index int}// 返回service node实例func NewServiceNode(ip, port string)

2022-04-10 19:21:25 1147

原创 go-zero源码阅读-负载均衡(上)#第五期

在阅读 go-zero 源码之前我们先来看看常用的负载均衡算法,看看其原理,以及是如何实现,然后我们在用这些负载均衡算法来和 go-zero 的对比下,看看各自的优缺点是啥。轮询proxy 服务与 ndoe 服务配置文件{ "proxy": { "url": "127.0.0.1:8080" }, "nodes": [ { "url": "127.0.0.1:8081" }, {

2022-04-06 23:58:53 336

原创 go-zero源码阅读-限流器#第四期

go-zero 给我们提供了两种限流器,而且都是基于 redis 实现的可分布式的限流器核心文件带注释代码如下,大家可以参阅计数器限流器 https://github.com/TTSimple/go-zero-source/blob/master/code/core/limit/periodlimit.go令牌桶限流器 https://github.com/TTSimple/go-zero-source/blob/master/code/core/limit/tokenlimit.go我们通过最

2022-04-01 20:58:10 1041

原创 go-zero源码阅读-过载保护#第三期

入口源码地址:github.com/zeromicro/go-zero/rest/handler/sheddinghandler.go在看文章之前可以看看万总的这篇文章《服务自适应降载保护设计》,文章已经给我们介绍很清楚了,从基础原理到架构需求再到代码注释,无不细致入微,感谢万总。之前在设计架构的时候对于服务过载保护只会想到在客户端、网关层来实现,没考虑过在服务端也可以达到这种效果,一来涉及这种技术的文章较少(可能是我孤陋寡闻了),二来服务端不确定的情况比较多,比如服务器出现问题,或者其他在同一台服务器

2022-03-30 23:38:39 380

原创 go-zero源码阅读-熔断器#第二期

熔断器入口源码地址:github.com/zeromicro/go-zero/rest/handler/breakerhandler.gogo-zero 的熔断器基于滑动窗口来实现,我们首先来看看滑动窗口是啥leetcode 中有这样一个题目:剑指 Offer II 041. 滑动窗口的平均值给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算滑动窗口里所有数字的平均值。实现 MovingAverage 类:MovingAverage(int size) 用窗口大小 size 初始化

2022-03-29 11:24:17 751

原创 go-zero源码阅读-代码结构#第一期

go-zero 作为一个微服务框架,不仅给我们提供了很好的参考,而且核心代码量不多,我们可以在闲暇时间读读他的核心代码,来多多学习充电。rest 部分代码结构rest├── handler // 自带中间件│   ├── authhandler.go // 权限│   ├── breakerhandler.go // 断路器│   ├── contentsecurityhandler.go // 安全验证│  

2022-03-29 11:22:57 1455

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除