一图读懂常用中间件技术

这里将常用中间件分为了四类:分布式中间件、负载均衡中间件、缓存中间件、数据库中间件。这些中间件在我们的应用场景中肯定是会涉及到的:

对于分布式中间件,常用的有以下四个:

1、ActiveMQ是遵循JMS规范AMQP协议的消息中间件,由Java语言开发,这个中间件比较老牌,目前使用的已经比较少了。如果我们作为一个当下比较新潮技术的开发者的话,使用该中间件的复杂性远比RabbitMQ高,因此ActiveMQ不再作为我们学习的参考。
2、RabbitMQ是当下流行的,是国内大厂都在使用的,其中有几个原因,因为它支持分发的模式、持久化、和对容错性等各种机制的处理比较完善,而且和spring框架是同一家公司开发的产品,因此spring框架对其的支持比较完善,因此在java领域十分广泛。
3、Kafka是基于tcp/ip这种二进制传输协议进行开发,所以它的性能是最好的,最接近底层,但是它不支持事物、但是支持持久化和分发机制,也是比较完善,在大数据领域用的很多
4、RocketMQ是由阿里、滴滴等联合开发出来的一款国产消息队列,对于该产品保持中介态度,建议不要选择使用,因为这属于一种半开源状态,虽然已经脱光诶apache基金会, 但是不太稳定,如果哪一天团队不在维护升级,出现了问题无法解决的话仍要重新选择,因此开发中一定要选择最稳定最可靠的技术,而不是盲目的追求新。

对于负载均衡中间件,常见的有 Nginx、LVS、KeepAlive、CDN。其中我们着重需要了解的是 Nginx 和 CDN,因为LVS 和 KeepAlive 在短期的中小型项目中是用不到的。LVS 用于 Nginx 发生故障需要对其做集群架构处理的,KeepAlive 是以保持心跳维持高可用为目的的,CDN 就是用于加速网页加载、渲染速度的。

对于缓存中间件,一定要遵循 tcp/ip 协议,常见的有MemCache和Redis。其中 MemCache 是代码级别的,它会将缓存写入代码中,占用 jvm 内存,在一些小项目和非特别领域可以采用。考虑到分布式架构最好使用 Redis。

对于数据库中间件,我们知道 MySQL 本身是具有持久化功能但是不具有高可用性的,也就是没有集群。因此要实现 MySQL 的集群/分库分表的话就必须要使用第三方的中间件例如Mycat、ShardingJDBCD等等来协助 MySQL 完成它的高可用性。

以上技术都能很好的帮我们解决项目中的一些场景,比如异步数据的保存可以达到削峰的目的,因为异步可以实现从串行到并行,以及消息分发、分布式事务、消息容错等等场景…

posted @   Aidy  阅读(2438)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示