消息中间件
文章平均质量分 92
本片主要记录,RabbitMQ,RocketMQ,kafka的学习笔记,以及日常开发中碰到的问题
我就是我352
欢迎来到Andy的博客,博客中记录着Andy的学习笔记以及项目中的一些bug解决思路,欢迎各位大佬指正
展开
-
RabbitMQ的基本使用
RabbitMQ 与 AMQP 遵循相同的模型架构,其架构示例图如下。原创 2023-07-09 22:59:08 · 131 阅读 · 0 评论 -
MQ如何选型
1.功能需求:除了最基本生产消费模型,还需要MQ能支持REQUEST-REPLY模型,以提供对同步调用的支持此外,如果MQ能提供PUBLISH-SUBSCRIBE模型,则事件代理的实现可以更加简单。2.性能需求:考虑未来一到两年内产品的发展,消息队列的呑吐量预计不会超过 1W qps,但由单条消息延迟要求较高,希望尽量的短。3.可用性需求:因为是在线服务,因此需要较高的可用性,但充许有少量消息丢失。4.易用性需求:包括学习成本、初期的开发部署成本、日常的运维成本等。原创 2023-07-08 20:42:45 · 227 阅读 · 0 评论 -
常用消息中间件对比
特性ActiveMQRabbitMQKafkaRocketMQ所属社区/公司ApacheApacheApache/Ali成熟度成熟成熟成熟比较成熟生产者-消费者模式支持支持支持支持发布-订阅支持支持支持支持支持支持支持API完备性高高高低(静态配置)多语言支持支持JAVA优先语言无关支持,JAVA优先支持单机呑吐量万级(最差)万级十万级十万级(最高)消息延迟微秒级毫秒级可用性高(主从)高(主从)非常高(分布式)原创 2023-07-08 20:27:56 · 254 阅读 · 0 评论 -
消息中间件MQ
2.异步:比如快递投柜后,用户马上就结束了,不会等待到发送短信或者通知快递公司结束的,直接将消息投递到MQ,然后就直接结束,具体到扣减系统费以及后续的通知,都是异步操作的,不需要用户关心的,这就是将用户的同步操作转换为异步操作。3.流量削峰:就像用户投递快递,高峰到40W每秒,但是我们的后续处理业务每秒只能20W,还剩下20W在MQ进行堆积,这就是MQ很重要的流量削峰的能力,将用户的洪峰流量,让后台慢慢来处理,MQ承担一个缓冲的作用。2.订阅:一般是MQ的广播模式,类似于java的观察者模式。原创 2023-07-08 19:47:52 · 49 阅读 · 0 评论 -
Kafka在linux中的安装
本篇讲解以下kafka集群的搭建,这里搭建了两种Kafka集群,一种是使用ZK的传统集群,一种是不需要ZK的实验版集群,后期Kafka将会废弃ZK,但是现阶段还是推荐使用带有ZK的,因为不需要ZK的还处于实验性质Kafka的共识机制KRaft,仍然处于预览机制。未来KRaft将作为Apache Kafka的内置共识机制将取代Zookeeper,该模式在2.8版本当中就已经发布了体验版本,在3.X系列中KRaft是一个稳定release版本。原创 2023-07-07 22:08:05 · 3002 阅读 · 0 评论 -
RocketMQ高级使用---中
如果每次Pull的时间间隔比较久,会增加消息的延迟,即消息到达消费者的时间加长,MQ中消息的堆积量变大;由于异步发送不需要等待 broker 的响应,故在一些比较注重 RT(响应时间)的场景就会比较适用,比如,在一些视频上传的场景,我们知道视频上传之后需要进行转码,如果使用同步发送的方式来通知启动转码服务,那么就需要等待转码完成才能发回转码结果的响应,由于转码时间往往较长,很容易造成响应超时,此时,如果使用的是异步发送通知转码服务,那么就可以等转码完成后,再通过回调接口来接收转码结果的响应了。原创 2023-06-09 22:13:38 · 141 阅读 · 0 评论 -
RocketMQ基础入门---上
先来点无聊的话题RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、延时消息、消息回溯等前身是MetaQ,是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能、高可靠、高实时、分布式特点RocketMQ 是阿里巴巴集团基于高可用分布式集群技术, 自主研发的云正式商用的专业消息中间件, 既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。原创 2023-06-07 20:02:28 · 38 阅读 · 0 评论 -
RocketMQ在Linux中的安装教程
修改目录 /usr/local/rocketmq/rocketmq-all-4.7.1-bin-release/bin 下的 3 个配置文件: runserver.sh、runbroker.sh 、tools.sh不然会报insufficient memory。进入 RocketMQ 安装目录下的 /usr/local/rocketmq/rocketmq-all-4.7.1-bin-release 目录进行操作。8.启动 NameServer。2.利用wget命令下载。9.启动 Broker。原创 2023-06-07 16:48:06 · 4019 阅读 · 0 评论