cornerstone中raft_server_req_handlers源码解析

thbcm阅读(335)

知识点:

这里更新term的方法很巧妙,append-entry或者install-snapshot都是用于leader与follower数据间的同步。在election结束后,follower其实是不知道election是否已经结束。为了更新自己的term,follower不采用轮询election是否结束这样占用时间且低效的方式更新term,而是采用事件驱动模型,收到append-entry或install-snapshot的rpc请求后顺带更新term,高效快捷。而对于vote_request也更新自己的term则是考虑到了在网络分区的情况下某些节点可能一直处于candidate状态,在某个时间点网络又正常了,这时候通过vote_request便可以更新term到最新状态。(对于append-entry或者install-snapshot也可以帮助网络分区的节点在网络恢复后更新自己的term。)

.NET Core 线程池(ThreadPool)底层原理浅谈

thbcm阅读(312)

.NET Core线程池日新月异,不同版本实现都有差别,在.NET 6之前,ThreadPool底层由C++承载。在之后由C#承载。本文以.NET 8.0.8为蓝本,如有出入,请参考源码.

使用YARP来实现负载均衡

thbcm阅读(264)

YARP 是使用 ASP.NET 和 .NET(.NET 6 及更高版本)的基础结构在 .NET 上构建的,旨在通过 .NET 代码轻松自定义和调整,以满足每个部署方案的特定需求。所以,它支持配置文件,也可以基于自己的后端配置管理系统以编程方式管理配置。

联系我们