本文来源:http://rrd.me/gEffa

智能客服系统中,企业注册完成后,需要完成一系列初始化操作,如创建es的索引,创建默认的一些数据
发短信
减少耗时,异步下单操作,接收到参数之后写入mq,通过多个节点去下单,然后websocket推送结果(参数中带有clientid)
高并发场景排队
| mq | 优势 | 缺点 |
|---|---|---|
| RabbitMQ | erlang语言开发,无法二次维护,稳定及社区活跃度比较高 | |
| RocketMQ | java,阿里系,可二度开发 | |
| Kafka | 高吞吐量,一般的日志,海量数据传输使用 |
我们选择rabbitmq的原因是,系统比较稳定,社区维护性比较高,国内的开源项目多为kap项目,如dubbo
单机模式
普通集群
queue会存在某个集群中,其他机器上存储的是该机器queue的配置信息(如ip等)。如上图,若client连接到了实例C中要访问位于实例B中的queue2时,就会由实例C和实例B进行通信。缺点
内部大量的数据传输,可靠性无法保证
镜像集群
生产者写入指定queue之后会同步给其他节点,任何一个节点都拥有全部完整的数据。缺点
非分布式。容量过大,造成浪费,每个节点存储所有一样的数据。
kafka-broker的副本,如broker1与broker2中有一个leader,一个broker,数据完全一致,leader负责读写


kafka保证topic中的每个partition都是有序的,(每个Topic中可能包含多个partition),这个时候要保障有序,就要保障需要有序的数据写入一个partition
消息丢失有3个地方,1.producer未写入,2.kafka内部异常,3.consumer未处理

❤️给个「在看」,是最大的支持
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69975884/viewspace-3151506/ ,如需转载,请注明出处,否则将追究法律责任。