万字长文:以业务为核心的云原生体系建设
https://mp.weixin.qq.com/s?__biz=MzU0NDEyODkzMQ==&mid=2247500999&idx=1&sn=7a78407b3e80a5e900f4a4fccc8c44f8&scene=21#wechat_redirect
从1到2000个微服务,史上最落地的实践云原生25个步骤
https://mp.weixin.qq.com/s/C_RHS9Ma84LhVvVgNbNZAw
... [阅读更多]
利用dlopen/dlsym/dlclose等接口可以在C语言程序中实现模块动态加载功能,Nginx就有这样的实现。在Go v1.8版本之前,可以利用一些开源项目来实现类似的功能(见参考链接),但在Go... [阅读更多]
一个复杂单机系统的可靠性如何做?抛去各种理论不谈,最常用的手段之一就是采用Watchdog/Monitor机制来进行实时监控。如果是多机系统,那么通常的整体可靠性做法就是HA了。
对于单个Watchdog机制而言,可以参考Android的Watchdog设计。
Android中的软件Watchdog:https://blog.csdn.net/jinzhuojun/article/details/46552397
Android... [阅读更多]
API网关有什么作用?
路由:根据上下文或消息内容将请求发送到不同的目的地(可能需要借助Service... [阅读更多]
一,设计多活架构思考
1,异地多活高可用架构设计实践与思考
https://blog.csdn.net/jiankunking/article/details/86654181
2,异地多活设计辣么难?其实是你想多了!
https://yq.aliyun.com/articles/57715
3,面向业务的立体化高可用架构设计
https://wenku.baidu.com/view/6dac880d48649b6648d7c1c708a1284ac9500557.html
4,异地多活架构
https://blog.csdn.net/suifeng629/article/details/89326048
5,28... [阅读更多]
在做高性能集群架构设计时,通常对数据库进行读写分离是常规操作,因此这里梳理下充当数据库(以MySQL为例)访问的中间件有哪些开源软件,当然相关资料和初步结论来自于网络,需要自行验证&判断。
一,MySQL... [阅读更多]
网络上已经有很多介绍这方面的文章,可以查看参考或自行Google关键字”服务发现和负载均衡”,但我这里仍然做个Mark,毕竟这是微服务架构中极其重要的内容。
总结来看,客户端如何发现服务端只有两种方式,要么直接把服务端的地址告诉客户端,要么把一个第三方(也就是代理)的地方告诉客户端,然后让客户端去询问这个第三方其所需要的服务端地址在哪里。
直接告诉的方式不用讨论,因为很简单,而利用代理的方式稍显复杂,根据代理所处的不同部署位置而区分出不同的模式。
最经典的模式就是传统集中代理模式(Proxy... [阅读更多]
前段时间看了下分布式RPC框架brpc,这两天在找分布式服务框架,也就是除了RPC功能外,期望还能有服务发现和服务治理的功能,经典的开源框架有dubbo,之前据说这货在阿里的团队都解散了(15年),后来又据说开始维护了(17年底。具体见这里:https://www.zhihu.com/question/30884501,https://github.com/apache/dubbo),但我想找个Go语言的类似框架,Google了下,发现有个rpcx(还有些其他框架,比如go-micro等),看上去挺不错,而且是国人开发的,主要贡献者在微博工作(见参考)。
老套路,还是先试用下rpcx。
一,测试环境
$... [阅读更多]
打算试用下Go iris框架,因为据说在各个方面iris都表现不错,比如性能,MVC支持,HTTP2.0支持等,具体见这里:https://github.com/speedwheel/awesome-go-web-frameworks
总之,先试用下吧。
一,测试环境
$ cat... [阅读更多]
raft是一个分布式一致性复制协议算法,其基本功能就是可以实现在多个进程之间对某个(某些)值达成强一致性,前面文章介绍的Zookeeper和Etcd就利用了raft(以及类似协议zab、paxos等)。而braft是百度实现的基于brpc的raft协议工业级C++实现,抛开各种理论说明不谈,只需知道利用braft可以帮助解决分布式系统中的数据一致性以及延伸问题,比如:
1,分布式锁:锁信息的一致性
2,分布式存储:存储数据的一致性
3,主备高可用:元数据的一致性
等等。
除了braft,自然还有很多其他的raft的实现,比如SOFAJRaft等,具体见备注。下面就主要试用一下braft。
一,测试环境
$... [阅读更多]