rocketmq原理简析适合初级使用者_第1页
rocketmq原理简析适合初级使用者_第2页
rocketmq原理简析适合初级使用者_第3页
rocketmq原理简析适合初级使用者_第4页
rocketmq原理简析适合初级使用者_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MQ producer-APREPAREDbrokergroupproducercommitrollback。费者,可以共同消费(CLUSTERING)topic的消息,达到分布式并行处理的功能。消息的物理管理单位。一个Topic下可以有多个Queue,Queue的引入使得消息可。MQ的broker端,不负责推送消息,无论消费者是否消费消息,都将消息起brokerconsumer来。提供了两种方式来保留消费记录:一种是保留在consumer所在的服务器上;另一种是保存在broker服务器上。用户还可以自己实现相应的消费进度接口。(CLUSTERINGID,选择Queue,则这一批消息的消费将是顺序消费(consumer完成消费。PREPARED状态的消consumerTransactionExecutor接口,执行相应的事务操作(如数据库commit,brokercommitcommitconsumer是可见的。好处是可以将Broker分布式化,提高系统性能。MQ中,producer将消息发送给Broker时,需要制定发送到哪一个队列中,默认情况下,producer会轮询的将消息发送到每个队列中(brokerQueue合并成一个List去轮询。consumerconsumer分配固定的队列(如果队列总数没有发生变化,consumer从固定的队列中去拉取没有消费的消息进行处理。Producer端(属 producer端的逻辑都比较简单,将消息发送到某个Queue中即可,具体发送到那个Queue(MessageQueueSelector接口Queue。producerNameServer将所有Broker的Topic及对应的Queue(opicRoute信息)拉取到本地,然后根据<brokerName,queueId>组建成一个List。因此在MessageQueueSelectorQueue信息。MQtopicQueue来管理,使得其较为容易的就可以进行水平扩MQ提到支持顺序消息,实际上是指基于Queue级别的顺序。用户将某些需要满足顺序的一批消(比如某个订单号的一系列后续操作比如数据库的某个主键的insert、deleteupdate等操作QueueQueue消费消息的consumer,MQ对外提供了两种不同形式的ConsumerPushConsumer和PullConsumer。PullConsumer而言,用户需要主动调用相应的接口去拉取未消费的消(push,但MQ本身的broker端仅仅保存所有的消息,并不负责push消callback逻辑。123456789DefaultMQPushConsumerconsumer=newame”,“*”);//a|b|System.out.println(“ConsumeMessageNum:”+msgs.size());return}//addshutdown123456789DefaultMQPushConsumerconsumer=newame”,“*”);//a|b|System.out.println(“ConsumeMessageNum:”+msgs.size());return}//addshutdownhooktoexecute主要的逻辑在第10行调用start函数之后开始。Consumer的主要实现是RebalancePushImplconsumer应该从哪些QueuePullAPIWrapper:长连接,负责从brokerConsumeMessageService:实现所谓的“Push-”消费机制;从Broker拉取的消息ConsumeRequestConsumeMessageSerivceservice负责回调用户的Listener消费消息;OffsetStore:当前consumer的消费记录(offset;有两种实现,Local和费进度在Broker上,适用于CLUSTERING集群消费模式;MQFactory:大杂烩,负责管理(consumer、producer,并提供多能接口供各个Producer注意masterslavemaster值 务消息中处理了返回值不为SEND_OK,则直接进行ROLL_BACK以采用事务消息来完成这个功能,MQ从3.0.14版本开始,对于事务消息,开始检查SendStatusSEND_OK,则直接执行事务消息的回滚。ConsumerPushConsumer(callBack回调执行应用消费逻辑)sendBackbroker上,稍后会重新消费这一批消息。可以通过设置参具体方法是控制context的ackIndex(List<MessageExt)[0ackIndex]内的消息是成功消费的,而(ackIndex,Lst.size)RECONSUME_LATER,则对于失败范围的BROADCASTINGtips失败后,会在consumer本地去尝试重复消费这些回发失败的消息(构造相应的broker失败的消息尝试在consumer端重新消费)一直尝试,直到消费成功或者回发到broker成功。顺序消息问题:消费端的、MIT或者多个Broker只在某一个BrokerMasterbrokerID0(即角色都为master挂掉后,这个master上未被消费的消consumer消费)的应用场Master每个masterbackup,masterslave处消master后,目前不支持自动的Failover(因此不支持producer的写疑问Slave当使用多master无slave的集群搭建方式时,master的brokerRole配置必须为SLAVE_NOT_AVAILABLE。brokerbrokernameserverlist,这里一定要nameserver地址都包含进去;因为mqnameserver之:1、服务器磁盘配置大概是怎样(N*4TSATA72002、服务器的磁盘做raid了吗?做的哪一种raid?刷磁盘模式是SYNC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论