随笔分类 - 消息队列
摘要:安装 首先要安装好zookeeper1. 解压安装包 tar -zxvf kafka.tgz2. 配置 vim kafka/config/server.properties3. 进入bin目录启动服务 cd kafka/bin ./kafka-server-start.sh -daemon ../c
阅读全文
摘要:mqtt协议 MQTT协议(消息队列遥测传输协议) 是基于 Publish/Subscribe 模式的一种低开销、低带宽占用的即时通讯协议。是基于TCP协议传输的;他也有UDP版本,叫做MQTT-SN。 Qos (消息服务质量) 消息服务质量 又称 可靠传输保证;他又有三种消息发布服务质量 支持 Q
阅读全文
摘要:broker启动之后,发送注册请求是通过线程池来处理请求的,默认是30s一次,也就是说注册成功后,会每隔30s发送一次心跳机制。 namesrvcontroller 收到请求后会进行解析,解析成功后就通过 会通过 RouteInfoManager 这个寄存器保存broker的注册信息,那我们就看看它
阅读全文
摘要:broker发起注册 broker启动的时候会先对一些组件初始化,初始化完成后就会调用 start() 方法进行启动。这个时候它会先启动各个组件,然后通过线程池去发起注册请求。 此时就先 对 topic 进行一些配置,然后就通过 brokerOuterAPI 组件去进行调用。可以看到它是先构造了请求
阅读全文
摘要:nameserver 创建nameserver 可以看到我们启动 nameserver,就是执行 NamesrvStartup 类的main方法。看起来比较简单,应该就是创建了一个nameserver的控制器然后启动,这样 broker 就可以注册上来了。 首先,我们就看看 createNamesr
阅读全文
摘要:发送丢失 我们发送消息时,broker写入到cache后就返回成功了,而producer只要获取到ACK就说明消息发送成功了,反之肯定会收到一个异常,比如网络错误、请求超时之内的。而当我们发送失败后一直重试发送,能保证消息一定到达MQ吗?比如这样: 本地事务执行完之后、数据库已经更新了,还没来的及发
阅读全文
摘要:消息发送 普通发送消息,是直接根据topic的queue最终写入到commitlog的,然后可以被消费者消费。比如现在往broker的orderTopic发送事务,不会先把half消息的offset写入orderTopic的queue里面去,而是写入broker内部的“RMQ_SYS_TRANS_H
阅读全文
摘要:消息发送 Topic Topic用于将消息按主题做划分,Producer将消息发往broker中指定的Topic,Consumer订阅该Topic就可以收到这条消息。Topic跟发送方和消费方都没有强关联关系,发送方可以同时往多个Topic投放消息,消费方也可以订阅多个Topic的消息。在Rocke
阅读全文
摘要:RocketMQ是一个分布式消息中间件,主要包含了4个模块: NameServer:管理集群里所有Broker的信息,让使用MQ的系统可以通过他感知到集群里有哪些Broker。 Broker:集群最核心模块,主要负责Topic消息存储、消费者的消费位点管理(消费进度)。 Product:消息生产者,
阅读全文
摘要:安装Erlang wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm sudo yum install
阅读全文
摘要:1. Rocketmq消费模型(实时性) 常见的数据同步方式有这几种: push:producer发送消息后,broker马上把消息投递给consumer。这种方式好在实时性比较高,但是会增加broker的负载;而且消费端能力不同,如果push推送过快,消费端会出现很多问题。 pull:produc
阅读全文
摘要:1. rocketmq源码安装参考官方文档:http://rocketmq.apache.org/docs/quick-start/安装好jdk和maven rocketmq安装包:https://pan.baidu.com/s/1I3CqWaxFnxtUX1kJpIJkcQ 密码: vu5m 代码
阅读全文
摘要:这里是基于 zookeeper 选举方式实现的集群配置,服务器过半数才可提供服务,所以是2n+1台这里以三台为例。 只有master节点能提供服务,slave节点无法提供服务,只有当master节点挂了,slave重新选举出的主节点才能提供服务(灰色部分都是默认配置文件) <!-- Licensed
阅读全文
摘要:1. 解压 tar -zxvf apache-activemq-5.12.0-bin.tar.gz2. 改名 mv apache-activemq-5.12.0 activemq3. cd activemq/bin4. 启动 ./activemq start5. 访问 ip:8161/admin /
阅读全文