![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
消息中间件技术探秘
文章平均质量分 78
欢迎来到《消息之桥:中间件技术探秘》专栏!在这里,我们将带你深入了解消息中间件的世界,揭开其神秘面纱,探索其在现代分布式系统中的关键角色。
本专栏面向所有对消息中间件感兴趣的技术爱好者、开发者和架构师。无论你是初学者还是经验丰富的专业人士,我们都将为你提供全面、深入且实用的知识和技巧。
码上代码
我是码哥,为大家分享技术,面试经验和技巧,主页或私信可以联系我,希望我们成为朋友,一起逆袭
展开
-
Kafka内核源码探秘内存管理的巧妙之道
今天就从kafka内核源码级别分析一下kafka是如何实现高吞吐量的关键因素内存管理的巧妙设计原创 2024-07-01 08:00:00 · 915 阅读 · 0 评论 -
深度解读:Apache Kafka如何超越消息引擎的界限
Apache Kafka从一个优秀的消息引擎系统起家,逐渐演变成现在的分布式流处理平台。了解Kafka的发展历程和功能扩展,可以帮助我们更好地理解其在现代分布式系统中的角色和应用场景。Kafka不仅是一个消息引擎系统,也是一个强大的分布式流处理平台,未来在流处理框架中必将占有一席之地。希望这些信息对你有帮助。如果你有更多关于Kafka的具体问题或想深入探讨的技术细节,欢迎继续交流。原创 2024-05-30 13:25:22 · 497 阅读 · 0 评论 -
深入Kafka消息分区机制:从原理到实践
不同的分区可以分布在不同的Broker上,读写操作也是针对分区进行的,这样每个节点都能独立处理各自分区的读写请求。通过合理的分区策略,可以避免消息数据的“倾斜”,防止某些分区成为性能瓶颈,从而提升整个系统的性能和稳定性。例如,可以根据Broker的IP地址实现定制化的分区策略,将南方用户的消息发送到南方的机房,北方用户的消息发送到北方的机房。虽然实现简单,但从实际表现来看,它的均匀分布效果不如轮询策略,因此在新版本的Kafka中,默认分区策略已经从随机策略改为轮询策略。原创 2024-05-30 13:21:33 · 622 阅读 · 0 评论 -
异步编程的魔力:如何显著提升系统性能
今天我们来聊聊一个对开发者非常重要的话题——异步编程。异步编程是提升系统性能的一种强大手段,尤其在需要高吞吐量和低时延的场景中,异步设计能够显著减少线程等待时间,从而提升整体性能。原创 2024-05-29 16:42:56 · 352 阅读 · 0 评论 -
理解消息队列:队列与主题的区别
如果你研究过多种消息队列产品,可能会发现每种消息队列都有自己的一套消息模型,像队列(Queue)、主题(Topic)或分区(Partition)这些名词概念在不同的消息队列模型中含义各异。这是因为没有统一的标准。尽管曾有国际组织尝试制定过消息相关的标准,如早期的 JMS 和 AMQP,但这些标准的进化跟不上消息队列的演进速度,最终被淘汰了。那么,什么是队列?什么是主题?它们之间有什么区别?为了彻底理解这些概念,我们需要从消息队列的演进说起。原创 2024-05-29 16:35:09 · 140 阅读 · 0 评论 -
解密消息队列的复制魔法:RocketMQ vs Kafka
RocketMQ 和 Kafka 都在消息复制上有独特的实现方式,各有优缺点。RocketMQ:提供传统主从复制和 Dledger 复制。传统主从复制性能好,但可用性稍差;Dledger 复制可用性高,但性能和资源利用率较低。Kafka:基于 ISR 的复制方式,灵活可配置,用户可以根据需求在性能、高可用性和一致性之间做取舍,但学习成本较高。没有一种完美的复制方案能同时兼顾高性能、高可用和一致性。你需要根据实际业务需求,做出适当的取舍,然后配置消息队列的复制方式。原创 2024-05-28 16:56:37 · 1280 阅读 · 0 评论 -
SpringBoot整合Rabbitmq学习笔记
RabbitMQ五种交换机类型,六种队列模式一、哪五种交换机?1、Direct exchange. a、会根据routingKey 完全匹配成功后才会消费。比如:如果生产一条消息 “我是中国人”,发送到交换机的时候绑定了路由键是:“中国”,则如果要消费的话只有匹配了路由键是“中国”的才能消费。(可以比喻为交换机是 “地球”,路由键是“国家—中国”,消息是“人”,这个消息的身份证是哪个国家...原创 2019-12-14 15:52:31 · 3967 阅读 · 1 评论 -
亿级流量下Rabbitmq如何实现消息不丢失实战教学
rabbitmq导致丢失数据—线上问题数据的丢失问题,可能出现在生产者、MQ、消费者中,咱们从 RabbitMQ来分析一下吧。1.如何保证生产者消息不丢失以mq实现异步消峰为例,系统需要实现发送手机验证码,采用rabbitmq发送消息给手机服务,消费消息后发送短信生产者 @RabbitListener(bindings = @QueueBinding( value = @Queue(value = "sms.sms.queue", durable = "true",原创 2021-03-08 20:18:13 · 23561 阅读 · 6 评论 -
MQ几百万数据没有消费怎么办---实战教你解决
领导说马上给解决方案其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了;或者消费的速度极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是这整个就积压了几个小时,你这个时候怎么办?或者是你积压的时间太长了,导致比如 RabbitMQ 设置了消息过期时间后就没了怎么办?所以就这事儿,其实线上挺常见的,一般不出,一出就是大 case。一般常见于,举个例子,消费端每次消费之后要写 mysql,结果 mysql 挂了,消费端 hang 那儿了,不动了;或者是消原创 2021-01-27 15:42:57 · 28502 阅读 · 14 评论 -
rabbitmq导致丢失数据---线上问题
rabbitmq导致丢失数据—线上问题数据的丢失问题,可能出现在生产者、MQ、消费者中,咱们从 RabbitMQ来分析一下吧。生产者弄丢了数据生产者将数据发送到 RabbitMQ 的时候,可能数据就在半路给搞丢了,因为网络问题啥的,都有可能。此时可以选择用 RabbitMQ 提供的事务功能,就是生产者发送数据之前开启 RabbitMQ 事务 channel.txSelect ,然后发送消息,如果消息没有成功被 RabbitMQ 接收到,那么生产者会收到异常报错,此时就可以回滚事务 channel.原创 2021-01-26 10:44:42 · 29085 阅读 · 5 评论 -
Kafka Java 生产者与TCP连接的奥秘
今天,我要带你深入探讨一个既神秘又引人入胜的话题:Kafka 的 Java 生产者是如何管理 TCP连接的。这个过程充满了技术的巧思和设计的智慧,相信你会发现,这不仅仅是一段代码的运行,更是一场精彩的技术之旅。原创 2024-05-22 20:20:39 · 441 阅读 · 0 评论 -
Kafka Consumer 位移提交深度解析
这种方式特别适用于处理大批量消息的场景,允许开发者在处理一定数量的消息后提交位移,从而减少重复消费的风险。自动提交提供了便利性,而手动提交(特别是异步提交结合同步提交的使用)则提供了更高的灵活性和可靠性。这是因为在自动提交的间隔时间内,如果发生了 Consumer 的重启或 rebalance 操作,那么最近一次提交之后消费的消息可能会被重新消费。Kafka 提供了两种手动提交位移的方法:同步提交(`commitSync`)和异步提交(`commitAsync`)。位移提交分为自动提交和手动提交两种方式。原创 2024-05-28 09:32:43 · 235 阅读 · 0 评论 -
ELK整合Kafka采集日志
ELK搭建请看之前的博客我们从之前采用的logstash直接将项目日志采集到ES中,然后从kibana展示的方式改为将日志先采集到kafka然后用logstash输出到kibana展示原因是当项目的日志量过大时,采用kafka可以实现高吞吐量具体步骤项目中引入kafka项目依赖 <!--kafka依赖--> <dependency> <groupId>org.springframework.kafka</gr原创 2020-09-04 14:01:41 · 418 阅读 · 4 评论 -
深入解析 RocketMQ 和 Kafka 的消息压缩机制
消息队列系统在现代分布式系统中扮演着重要角色,它们不仅需要高效地传递消息,还需要在传输过程中尽量减少带宽和存储的占用。消息压缩是一种常见的优化手段,可以显著减少消息的体积。本文将详细探讨 RocketMQ 和 Kafka 的消息压缩机制,并对比它们的优劣,帮助你选择适合自己系统的压缩方式。原创 2024-05-27 21:25:41 · 977 阅读 · 0 评论 -
调优Kafka,你做到了吗?
通过上述几个层面的调优,你可以显著提升 Kafka 集群的性能,满足高吞吐量和低延时的需求。记住,调优是一个持续的过程,你需要根据实际的生产环境不断调整参数,进行性能测试和监控,才能找到最优的配置组合。希望这些调优建议对你有所帮助。如果你有任何问题或需要进一步的指导,请随时告诉我。原创 2024-05-27 15:52:53 · 1123 阅读 · 0 评论 -
Kafka 请求处理揭秘:从入门到精通
Reactor 模式是事件驱动架构的一种实现方式,特别适合处理多个客户端并发请求的场景。我们看看它的架构图:22)多个客户端发送请求给 Reactor,Reactor 的 Dispatcher 线程将请求分发到多个工作线程中处理。Dispatcher 线程不涉及具体逻辑处理,非常轻量级,因此有很高的吞吐量表现。原创 2024-05-27 15:46:02 · 1232 阅读 · 0 评论 -
给面试官讲了分布式一致性原理,薪资直接多开了两千
分布式系统一致性非常重要,那你知道分布式一致性协议原理吗原创 2022-03-23 14:27:13 · 236 阅读 · 0 评论 -
从0到1万字贴心讲解单体架构到分布式架构的演变(第一篇)
很多粉丝反应,想学习分布式系统架构,从这篇码哥将教大家从零开始让你们学会分布式架构中应用场景和解决方案,从实践和理论两方面进行讲解。原创 2022-02-28 21:23:22 · 5420 阅读 · 2 评论