分布式、中间件和消息队列到底是怎么的一种工作模式?

本文转自:悟空问答

分布式

相对于以前单一系统,所有的功能,服务都部署在一台服务器上,一挂全挂!分布式采用了把系统提供的服务分布在不同的服务器上的策略,这样的架构就叫做分布式架构!

我有一个系统A,提供一个很简单的接口,根据员工编号查询员工姓名和他的考勤记录。

我拆开两个系统:人员管理系统B和考勤系统C,分别部署在两台服务器上。

这个需求,需要调用一下系统B,再调用一下系统C,最后得到需要的结果。

这个就是分布式。

这里写图片描述

中间件

将具体业务和底层逻辑解耦的软件。

之前看过一个很生动例子:

我要开一家炸鸡店(业务端),需要鸡肉,有很多养鸡场(底层),我需要一个一个比较价钱,然后找一家性价比高的养鸡场合作(适配不同底层逻辑)。可能一段时间后,我需要重新选一家养鸡场合作,进货方式、交易方式等要重新制定(重新适配)。

这一套事情太复杂了,于是我找到了一个专门整合养鸡场的第三方代理(中间件),跟他谈好价格和质量后(统一接口),以后我就只需要给代理钱,然后拿肉就行。具体这个第三方代理怎么操作,我不用管。

消息队列

消息队列可以看做内存中的队列,有人往里放消息,有人从里取消息。

这里写图片描述

  • Producer:消息生产者。
  • Broker:消息处理中心,负责消息存储、确认、重试等。
  • Consumer:消息消费者。

消息队列的特点是:异步、解耦、可靠性(消息队列一般会把接收到的消息持久化到本地硬盘上)

用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ,它们又可以被称作是消息中间件,消息中间件解决的就是分布式系统之间消息传递的问题。

比如我是做网上商城的,有一个短信系统,当客户下了一个订单之后,通知客户你下单成功。

当订单量比较小的时候,只需要调用发送短信的接口就可以了。

但是如果订单量大了之后呢,并且短信发送晚个一两分钟也没有什么问题,那么就可以使用消息中间件:把待发送的短信发送到消息队列里面,短信系统从消息队列中取出短信进行发送就可以了。

而且还有一个好处:如果短信系统挂掉了,短信消息保存在消息中间件里面不会丢失,等短信系统恢复了之后,继续短信发送即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值