RocketMQ读书笔记2——生产者】的更多相关文章

[生产者的不同写入策略] 生产者向消息队列里写入数据,不同的业务需要生产者采用不同的写入策略: 同步发送.异步发送.延迟发送.发送事务消息等. [DefaultMQProduce示例] public class ProducerQuickStart { public static void main(String[] args) throws MQClientException,InterruptedException { /**1.设置Producer的GroupName**/ Default…
[Broker端进行消息过滤] 在Broker端进行消息过滤,可以减少无效消息发送到Consumer,少占用网络宽带从而提高吞吐量. [过滤方式1——通过Tag过滤] [ 关于Tag和Key ] 对一个应用来说,尽可能只用一个Topic,不同消息子类型用Tag来标识,每条消息只能有一个Tag,服务端基于Tag进行过滤,并不需要读取消息体的内容,效率较高.Producer发送消息设置了Tag以后,Consumer在订阅消息时,才会利用Tag在Broker端做消息过滤. 消息的Key,发送的消息设置…
[顺序消息] 顺序消费是指消息的产生顺序和消费顺序相同. 比如订单的生成.付款.发货,这三个消息必须按顺序处理才可以. [顺序消息的分类] 全局顺序消息和部分顺序消息. 上面订单的例子,其实是部分顺序消息,只要保证同一个订单ID的三个消息能顺序消费即可. [全局顺序消息] [部分顺序消费] 在实际的场景中,更多的是像订单类消息那样,只需要部分有序即可. [ MessageQueueSelector ] Producer发送端使用MessageQueueSelector类来控制把消息发往哪个Mes…
[Broker简述] Broker是RocketMQ的核心,大部分“重量级”的工作都是由Broker完成的,包括: 1.接受Producer发过来的消息: 2.处理Consumer的消费信息请求: 3.消息的持久化存储: 4.消息的HA机制: 5.服务端的过滤功能. [消息存储] 分布式消息队列因为有高可靠性的要求,所以数据要通过磁盘进行持久化存储. RocketMQ的消息是存储到磁盘上的,这样既可以保证断电后恢复,也可以不受内存大小的限制. [ 磁盘存储的“快”——顺序写 ] 磁盘存储,使用得…
[NameServer简述] 对于一个消息队列集群来说,系统由很多机器组成,每个机器的角色.IP地址都不相同,而且这些信息是变动的(如在某些情况下,会有新的Producer或Consumer加入). NameServer的存在主要是为了解决这类问题,由NameServer维护这些配置信息.状态信息,其他角色都通过NameServer来协同执行. [NameServer的功能] NameServer是整个消息队列中的状态服务器,集群的各个组件通过它来了解全局的信息.各个角色的机器要定时向NameS…
[不同类型的消费者] DefaultMQPushConsumer 由系统控制读取操作,收到消息后自动调用传入的处理方法来处理. DefaultMQPullConsumer 读取操作中的大部分功能由使用者自动控制. [DefaultMQPushConsumer的使用] [特点] 1.系统收到消息后自动调用处理方法来处理消息,自动保存Offset. 2.加入的新的DefaultMQPushConsumer会自动做负载均衡. public class QuickStart { /** * Defaul…
[消息队列的功能介绍] 分布式消息队列可以提供应用解耦.流量削峰.消息分发.保证最终一致性.方便动态扩容等功能. [MQ使用场景1——应用解耦] 复杂的系统如电商系统,会存在多个子系统,如订单系统.库存系统.物流系统.支付系统.如果各个子系统之间耦合性太强,会导致整体系统的可用性大幅降低,多个低错误率的子系统强耦合,会得到一个高错误率的整体系统. 用户创建订单后,如果耦合地调用库存系统.物流系统.支付系统,任何一个子系统出现故障不可用,都会造成下单操作异常,影响用户体验. [ 举例——通过MQ解…
事实上在第三章,就已经有了连接器的样子了,只是那仅仅是一个学习工具,在这一章我们会開始分析tomcat4里面的默认连接器. 连接器 Tomcat连接器必须满足下面几个要求 1 实现org.apache.cataline.Connector接口 2 负责创建实现了org.apache.cataline.Request接口的request对象 3 负责创建实现了org.apache.cataline.Response接口的response对象 这里默认的连接器的原理非常easy,就是等待http请求…
<<操作系统精髓与设计原理>>读书笔记(一) 并发性:互斥与同步 并发问题是所有问题的基础,也是操作系统设计的基础.并发包括很多设计问题,其中有进程间通信,资源共享与竞争,多个进程活动的同步以及分配给进程的处理器时间的. 和并发相关的关键术语:原子操作: 一个或多个指令的序列,对外是不可分的:即没有其他进程可以看到其中间状态或者中断此操作. 并发中,为了确保并发下的数据完整性,我们有一系列的同步方法,其实这些就是为了实现互斥性!对临界区程序的互斥性.有三种方法: 1.软件方法,但是…
<Apache kafka实战>读书笔记-管理Kafka集群安全之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家能看到这篇博客的小伙伴,估计你对kafka已经有了深入对一步了解了,因为现在的你已经不考虑如何部署kafka以及调优了,而是考虑到kafka安全的问题.其实,在很多企业中,很少有人考虑到kafka的安全,小到几十人的小型互联网公司,达到某些云平台的云服务(我这里就不说是哪家云公司了),他们默认都是不会给kafka配置相关安全策略的,而是要求用户自…