MQ
消息队列
冯佳兴
一名非常热爱计算机的 Boy,技术是一门哲学,愿意和我一起研究新的技术吗?
本人坚持自主学习,站在巨人肩膀上学习,善于分享。
我会经常分享系列基础博客,希望大家喜欢,有什么问题记得关注留言哦!
展开
-
【Kafka 实战】04 生产者
一、疑问 前期学习过程当中,我们知道kafka为了提高数据的并发处理,将一类消息及topic发送到多个Partition当中,它是如何分区呢,生产者又是如何知道将具体的某一个数据发送到相应的Partition上呢? 下面我们看一下ProducerRecord对象,生产者发送消息到kafka集群,new了一个ProducerRecord对象,通过对象重载实现了分区原则。...原创 2019-11-17 21:46:18 · 220 阅读 · 4 评论 -
【Kafka 实战】03 文件存储详解
一、上一篇:kafka基础二、kafka文件存储机制从图中的架构我们可以看到,一类消息即topic分为了三个分区Partition,每一个Partition分区 由多个Segment,一个Segment存在一个.log文件,一个.index文件。1)Topic :可以理解为一个队列,生产者和消费者面向同一个 topic; 消息队列可能有很多消息,但是不是每一个消息消费者都要去获...原创 2019-11-14 20:41:41 · 402 阅读 · 2 评论 -
【Kafka 实战】02 Centos7 搭建 kafka2.11-2.1.1集群
kafka集群搭建需要在zookeeper服务器中运行,所以我们需要搭建一下zookeeper集群,当然kafka有内置的zookeeper,这是我们不用它。1.搭建环境介绍主机 IP 版本 端口 系统 server.1 192.168.60.72 kafka_2.11-2.1.1 zookeeper _3.5.6 90...原创 2019-11-11 21:24:44 · 454 阅读 · 4 评论 -
【Kafka 实战】01 kafka 入门篇
一、背景今天是11月12号,昨天双11,一个特殊的日子,昨天大家集体购物,此时产生了一个问题,上亿的人同时下单,各大电商是如何在此时处理上亿的订单呢?当上亿客户下单,将产生大量的订单(消息),此时订单已经写入了数据库,但是后台处理能力有限,不能及时处理上亿级的订单,于是后台告诉用户一个假象,你已经下单成功,但其实用户的下单信息被缓存到了消息队列,后台再从消息队列中获取订单,对订单进行处理 ...原创 2019-11-12 15:14:57 · 391 阅读 · 4 评论 -
【消息队列】06 避免内存溢出和频繁的垃圾回收
内存如果溢出,通过自动内存管理机制实现,垃圾回收是不可控的,但是可以降低回收的频率。自动内存管理机制的实现原理 —避免内存溢出1申请内存过程计算要创建对象所需要占用的内存大小在内存中找一块儿连续并且是空闲的内存空间,标记为已占用;把申请的内存地址绑定到对象的引用上,这时候对象就可以使用了。垃圾回收过程— 标记、清除两阶段标记阶段:从 GC Root 开始,你可以简单地把 GC Root 理解为程序入口的那个对象,标记所有可达的对象,因为程序中所有在用的对象一定都会被这个 GC Root原创 2020-05-18 11:11:57 · 478 阅读 · 0 评论 -
【消息队列】05 如何处理消息积压问题
为什么会有消息积压?如何处理消息积压?原创 2020-05-18 10:59:07 · 387 阅读 · 0 评论 -
【消息队列】04 幂等性解决重复消息问题
幂等性如果一个函数 f(x) 满足:f(f(x)) = f(x),则函数 f(x) 满足幂等性。计算机中描述一个操作,方法或者服务,一个幂等操作的特点是,其任意多次执行所产生的影响均与一次执行的影响相同。总结 :一个幂等方法使用相同参数,进行一次或多次调用对系统产生的影响是一样的,重复执行对系统没有任何改变。...原创 2020-05-18 10:57:03 · 309 阅读 · 0 评论 -
【消息队列】03 消息队列是如何确保消息不丢失的
消息可靠传递,我们要看消息都在出现在哪里?生产阶段通过收到broker 的确认响应,则表示发送成功。同步发送消息可以通过 try catch 捕获异常,进行重发,如果是异步发送消息,则需要写回调方法检查消息是否丢失。存储阶段将消息写入多个副本,或者通过配置刷盘和复制相关参数,不因Broker宕机导致消息丢失。消费阶段处理完所有的消费业务逻辑后,在发ACK。...原创 2020-05-18 10:52:58 · 226 阅读 · 0 评论 -
【消息队列】02 如何选择消息队列 —技术选型
消息队列这么多,你是怎么做技术选型的呢?技术选型的标准是什么?技术选型的标准必须是开源产品,有Bug可以修改源码。必须是近几年流行,社区活跃度高,遇到Bug方便解决。与周边的生态系统兼容和集成度要高。消息传递可靠;确保消息不丢失,支持集群,有良好的性能且满足大多数场景的性能要求。RabbitMqRocketMqkafka第二梯队消息队列总结若对消息队列的功能和性能没有很高的要求,建议用RabbitMq,开箱即用。RocketMq主要场景是处理在线业务,例如交易系统用消原创 2020-05-18 10:44:13 · 261 阅读 · 0 评论 -
【消息队列】01 为什么需要消息队列 — 解耦、异步、削峰
为什么需要消息队列?如何做消息队列的选型? 消息队列——解耦,异步,削峰!原创 2020-05-18 10:23:06 · 441 阅读 · 0 评论