![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息队列
好马行千里
这个作者很懒,什么都没留下…
展开
-
MQ订阅发布原理
今天研究了下观察者模式:思考了一下MQ订阅发布的原理1.主题TopicTopic 有这几个属性 name state;方法有doService(Object msg);有一个集合存储订阅该主题的观察者;有增加集合的方法,即新加订阅者。doService方法里大致是这样:判断状态遍历集合 给集合里的订阅者都执行订阅者的方法,把msg参数传递过去。发送完毕修...原创 2018-07-19 18:24:27 · 2106 阅读 · 1 评论 -
RocketMQ进阶技巧
上面已经了解到了RocketMQ的特性以及高可用方式,RocketMQ由于零拷贝和顺序写的加持,和kafka很类似的原理使得吞吐量非常高。后续讲述一下RocketMQ的使用技巧和场景。场景一:顺序消息的场景。比方说涉及到订单事务等 消息顺序不能保证的本质是并行和并发,那么把并行的操作改为串行的话,就很好实现了。 技巧:在于读和写队列个数设置都为1,并且生产者消费者的并发设置也是...原创 2019-03-27 18:35:32 · 293 阅读 · 0 评论 -
RocketMQ基础概念之Broker
Broker是RocketMQ的核心,大部分工作都在Broker中完成,包括接收请求,处理消费,消费持久,消息的HA,以及服务端过滤等都在里面完成消息的存储和发送 因为有HA,所以需要磁盘持久化 磁盘使用的好坏,可以突破网络的瓶颈 MappedByteBuffer,基于零拷贝技术,由内核态直接往网卡上发送数据,避免了用户态的复制存储结构 ConsumeQueu...原创 2019-03-27 14:43:23 · 12111 阅读 · 0 评论 -
RocketMQ
上面大概是RocketMQ的架构图,使用的时候先启动NameServer服务,然后启动Broker服务。原创 2019-03-27 11:15:32 · 128 阅读 · 0 评论 -
RocketMQ消息权重
系统资源有限,避免不了的就是资源分配,像Dubbo等RPC框架对服务分配权重,线程也有权重的概念。但是MQ是队列是FIFO特征,消息本身无法设置优先级,于是RocketMQ采用了另一种思路解决了。后续举例描述。...原创 2019-03-27 19:06:01 · 721 阅读 · 0 评论 -
RocketMQ主从同步
Slave和Master同步的内容不仅仅是消息本身,一些元数据信息也需要同步,如TopicConfig信息,ConsumerOffset信息,DelayOffset和SubscriptionGroupConfig信息。元数据和前面所说的commitLog不同,元数据使用Netty的command方式定时同步的,而CommitLog则是用Java Nio的方式实现...原创 2019-03-27 21:05:21 · 514 阅读 · 0 评论 -
1.Windows环境启动RocketMQ
启动nameServer 双击mqnamesrv.cmd即可。nameServer启动成功...启动broker start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true broker启动成功...接下来安装控制台RocketMQ控制台配置文件application.properti...原创 2019-04-02 10:45:44 · 3784 阅读 · 0 评论 -
RocketMQ场景使用技巧
下面描述几个基本场景:同步:可靠的同步传输用于广泛的场景,如重要的通知消息,短信通知,短信营销系统等。异步:异步传输通常用于响应时间敏感的业务场景。单向传输:单向传输用于需要中等可靠性的情况,例如日志收集。有序消息:FIFO顺序提供有序消息,发送/接收全局和分区排序。广播:向主题的所有订阅者发送消息。 如果您希望所有订阅者都收到有关主题的消息,则广播是一个不错的选择。定时消...原创 2019-04-02 11:13:32 · 797 阅读 · 0 评论 -
RocketMQ基本概念
基本概念消息模型(Message Model)RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Messa...原创 2019-04-03 20:24:44 · 162 阅读 · 0 评论 -
ActiveMQ(一)点对点
点对点模式下的MQ大致上做了这么个事情,主要是解耦和异步ActiveMQ安装,搭建忽略,先上生产者代码:public class MqProducer { public static void main(String[] args) throws JMSException { // 第一步:创建ConnectionFactory连接工厂 ConnectionFactory fa...原创 2018-05-07 15:42:23 · 110 阅读 · 0 评论 -
ActiveMQ(二)Pub/Sub
另一种模式就是发布订阅:订阅/发布的特点是:一条消息会被所有订阅主题的人所消费。public class MqProducerPub { public static void main(String[] args) throws JMSException { // 第一步:创建ConnectionFactory连接工厂 ConnectionFactory factory =...原创 2018-05-08 10:47:03 · 169 阅读 · 0 评论 -
RocketMQ弹性HA
分布式中间件的一个特点就是要支持弹性扩容缩容之类的。下面做一些介绍:NameServerBroker原创 2019-03-27 18:48:49 · 262 阅读 · 0 评论