网站开发 李博,品牌推广方案案例,wordpress拖拽式布局,绍兴网页设计前言 从今天起#xff0c;席卷北国的雪#xff0c;持续了一整天#xff0c;北京也不例外。这场意外的寒潮#xff0c;把整个冬天渲染的格外cool。当然你可以在外面打雪仗、堆雪人、拉雪橇#xff0c;也可以静坐屋内#xff0c;来一场围炉煮茶的party。此刻#xff0c;冬…前言 从今天起席卷北国的雪持续了一整天北京也不例外。这场意外的寒潮把整个冬天渲染的格外cool。当然你可以在外面打雪仗、堆雪人、拉雪橇也可以静坐屋内来一场围炉煮茶的party。此刻冬天带来的温暖与喜乐不言而喻。 当然烦恼也充斥其中稍不留神容易翻跟头。所以博主先给各位盆友送一句话雪天路滑小心脚下。 好了我们言归正传。上一篇博主给大家介绍了两个人如何建立通信、如何保障通信的成功以及完成通信所需的工具。当然系统本身是对物理世界的模拟实现所以系统与系统之间、服务与服务之间也遵循此逻辑。
各位盆友此刻可以回想一下我们正在开发的不管什么系统、模块、服务本质都是建立在通信的基础上而完成的。那么如何通信是我们绕不开的话题微服务尤甚。
今天博主为大家介绍一个新“朋友”MQ因为它在“通信界”真的太重要了。 微服务实战系列之通信微服务实战系列之J2Cache微服务实战系列之Cache技巧篇微服务实战系列之MemCache微服务实战系列之EhCache微服务实战系列之Redis微服务实战系列之Cache微服务实战系列之Nginx技巧篇微服务实战系列之Nginx微服务实战系列之Feign微服务实战系列之Sentinel微服务实战系列之Token微服务实战系列之Nacos微服务实战系列之Gateway微服务实战系列之加密RSA微服务实战系列之签名Sign 一、 MQ简介 “消息队列”是 Microsoft 的消息处理技术它在任何安装 Microsoft Windows 的计算机组合中为任何应用程序提供消息处理和消息队列功能无论这些计算机是否在同一个网络上或者是否同时联机。——来自百度百科 怎么理解上面这段话博主总结为3个关键词“跨网络、跨平台、跨服务”。 这么优质的消息处理技术用它做数据传递再好不过了。我们不需要关心对方是否联机在线、是否Java或.NET是否Window或Linux只需两端都接入同一个MQ剩下的由它完成就好了。
通过上图经典的MQ模型我们可以观察到MQ的两端一个是生产者简称P一个是消费者简称C。就好比一个卖家一个买家那么MQ就是销售渠道。
二、应用场景
那它有哪些主要的应用场景呢
1. 异步
什么是异步 博主的上一篇文章 微服务实战系列之通信 已进行说明如需回看请速戳。
比如经典的订单系统有库存、有物流、有产品、有订单等模块那么如何做到功能的“快、好、省”呢 有同学说了并发呗。
并发是解决性能的必备手段但是如何使用并发以及并发能够为我们带来什么是必须思考的问题。此刻MQ可以胜任选择它我们可以同时具备接入多个“消费者”。一个一个消费总比不过同时消费吧
2. 解耦
软件架构中有一句至理名言“高内聚、低耦合”。我想各位盆友都比较熟悉了吧MQ为什么可以做到解耦因为它具备 “3跨”的特点。
举个栗子我们在做单体服务开发时模块太多耦合太紧极容易造成系统间“一损俱损”的局面。
此刻我们让MQ作为中介驾起这座桥梁烦恼就少多了。即使其中一个系统比如物流系统宕机了也就随它去吧不至于胆战心惊一整天两手空空手足无措。
3. 防并发
为什么需要防并发当然是基于成本和资源的可用性考虑。一块内存、一个服务器、甚至一个数据库不管配置多高总有个上限。
在某些高并发场景我们既要满足用户的大量参与又需要保障服务的安全和可靠怎么办如果此时不考虑并发最大的可能性就是TPS下降了、RS上升了直觉就是系统宕机了。
所以在有限资源的情况下避免并发或有限并发是永恒的话题。MQ迎难而上也顺势成为最佳工具之一。 三、工具选择
目前主流的MQ既有开源产品又有商业产品大致比较如下 这是前辈们总结的各家MQ的优势和胜任的场景各位盆友可以借鉴。 结语
MQ消息队列是一个消息传递的工具而消息本身可以是日志、数据、文件等等形式。当我们开发中如果遇到上述场景时可以适当选择MQ作为解耦或者消息的中介。当然只要是工具必然存在天然的劣势。比如多了一个Node微服务链自然又延长了如此容易让服务变得更复杂运维代价随之上升。
所以凡事总有好坏之分我们只好扬长避短才能化工具为己用真正能够为自己带来新的技术突破。
好了今日文章至此该说byebye了我们下次接着聊~