用Go编写Web中间件

Posted by 夏泽民

中间件(通常)是一小段代码,它们接收一个请求,对其进行处理,每个中间件只处理一件事情,完成后将其传递给另一个中间件或最终处理程序,这样就做到了程序的解耦。如果没有中间件那么我们必须在最终的处理程序中来完成这些处理操作,这无疑会造成处理程序的臃肿和代码复用率不高的问题。中间件的一些常见用例是请求日志记录, Header操纵、 HTTP请求认证和 ResponseWriter劫持等等。 https://mp.weixin.qq.com/s/3DwHTa-9Bjxei9woi1qeCw https://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU2MA==&mid=2247483692&idx=1&sn=fa20c127b08a8d35feb4420b09470adf&chksm=fa80d0bbcdf759ad9659f3b6e5ffc4e67217af4059ccadc4053f77ed1148bc783c365c29e4bf&token=140743472&lang=zh_CN&scene=21#wechat_redirect



Raft

Posted by 夏泽民

https://mp.weixin.qq.com/s/zgLcBWuVzFsKkNngKW85Zw 通常,Raft是作为引入到某些服务中的对象实现的。由于我们不在这里开发服务,而是仅研究Raft本身,因此我创建了一个简单的 Server 类型,该类型包裹 ConsensusModule 类型以尽可能地隔离代码中更感兴趣的部分 共识模块(CM)实现了Raft算法的核心,位于 raft.go 文件中。它完全从与集群中其他副本的网络和连接的细节中抽象出来。ConsensusModule中与网络相关的唯一字段是:



Kong入口控制器和服务网格Kubernetes设置入口到Istio

Posted by 夏泽民

https://mp.weixin.qq.com/s/C3gaDJ6YQYTR3SifpPrqNw Kubernetes已经成为在服务中编排容器和服务的实际方法。但是我们如何让集群外部的服务访问集群内部的内容呢?Kubernetes附带了Ingress API对象,用于管理对集群内服务的外部访问。



gnet一个轻量级且高性能的 Golang 网络库

Posted by 夏泽民

https://github.com/panjf2000/gnet gnet 是一个基于 Event-Loop 事件驱动的高性能和轻量级网络库。这个库直接使用 epoll 和 kqueue 系统调用而非标准 Golang 网络包:net 来构建网络应用,它的工作原理类似于两个开源的网络库:libuv 和 libevent。



Golang -CPU 性能、内存分析调试方法汇总

Posted by 夏泽民

https://gocn.vip/topics/10054 https://draveness.me/golang/docs/part3-runtime/ch07-memory/golang-garbage-collector/ 本篇介绍 Golang 常用性能调试工具的应用场景,包括:



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required