会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
平安喜乐
https://github.com/zhaoshoucheng
博客园
首页
新随笔
联系
管理
订阅
上一页
1
2
3
4
下一页
2023年2月10日
【网关开发】8.Openresty 网关自定义健康检查的设计与实现
摘要: 背景 使用Openresty作为网关进行动态节点IP负载均衡时,要求网关有能力在负载均衡之前摘除掉有问题的节点。所以网关需要一定的健康检查能力。 设计 如果每一个网关节点都对服务节点进行探活,假设每1s探活一次,网关节点有M个,服务节点有N个,那整个网络中每秒出现M*N条探活协议,而且大部分都是探活
阅读全文
posted @ 2023-02-10 16:16 zscbest
阅读(803)
评论(0)
推荐(0)
2023年2月7日
etcd 理解Raft算法
摘要: 背景 因为在开发网关时,etcd充当很重要的角色,需要系统性的学习。知识来源华为云容器团队的《云原生分布式存储基石-etcd深入解析》 Raft是一个共识算法,是常用的强一致性、去中心化、高可用的分布式协议 思维导图 复制状态机 Raft是基于复制状态机模型实现 基本思想是一个分布式复制状态机由多个
阅读全文
posted @ 2023-02-07 11:15 zscbest
阅读(274)
评论(0)
推荐(0)
2023年1月29日
【网关开发】7.Openresty使用cosocket API 发送http与tcp网络请求
摘要: 背景 为网关提供健康检查功能时需要对节点发送http或者tcp探活请求。Openresty 提供cosocket来处理非阻塞IO。 实现 跟工程结合在一起,这里简单拼接数据结构 local function __default_check_alive(status) return status >=
阅读全文
posted @ 2023-01-29 14:48 zscbest
阅读(444)
评论(0)
推荐(0)
2023年1月28日
【网关开发】6.lua绑定委托(delegate)实现多播调用
摘要: 背景 在程序开发过程中有时会遇到事件流的问题,某一个结果会触发A、B、C等一系列动作。需要将各种事件注册给委托类(Delegate)。Delegate类会依次触发注册的函数,完成相应的动作。 实现原理 lua中可以使用元表和队列的形式进行实现 实现细节 delegate.lua local _M =
阅读全文
posted @ 2023-01-28 15:53 zscbest
阅读(534)
评论(0)
推荐(0)
2023年1月19日
【网关开发】5.Openresty 自定义负载均衡与流量转发
摘要: 背景 静态的nginx配置需要将负载均衡的服务节点信息都配置在配置文件中。现在微服务或云服务都会接入一些服务发现或者云控平台场景,经常需要更换节点,如果每次都要更新配置并且重启服务是无法接受的,所以需要网关提供动态扩展,实时更新自己负载均衡节点的能力,使用openresty网关需要使用lua扩展来实
阅读全文
posted @ 2023-01-19 15:20 zscbest
阅读(1238)
评论(0)
推荐(0)
2023年1月3日
Golang 实现包的初始化控制器与流程控制器
摘要: 背景 在go的工程中,有时init的顺序是至关重要的,本文写了一个小控制器去管理init的顺序,可以根据自己的要求设置不同的权重来实现加载顺序。 本文控制器主要实现两个功能,一是按照优先级加载包的引用,二是流程控制,主流程与异步流程存在顺序要求(实现类似sync.WaitGroup功能) 原理 优先
阅读全文
posted @ 2023-01-03 15:31 zscbest
阅读(139)
评论(0)
推荐(0)
2022年12月29日
Golang 控制反转 (IOC)在工程中应用
摘要: 背景 最近在总结现有框架中一些比较有亮点的地方,个人觉得带着问题去学习是比较高效的事情,所以把一些学习总结记录下来。 IoC是一种设计原理,比较常见于面向对象的设计中反转控制,实现应用程序类之间的松散耦合。详细的设计模式就不再这里赘述了 设计 采用的第三方库:https://github.com/b
阅读全文
posted @ 2022-12-29 18:42 zscbest
阅读(612)
评论(0)
推荐(0)
2022年12月22日
Python requests库指定IP请求,并指定域名证书验证
摘要: 背景 运维同学通过网关平台下发nginx配置文件,下发的过程是先灰度发布,发灰度机器,然后需要验证域名的请求是否正常,然后在下发其他生产机器,但是验证过程是人为操作,这就不可避免的会有些同学不进行验证,点击“继续”发布,如果出现问题将是灾难性的(别问为什么是灾难性的)。 为了避免这个问题的出现,发布
阅读全文
posted @ 2022-12-22 21:45 zscbest
阅读(1891)
评论(0)
推荐(1)
2022年12月9日
【网关开发】4.Openresty 使用events插件进行事件通知
摘要: 背景 在某些业务场景下,比如数据更新,程序执行,只需要某个进程执行一次,但是其他进程需要知道本次执行的结果,所以就需要一个通知机制,主工作进程执行程序,执行之后的结果通知给其他进程,当然本质上也是通过共享内存进行处理。 场景逻辑 源码准备 本次插件来源依然是来自kong的插件 插件地址:https:
阅读全文
posted @ 2022-12-09 17:31 zscbest
阅读(808)
评论(0)
推荐(0)
2022年11月17日
envoy学习笔记 1.部署安装
摘要: 部署与安装 envoy的部署方式基本上是三种,最常用的docker形式,其次可以根据不用操作系统进行命令行安装(centos使用yum),最后可以自己手动进行编译 因为想单纯探索envoy的使用形式,则直接进行使用第二种方式进行安装 yum安装方式: sudo yum install yum-uti
阅读全文
posted @ 2022-11-17 10:51 zscbest
阅读(715)
评论(0)
推荐(0)
上一页
1
2
3
4
下一页
公告