阿里云腾讯云华为云都在用的“分布式系统”
Posted GitChat精品课
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云腾讯云华为云都在用的“分布式系统”相关的知识,希望对你有一定的参考价值。
谈及阿里云、腾讯云、华为云都在用的“分布式系统”,很多程序员的第一感觉多半是“高大上”和“深不可测”,犹如武林绝学——行走江湖,即便没有见过,也应听过其名。
分布式系统凭借其高吞吐、高并发、低延迟和负载均衡的特点,迎合了互联网飞速发展背后的巨大承载量需求,民间和官方都有忠实粉丝为其著书立说,然而,大多倾向于理论,对于初学者十分不友好。
那么,如何将分布式从理论应用到实战呢?
切入点的选取是关键,一个最具“通用性”的角度——中间件(Middleware)
中间件是基础软件的一大类,属于可复用软件的范畴,顾名思义,中间件处于操作系统软件与用户的应用软件的中间,因此,中间件具有很好的独立性,可作为一个独立的软件系统运转。例如 Redis、Kafka、ZooKeeper、Etcd、RabbitMQ、Nginx 等,它们都是常用的中间件,可实现缓存、消息队列、锁以及负载均衡等。
作为枢纽的中间件也从“集中式”发展为“分布式”——如:基于 Redis 的分布式缓存、基于 Kafka 的分布式消息队列、基于 ZooKeeper 的分布式锁等等。
以 Redis 为例,官方推出的 Redis Cluster 号称最大可支持 1000 个实例的集群,为什么不可以再多一点,比如 2000 个呢?又或者这样问:为什么 BAT 都没有采用 Redis Cluster?如果读者知道 Redis Cluster 所采用的分布式一致性协议及其原理,那么一定不难回答上面的问题。
这是因为,作为 Redis 的高可用解决方案 Redis Cluster
从 3.0 版本开始,Redis 支持集群模式——Redis Cluster,可线性扩展到 1000 个节点。Redis-Cluster 采用无中心架构,每个节点都保存数据和整个集群状态,每个节点都和其它所有节点连接,客户端直连 Redis 服务,免去了 Proxy 代理的损耗。Redis Cluster 最小集群需要三个主节点,为了保障可用性,每个主节点至少挂一个从节点(当主节点故障后,对应的从节点可以代替它继续工作),三主三从的 Redis Cluster 架构如下图所示:
在实践中,理论加持常常可以达到事半功倍的效果,对实现方案的背后原理进行深入浅出的了解也是非常重要的。
随着“云时代”的到来,作为通用软件的中间件再次华丽转身,阿里云、腾讯云、华为云都竞相推出了“云中间件服务”——如 TencentDB for Redis、消息队列 CMQ、云数据库 Redis 等等,几乎应有尽有。从另一角度来看,作为一名 IT 行业的研发人员,从普通研发工程师到架构师的成长之路上,分布式中间件是绕不过去的。
对于 IT 研发人员来说, “效率” 很重要。只要你有足够的耐心和时间,网上的知识都能搜索得到。但对于分布式系统、中间件这类需要系统性学习的知识,网络搜索不仅费时费力,而且可信度存疑。所以才有了这个系统学习分布式中间件的实践课程,推荐给大家学习!
▼想进大公司的小伙伴扫码一起学啊!
29.99 就有可能进大厂,简直不要太便宜。。感兴趣的同学,点击阅读原文,免费试读了解!
以上是关于阿里云腾讯云华为云都在用的“分布式系统”的主要内容,如果未能解决你的问题,请参考以下文章