架构师之路九分布式系统下异步通信与限流方案

前面一个章节,我们解决了,在秒杀,抢购的环节下,会产生的大流量或者突发流量而导致的服务雪崩的问题,我们从技术,业务角度,分别采取了 令牌桶算法,漏桶算法,其中以Guava,nginx,计算器的方案来达到限流与消峰的目的,业务上,时间分片,以12306为例子,达到限流目的
这一章节,我们介绍MQ泳道的一些常用 的中间件,来解决异步通信的问题

先抛出一个问题,我们在进行用户注册的时候,一般需要向用户系统提交数据,数据持久化到数据库,同时我们也需要用户向我们的邮件系统提交数据,当同一时刻,大批量新用户啊进行注册的时候,用户系统,与邮件系统就承载过大的压力,其中注册邮件可以采取异步通信的方式来实现,下面聊一聊异步通信中常用的中间件,MQ,ActiveMQ,RocketMQ,还有kafaka等


第一种: ActiveMq,这对于单机处理的业务以及功能简单的业务,大多采取这种方式,其中就只有JMS Poducer, Porducer,Consumer,处理起来也比较简单

重点介绍一下第二种: RocketMq,也是阿里出品的一个功能,

其流程: Producer>NameServer>Broker>Conusmer,
Producer Cluster 向NameServer注册中心进行注册,并获取broker的地址,定时查询Topic消息, NameServer只是配置节点没有什么具体任务
Broker 用来存储数据信息,一般会进行主从Broker设置,搭建Broker Cluster, 并定时返回心跳与Topic给到NameServer,
Consumer cluster 向NameServer注册中心注册,并获取broker的地址,定时查询Topic消息

特点:
顺序,事务,集群,广播,亿级, 分布式,Push与Pull的消息订阅模式

开发流程:

项目代码流程

下载RocketMq
解压
配置环境
启动NameServer,Borker
引入pom依赖
制定生产者
制定消费者
消息折可以指定消费的方式

但就项目而言,我们常见的消峰的案例: app端,app端进行埋点数据上报消峰案例; PC端, 分布式调用跟踪系统埋点数据消峰


更多内容,请关注博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值