
消息中间件
文章平均质量分 69
chuixue24
这个作者很懒,什么都没留下…
展开
-
kafka核心配置
用作指标报告器的类的列表。metricsreporter接口实现了org.apache.kafka.common.metrics.MetricsReporter接口,该接口允许插入将在创建新度量时得到通知的类。JmxReporter始终包含在注册JMX统计信息中。实现接口org.apache.kafka.clients.producer.Partitioner,默认值:org.apache.kafka.clients.producer.internals.DefaultPartitioner。转载 2024-12-23 11:21:53 · 407 阅读 · 0 评论 -
图解Kafka Producer常用性能优化配置参数
reconnect.backoff.max.ms:重建链接的最大等待时长,默认1s,连续两次对同一个连接建立重连,等待时间会在reconnect.backoff.ms的初始值上成指数级递增,但超过max后,将不再指数级递增。key.serializer:消息key的序列化策略,org.apache.kafka.common.serialization接口实现类,注意别导错包了。reconnect.backoff.ms:重新建立链接的等待时长,默认50ms,属于底层网络参数,基本不关注。转载 2024-03-27 11:06:54 · 181 阅读 · 0 评论 -
MQ应用场景
应用解耦:提高系统容错性和可维护性异步提速:提升用户体验和系统吞吐量削峰填谷:提高系统稳定性MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。1.应用解耦2.异步提速3. 削峰填谷...原创 2021-11-10 12:59:04 · 302 阅读 · 0 评论 -
kafka和Rocketmq如何保证消息投递可靠性
kafka:生产者ack参数ack=0, 生产者在成功写入消息之前不会等待任何来自服务器的相应。如果出现问题生产者是感知不到的,消息就丢失了。不过因为生产者不需要等待服务器响应,所以它可以以网络能够支持的最大速度发送消息,从而达到很高的吞吐量。 ack=1,只要集群的首领节点收到消息,生产这就会收到一个来自服务器的成功响应。如果消息无法达到首领节点(比如首领节点崩溃,新的首领还没有被选举出来),生产者会收到一个错误响应,为了避免数据丢失,生产者会重发消息。但是,这样还有可能会导致数据丢失,如果收到原创 2021-03-24 12:55:35 · 454 阅读 · 0 评论 -
RocketMQ & Kafka 消息消费与消息重试
RocketMQ保证消费成功PushConsumer 为了保证消息肯定消费成功,只有使用方明确表示消费成功,RocketMQ 才会认为消息消费成功。中途断电,抛出异常等都不会认为成功——即都会重新投递。业务实现消费回调的时候,当且仅当此回调函数返回ConsumeConcurrentlyStatus.CONSUME_SUCCESS,RocketMQ 才会认为这批消息(默认是1条)是消费完成的。如果这时候消息消费失败,只要返回ConsumeConcurrentlyStatus.RECONSUME..转载 2021-03-24 11:37:57 · 901 阅读 · 0 评论 -
kafka与rocketMq存储结构分析
三.对比一.kafka存储结构二.rocketMq存储结构三.对比kafka将不同partition的log分开存储,而rockerMq收敛到一个commitLog中。如果partition(queue)数量比较少,kafka属于顺序读写,rockerMq属于顺序写、随机读;而当partition(queue)数量较大时,kafka就变成了随机读写,读写效率急剧下降,rockerMq还是顺序写、随机读,效率变化不大。注:顺序io会利用磁盘的page cache机制,效率提升很大转载 2021-03-24 11:19:59 · 269 阅读 · 0 评论 -
RabbitMQ和Kafka到底怎么选?
前言开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kafka,到底应该选哪个?RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。broker:每个节点运行的服务程序,功能为维护该节点的队列的增删以及转发队列操作请求。 master queue:每个队列都分为一个主队列和若干个镜像队列。 mirror queue:镜像队列,作为master que.转载 2021-02-23 14:54:07 · 205 阅读 · 0 评论 -
可靠消息最终一致性【本地消息表、RocketMQ 事务消息方案】
一、可靠消息最终一致性事务概述可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。 此方案是利用消息中间件完成,如下图:事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务参与方(消息消费方)和消息中间件之间都是通过网络通信,由于网络通信的不确定性会导致分布式事务问题。因此可靠消息最终一致性方案要解决以下几个问题:【1】本地事务与消息发送转载 2020-12-18 13:46:27 · 416 阅读 · 0 评论 -
ActiveMq持久订阅必须指定clientId以及设置clientId源码分析
创建持久订阅时的代码:@Override public TopicSubscriber createDurableSubscriber(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { checkClosed(); if (topic == null) { throw new InvalidDestinati.原创 2020-11-04 18:29:05 · 2670 阅读 · 0 评论 -
ActiveMQ断开,消费者重连一段时间后进程崩溃退出的问题
问题最近遇到一个问题(activemq版本为5.14.5),正常ActiveMQ断开后,因为有因为有心跳检测和重连机制,使用failover方式,消费者其实是会不断的尝试重连,进程应该是一直存在的。但是奇怪的是有的进程的消费者在mq断开后进程会直接挂掉,没有日志输出也不再重连了。主进程如下,消费者代码就是正常的设置监听器(MessageListener)的代码,就不贴了。/** * @author ZZJ * @description: * @date 2020-9-9 9:46 */转载 2020-10-30 15:12:21 · 1426 阅读 · 0 评论 -
ActiveMQ自定义日志插件
在使用mq时,对消息何时发送,是否发送成功,消息是否消费成功做一个记录,activeMQ自身有一个日志插件LoggingBrokerPlugin,可以记录一些事件: <plugins> <loggingBrokerPlugin logProducerEvents="true" logConsumerEvents="true"/> </plugins>但在记录消息发送事件时,对消息内容的输出不够直观,如下图,消息内容为cont原创 2020-10-27 16:38:01 · 675 阅读 · 0 评论 -
ActiveMQ JMX使用
一、说明 ActiveMQ使用过程中,可以使用自带的控制台进行相关的操作以及查看,但是当队列数相当多的时候,在查询以及整体的监控上,就可能相当的不便。所以可通过JMX的方式,进行MQ中队列相关指标的以及整体健康性能等收集展示。二、JMX功能开启 2.1、broker标签中添加 userJmx="true": 2.2、配置managementContext 其中 用户名、密码及权限配置在 jmx.password 和 jmx.access 文件中。三、Jav..转载 2020-09-16 09:07:09 · 622 阅读 · 0 评论