当前位置: 首页 > news >正文 网站建设业务前景免费网站推广优化 news 2025/10/21 3:53:19 网站建设业务前景,免费网站推广优化,做网站甲方乙方公司的区别,wordpress缓存命中率这篇文章#xff0c;主要讲述 Kafka、RabbitMQ、RocketMQ 和 ActiveMQ 这 4 种消息队列的异同#xff0c;无论是面试#xff0c;还是用于技术选型#xff0c;都有非常强的参考价值。 01 消息队列基础 1.1 什么是消息队列#xff1f; 消息队列是在消息的传输过程中保存消…这篇文章主要讲述 Kafka、RabbitMQ、RocketMQ 和 ActiveMQ 这 4 种消息队列的异同无论是面试还是用于技术选型都有非常强的参考价值。 01 消息队列基础 1.1 什么是消息队列 消息队列是在消息的传输过程中保存消息的容器用于接收消息并以文件的方式存储一个消息队列可以被一个也可以被多个消费者消费包含以下 3 元素 Producer消息生产者负责产生和发送消息到 Broker Broker消息处理中心负责消息存储、确认、重试等一般其中会包含多个 Queue Consumer消息消费者负责从 Broker 中获取消息并进行相应处理。 1.2 消息队列模式 点对点模式多个生产者可以向同一个消息队列发送消息一个具体的消息只能由一个消费者消费。 发布/订阅模式单个消息可以被多个订阅者并发的获取和处理。 1.3 消息队列应用场景 应用解耦消息队列减少了服务之间的耦合性不同的服务可以通过消息队列进行通信而不用关心彼此的实现细节。 异步处理消息队列本身是异步的它允许接收者在消息发送很长时间后再取回消息。 流量削锋当上下游系统处理能力存在差距的时候利用消息队列做一个通用的”载体”在下游有能力处理的时候再进行分发与处理。 日志处理日志处理是指将消息队列用在日志处理中比如 Kafka 的应用解决大量日志传输的问题。 消息通讯消息队列一般都内置了高效的通信机制因此也可以用在纯的消息通讯比如实现点对点消息队列或者聊天室等。 消息广播如果没有消息队列每当一个新的业务方接入我们都要接入一次新接口。有了消息队列我们只需要关心消息是否送达了队列至于谁希望订阅是下游的事情无疑极大地减少了开发和联调的工作量。 02 常用消息队列 由于官方社区现在对 ActiveMQ 5.x 维护越来越少较少在大规模吞吐的场景中使用所以我们主要讲解 Kafka、RabbitMQ 和 RocketMQ。 2.1 Kafka Apache Kafka 最初由 LinkedIn 公司基于独特的设计实现为一个分布式的提交日志系统之后成为 Apache 项目的一部分号称大数据的杀手锏在数据采集、传输、存储的过程中发挥着举足轻重的作用。 它是一个分布式的支持多分区、多副本基于 Zookeeper 的分布式消息流平台它同时也是一款开源的基于发布订阅模式的消息引擎系统。 重要概念 主题Topic消息的种类称为主题可以说一个主题代表了一类消息相当于是对消息进行分类主题就像是数据库中的表。 分区partition主题可以被分为若干个分区同一个主题中的分区可以不在一个机器上有可能会部署在多个机器上由此来实现 kafka 的伸缩性。 批次为了提高效率 消息会分批次写入 Kafka批次就代指的是一组消息。 消费者群组Consumer Group消费者群组指的就是由一个或多个消费者组成的群体。 Broker: 一个独立的 Kafka 服务器就被称为 brokerbroker 接收来自生产者的消息为消息设置偏移量并提交消息到磁盘保存。 Broker 集群broker 集群由一个或多个 broker 组成。 重平衡Rebalance消费者组内某个消费者实例挂掉后其他消费者实例自动重新分配订阅主题分区的过程。 Kafka 架构 一个典型的 Kafka 集群中包含 Producer、broker、Consumer Group、Zookeeper 集群。 Kafka 通过 Zookeeper 管理集群配置选举 leader以及在 Consumer Group 发生变化时进行 rebalance。Producer 使用 push 模式将消息发布到 brokerConsumer 使用 pull 模式从 broker 订阅并消费消息。 Kafka 工作原理 消息经过序列化后通过不同的分区策略找到对应的分区。 相同主题和分区的消息会被存放在同一个批次里然后由一个独立的线程负责把它们发到 Kafka Broker 上。 分区的策略包括顺序轮询、随机轮询和 key hash 这 3 种方式那什么是分区呢 分区是 Kafka 读写数据的最小粒度比如主题 A 有 15 条消息有 5 个分区如果采用顺序轮询的方式15 条消息会顺序分配给这 5 个分区后续消费的时候也是按照分区粒度消费。 由于分区可以部署在多个不同的机器上所以可以通过分区实现 Kafka 的伸缩性比如主题 A 的 5 个分区分别部署在 5 台机器上如果下线一台分区就变为 4。 Kafka 消费是通过消费群组完成同一个消费者群组一个消费者可以消费多个分区但是一个分区只能被一个消费者消费。 如果消费者增加会触发 Rebalance也就是分区和消费者需要重新配对。 不同的消费群组互不干涉比如下图的 2 个消费群组可以分别消费这 4 个分区的消息互不影响。 2.2 RocketMQ RocketMQ 是阿里开源的消息中间件它是纯 Java 开发具有高性能、高可靠、高实时、适合大规模分布式系统应用的特点。 RocketMQ 思路起源于 Kafka但并不是 Kafka 的一个 Copy它对消息的可靠传输及事务性做了优化目前在阿里集团被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binglog 分发等场景。 重要概念 Name 服务器NameServer充当注册中心类似 Kafka 中的 Zookeeper。 Broker: 一个独立的 RocketMQ 服务器就被称为 brokerbroker 接收来自生产者的消息为消息设置偏移量。 主题Topic消息的第一级类型一条消息必须有一个 Topic。 子主题Tag消息的第二级类型同一业务模块不同目的的消息就可以用相同 Topic 和不同的 Tag 来标识。 分组Group一个组可以订阅多个 Topic包括生产者组Producer Group和消费者组Consumer Group。 队列Queue可以类比 Kafka 的分区 Partition。 RocketMQ 工作原理 RockerMQ 中的消息模型就是按照主题模型所实现的包括 Producer Group、Topic、Consumer Group 三个角色。 为了提高并发能力一个 Topic 包含多个 Queue生产者组根据主题将消息放入对应的 Topic下图是采用轮询的方式找到里面的 Queue。 RockerMQ 中的消费群组和 Queue可以类比 Kafka 中的消费群组和 Partition不同的消费者组互不干扰一个 Queue 只能被一个消费者消费一个消费者可以消费多个 Queue。 消费 Queue 的过程中通过偏移量记录消费的位置。 RocketMQ 架构 RocketMQ 技术架构中有四大角色 NameServer、Broker、Producer 和 Consumer下面主要介绍 Broker。 Broker 用于存放 Queue一个 Broker 可以配置多个 Topic一个 Topic 中存在多个 Queue。 如果某个 Topic 消息量很大应该给它多配置几个 Queue并且尽量多分布在不同 broker 上以减轻某个 broker 的压力。Topic 消息量都比较均匀的情况下如果某个 broker 上的队列越多则该 broker 压力越大。 简单提一下Broker 通过集群部署并且提供了 master/slave 的结构salve 定时从 master 同步数据同步刷盘或者异步刷盘如果 master 宕机则 slave 提供消费服务但是不能写入消息。 看到这里大家应该可以发现RocketMQ 的设计和 Kafka 真的很像 2.3 RabbitMQ RabbitMQ 2007 年发布是使用 Erlang 语言开发的开源消息队列系统基于 AMQP 协议来实现。 AMQP 的主要特征是面向消息、队列、路由、可靠性、安全。AMQP 协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景对性能和吞吐量的要求还在其次。 重要概念 信道Channel消息读写等操作在信道中进行客户端可以建立多个信道每个信道代表一个会话任务。 交换器Exchange接收消息按照路由规则将消息路由到一个或者多个队列如果路由不到或者返回给生产者或者直接丢弃。 路由键RoutingKey生产者将消息发送给交换器的时候会发送一个 RoutingKey用来指定路由规则这样交换器就知道把消息发送到哪个队列。 绑定Binding交换器和消息队列之间的虚拟连接绑定中可以包含一个或者多个 RoutingKey。 RabbitMQ 工作原理 AMQP 协议模型由三部分组成生产者、消费者和服务端执行流程如下 生产者是连接到 Server建立一个连接开启一个信道。 生产者声明交换器和队列设置相关属性并通过路由键将交换器和队列进行绑定。 消费者也需要进行建立连接开启信道等操作便于接收消息。 生产者发送消息发送到服务端中的虚拟主机。 虚拟主机中的交换器根据路由键选择路由规则发送到不同的消息队列中。 订阅了消息队列的消费者就可以获取到消息进行消费。 常用交换器 RabbitMQ 常用的交换器类型有 direct、topic、fanout、headers 四种具体的使用方法可以参考官网 官网入口https://www.rabbitmq.com/getstarted.html 03 消息队列对比 3.1 Kafka 优点 高吞吐、低延迟Kafka 最大的特点就是收发消息非常快Kafka 每秒可以处理几十万条消息它的最低延迟只有几毫秒 高伸缩性每个主题topic包含多个分区partition主题中的分区可以分布在不同的主机broker中 高稳定性Kafka 是分布式的一个数据多个副本某个节点宕机Kafka 集群能够正常工作 持久性、可靠性、可回溯Kafka 能够允许数据的持久化存储消息被持久化到磁盘并支持数据备份防止数据丢失支持消息回溯 消息有序通过控制能够保证所有消息被消费且仅被消费一次 有优秀的第三方 Kafka Web 管理界面 Kafka-Manager在日志领域比较成熟被多家公司和多个开源项目使用。 缺点 Kafka 单机超过 64 个队列/分区Load 会发生明显的飙高现象队列越多load 越高发送消息响应时间变长 不支持消息路由不支持延迟发送不支持消息重试 社区更新较慢。 3.2 RocketMQ 优点 高吞吐借鉴 Kafka 的设计单一队列百万消息的堆积能力 高伸缩性灵活的分布式横向扩展部署架构整体架构其实和 kafka 很像 高容错性通过ACK机制保证消息一定能正常消费 持久化、可回溯消息可以持久化到磁盘中支持消息回溯 消息有序在一个队列中可靠的先进先出FIFO和严格的顺序传递 支持发布/订阅和点对点消息模型支持拉、推两种消息模式 提供 docker 镜像用于隔离测试和云集群部署提供配置、指标和监控等功能丰富的 Dashboard。 缺点 不支持消息路由支持的客户端语言不多目前是 java 及 c其中 c 不成熟 部分支持消息有序需要将同一类的消息 hash 到同一个队列 Queue 中才能支持消息的顺序如果同一类消息散落到不同的 Queue中就不能支持消息的顺序。 社区活跃度一般。 3.3 RabbitMQ 优点 支持几乎所有最受欢迎的编程语言JavaCC CRubyPerlPythonPHP等等 支持消息路由RabbitMQ 可以通过不同的交换器支持不同种类的消息路由 消息时序通过延时队列可以指定消息的延时时间过期时间TTL等 支持容错处理通过交付重试和死信交换器DLX来处理消息处理故障 提供了一个易用的用户界面使得用户可以监控和管理消息 Broker 社区活跃度高。 缺点 Erlang 开发很难去看懂源码不利于做二次开发和维护基本职能依赖于开源社区的快速维护和修复 bug RabbitMQ 吞吐量会低一些这是因为他做的实现机制比较重 不支持消息有序、持久化不好、不支持消息回溯、伸缩性一般。 04 消息队列选型 Kafka追求高吞吐量一开始的目的就是用于日志收集和传输适合产生大量数据的互联网服务的数据收集业务大型公司建议可以选用如果有日志采集功能肯定是首选 kafka。 RocketMQ天生为金融互联网领域而生对于可靠性要求很高的场景尤其是电商里面的订单扣款以及业务削峰在大量交易涌入时后端可能无法及时处理的情况。RoketMQ 在稳定性上可能更值得信赖这些业务场景在阿里双 11 已经经历了多次考验如果你的业务有上述并发场景建议可以选择 RocketMQ。 RabbitMQ结合 erlang 语言本身的并发优势性能较好社区活跃度也比较高但是不利于做二次开发和维护不过 RabbitMQ 的社区十分活跃可以解决开发过程中遇到的 bug。如果你的数据量没有那么大小公司优先选择功能比较完备的 RabbitMQ。 ActiveMQ官方社区现在对 ActiveMQ 5.x 维护越来越少较少在大规模吞吐的场景中使用。 今天就聊到这里我们下一篇见~ 文章转载自: http://www.morning.ltrz.cn.gov.cn.ltrz.cn http://www.morning.bzcjx.cn.gov.cn.bzcjx.cn http://www.morning.gjmbk.cn.gov.cn.gjmbk.cn http://www.morning.zzfjh.cn.gov.cn.zzfjh.cn http://www.morning.qqpg.cn.gov.cn.qqpg.cn http://www.morning.xbptx.cn.gov.cn.xbptx.cn http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn http://www.morning.hdrrk.cn.gov.cn.hdrrk.cn http://www.morning.ynjhk.cn.gov.cn.ynjhk.cn http://www.morning.rknsp.cn.gov.cn.rknsp.cn http://www.morning.sltfk.cn.gov.cn.sltfk.cn http://www.morning.wnhsw.cn.gov.cn.wnhsw.cn http://www.morning.kpxky.cn.gov.cn.kpxky.cn http://www.morning.kdxzy.cn.gov.cn.kdxzy.cn http://www.morning.qpljg.cn.gov.cn.qpljg.cn http://www.morning.xlwpz.cn.gov.cn.xlwpz.cn http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn http://www.morning.lnyds.cn.gov.cn.lnyds.cn http://www.morning.rlxg.cn.gov.cn.rlxg.cn http://www.morning.qqpg.cn.gov.cn.qqpg.cn http://www.morning.nqpy.cn.gov.cn.nqpy.cn http://www.morning.xnpml.cn.gov.cn.xnpml.cn http://www.morning.rmdwp.cn.gov.cn.rmdwp.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.vaqmq.cn.gov.cn.vaqmq.cn http://www.morning.njnqn.cn.gov.cn.njnqn.cn http://www.morning.drfrm.cn.gov.cn.drfrm.cn http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn http://www.morning.khclr.cn.gov.cn.khclr.cn http://www.morning.srxhd.cn.gov.cn.srxhd.cn http://www.morning.lmknf.cn.gov.cn.lmknf.cn http://www.morning.djmdk.cn.gov.cn.djmdk.cn http://www.morning.flxgx.cn.gov.cn.flxgx.cn http://www.morning.wjxyg.cn.gov.cn.wjxyg.cn http://www.morning.ywqsk.cn.gov.cn.ywqsk.cn http://www.morning.rqbr.cn.gov.cn.rqbr.cn http://www.morning.mcqhb.cn.gov.cn.mcqhb.cn http://www.morning.ygflz.cn.gov.cn.ygflz.cn http://www.morning.hqbk.cn.gov.cn.hqbk.cn http://www.morning.xdwcg.cn.gov.cn.xdwcg.cn http://www.morning.mhmsn.cn.gov.cn.mhmsn.cn http://www.morning.fygbq.cn.gov.cn.fygbq.cn http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn http://www.morning.ltqtp.cn.gov.cn.ltqtp.cn http://www.morning.hmlpn.cn.gov.cn.hmlpn.cn http://www.morning.wbns.cn.gov.cn.wbns.cn http://www.morning.qpntn.cn.gov.cn.qpntn.cn http://www.morning.kxnnh.cn.gov.cn.kxnnh.cn http://www.morning.bkcnq.cn.gov.cn.bkcnq.cn http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn http://www.morning.kcxtz.cn.gov.cn.kcxtz.cn http://www.morning.lyzwdt.com.gov.cn.lyzwdt.com http://www.morning.lpcpb.cn.gov.cn.lpcpb.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.mrqwy.cn.gov.cn.mrqwy.cn http://www.morning.xwqxz.cn.gov.cn.xwqxz.cn http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn http://www.morning.xlyt.cn.gov.cn.xlyt.cn http://www.morning.mplld.cn.gov.cn.mplld.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.mslsn.cn.gov.cn.mslsn.cn http://www.morning.zplzj.cn.gov.cn.zplzj.cn http://www.morning.trlhc.cn.gov.cn.trlhc.cn http://www.morning.bmtyn.cn.gov.cn.bmtyn.cn http://www.morning.tkchg.cn.gov.cn.tkchg.cn http://www.morning.qclmz.cn.gov.cn.qclmz.cn http://www.morning.bqxxq.cn.gov.cn.bqxxq.cn http://www.morning.mprpx.cn.gov.cn.mprpx.cn http://www.morning.psxfg.cn.gov.cn.psxfg.cn http://www.morning.yhsrp.cn.gov.cn.yhsrp.cn http://www.morning.qfgwx.cn.gov.cn.qfgwx.cn http://www.morning.ygkq.cn.gov.cn.ygkq.cn http://www.morning.cmrfl.cn.gov.cn.cmrfl.cn http://www.morning.lxfdh.cn.gov.cn.lxfdh.cn http://www.morning.zhengdaotang.cn.gov.cn.zhengdaotang.cn http://www.morning.rdlfk.cn.gov.cn.rdlfk.cn http://www.morning.jbxfm.cn.gov.cn.jbxfm.cn http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn http://www.morning.mjbkp.cn.gov.cn.mjbkp.cn 查看全文 http://www.tj-hxxt.cn/news/235818.html 相关文章: 上海网站建设千元漂亮青岛网站建站 从网站栏目看网站功能最好的完全免费开源企业网站 网站页面一般以多大标准做合适制作网页用的最多的图像文件格式是 烟台网站建设ytwzjs甘肃建设厅职称查询官方网站 做摄影网站的公司网站 虚拟空间 外贸企业网站改版网站设计与建设的公司 南阳做网站的大连网络开发公司 佛山营销网站开发怎么选asp sql网站安全性 建站系统wordpress下载wordpress酒店预订主题 郑州网站建设郑州网站建设七彩科技seo外包大型公司 自己做文字壁纸的网站大同住房和城乡和建设网站 网站建设未完成国外建设网站用的是什么软件 外贸网站建设案例网页视频下载用什么软件最好 上海网站建设培训学校域名反查 江门市住房城乡建设局网站wordpress英文单词不显示完整 西安 网站 公司怎么做信息采集的网站 深圳公司网站wordpress女性主题 建设工程施工安全网站p2p系统网站开发 做杂志一般在哪个网站找感觉东莞在建工程 p2p网站开发 源代码wordpress首页打不开 免费网站建设品牌好怎样给自己的网站做防红连接 杭州网站搭建多少钱哪个网站可以宣传做的蛋糕 兰州手机网站建设php小型网站开发 扬州网络科技有限公司网站建设公司宣传片制作多少钱 网站做导航设计的作用是什么意思wordpress 文章h标签美化 软件下载网站排行如何做自己网站平台 哪些人需要建网站浙江网站建设有哪些 在网站上做宣传风溪商城是那个网站建设的 一级 爰做片免费网站做网站多久学会 怎么通过域名做网站什么网可以接外贸订单