2020年最全架构师成长路线——(消息队列、缓存、微服务、调度、OLT(A)P、CI/CD)

 

2020年新版,对部分组件的描述进行了更新。19年文章参见 这里 。如果你在做选型方面的工作,或者想了解一些现在正在流行的技术,那么这篇文章正好适合你。

本篇内容涵盖14个方面,涉及上百个框架和工具。会有你喜欢的,大概也会有你所讨厌的家伙。这是我平常工作中打交道最多的工具,大小公司都适用。如果你有更好的,欢迎留言补充。

一、消息队列

二、缓存

三、分库分表

四、数据同步

五、通讯

六、微服务

七、分布式工具

八、监控系统

九、调度

十、入口工具

十一、OLT(A)P

十二、CI/CD

十三、问题排查

十四、本地工具

一、消息队列

  • √ 推荐:(1) 吞吐量优先选择kafka
  • (2) 稳定性优先选择RocketMQ
  • (3) 物联网:VerneMQ

一个大型的分布式系统,通常都会异步化,走消息总线。 消息队列作为最主要的基础组件,在整个体系架构中,有着及其重要的作用。异步通常意味着编程模型的改变,时效性会降低。

kafka是目前最常用的消息队列,尤其是在大数据方面,有着极高的吞吐量。而rocketmq和rabbitmq,都是电信级别的消息队列,在业务上用的比较多。相比较而言,ActiveMQ使用的最少,属于较老一代的消息框架。

pulsar是为了解决一些kafka上的问题而诞生的消息系统,比较年轻,工具链有限。有些激进的团队经过试用,反响不错,但实际使用并不多。

mqtt具体来说是一种协议,主要用在物联网方面,能够双向通信,属于消息队列范畴,推荐使用vernemq。

二、缓存

  • √ 推荐:(1) 堆内缓存使用默认的caffeine
  • (2) 分布式缓存采用redis的cluster集群模式,但要注意使用限制

数据缓存是减少数据库压力的有效途径,有单机java内缓存,和分布式缓存之分。

对于单机来说,guava的LoadingCache和ehcache都是些熟面孔,不过SpringBoot选择了caffeine作为它的默认堆内缓存,这是因为caffeine的速度比较快的原因。

对于分布式缓存来说,优先选择的就是redis,别犹豫。由于redis是单线程的(6.0支持多线程,但默认不开启),并不适合高耗时操作。所以对于一些数据量比较大的缓存,比如图片、视频等,使用老牌的memcached效果会好的多。

JetCache是一个基于Java的缓存系统封装,提供统一的api和注解来简化缓存的使用。类似SpringCache,支持本地缓存和分布式缓存,也是简化开发的利器。

三、分库分表

  • √ 推荐:shardingsphere中的sharding-jdbc

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值