[晨读系列——01] 分布式架构消息队列

一、消息队列概述
     消息队列中间件是分布式系统的重要组建,主要解决:应用耦合,异步消息,流量削峰、消息通讯等问题。
     目前在生产环境,使用较多的消息队列有:ActiveMQ、RabbitMQ、ZeroMQ、kafka、MetaMQ、RocketMQ

二、消息队列应用场景
     1.异步处理

     如,用户注册后,串行发送注册邮件和短信,会浪费时间。但是使用消息队列,注册信息写入数据库——写入消息队列——异步读取——发送注册邮件(注册短信),可提高系统吞吐量。

2.应用解耦

场景:用户下单后,订单系统需要通知库存系统,传统方法是调用库存系统的接口,但假如库存系统无法访问,则订单失败,订单系统与库存系统耦合。
解决方案:
                    


3.流量削峰

应用场景:秒杀活动,一般会因为流量过大而导致应用挂掉。应用消息队列,可控制活动人数,缓解短时间内高流量

解决方案:服务器接受用户请求后,首先写入消息队列,如果消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面。


4.日志处理
如kafka的应用,解决大量日志传输的问题。
日志采集客户端:负责日志数据采集,定时写入kafka队列。
kafka队列:负责日志数据的接受、存储和转发
注:Elasticsearch:实时日志分析服务的核心技术,一个schemaless,实时数据存储服务,通过Index组织数据,兼具强大的搜索和统计功能。kibana是基于Elasticsearch的数据可视化组件。



三、JMS消息服务

有两种消息模型,P2P和 publish/subscribe

1.点对点
每个消息 只有一个消费者,发送者发送消息后,不会管是否接收成功

2.发布/订阅模式
三个角色:主题、发布者、订阅者。多个发布者发送消息到多个订阅者。

3.消息消费:
同步:订阅者通过receive方法接收消息,接收到消息前将一直阻塞
异步:可注册一个消息监听器,小气到达之后,自动调用监听器的onMessage方法








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值