消息队列原理及选型

      最后更新:2022-05-04 09:55:41 手机定位技术交流文章

      什么是消息队列

      信件队列用于在进程之间或同一进程线索之间进行通信。

      您何时要排队发邮件?

      • 以步骤处理:例如,短信警报、终端传送、应用程序推推、用户重新输入等等。
        有些操作不希望或需要立即处理信息。 信件队列提供了一个逐步处理系统, 允许用户在队列中放置信件, 但不会立即处理 。 在队列中尽可能多地输入信息, 然后在需要时处理 。

      • 数据同步代表商业数据发送同步。

      • 不重试簿记账导致重试赔偿。

      • 系统上下通信 终端异常监测 以及分布式事件中心 都是系统连接的例子
        这是几年来首次制定项目。Isomer 系统安装在项目的早期阶段,预计该项目将适合未来的需求。是极其困难的。在整个处理过程中,通过电文系统注入了隐含的数据界面层。必须在该进程的双方实现这种互动。当应用发生变化时,双方可以独立地扩大或修改这一程序。只需确保它们使用相同的接口。

      • 减速速度减速:第二个杀戮场景按顺序排列
        如果来访者人数猛增,申请必须继续符合其宗旨。然而,这种突然流动是无法预测的;根据能够处理这种即时高峰访问的标准,将资源置于待命状态必然是巨大的浪费。使用信息队列使关键组件能够承受意外访问压力。而不是因为要求突然过多而完全崩溃。

      • HSF 服务状态变更通知、分发活动中心订阅

      • 数据流处理包括记录、监测和报告。
        分布式系统产生的大型数据流,如商业日志、监测数据、用户行为等,以实时或大宗方式收集,然后是大数据分析,这是当今互联网的关键技术,信息队列是收集这类数据的最佳选择。

      • 分布式事务

      • RPC调用

      消息队列核心概念

      信件中介( 信件服务器)
      经纪人的想法来自阿帕奇积极MQ,通常称为MQ服务器。

      (生产商)
      负责为Broker制造通信的公司发射装置

      客户(消费者)
      负责从经纪人那里收集资料和执行商业逻辑的商业处理员。

      Topic(主题)
      在分发模式、多个制作者向主题提供的信息、MQ服务器向不同订户发送的信息统一模式、多制作者向主题提供的信息、MQ服务器向不同订户发送的信息和传播的信息

      Queue(队列)
      根据PTP模式,某些生产商将信息传送到特定的队列,而消费者则订阅特定的队列,以完成对特定信息的接收。

      • 本地队列
        本地队列按目的分类为初始队列、传输队列、目标队列和死字队列。
        使用初始队列函数作为信件触发函数。
        传输队列 : 根据需要, 在通过管道传送到另一个队列管理器之前, 临时保存信件 。
        消息的目的地是目标队列, 并且可以无限期保留 。
        死字母队列 : 如果信件无法被路由或无法到达目的队列, 将自动放置在死字母队列中保存 。

      • 别名队列&远程队列
        是指定远程队列管理器队列的队列定义。使用远程队列是为了让应用程序不必知道目标队列的位置。

      • 模型队列
        模型队列描述一组本地队列属性, 一旦打开模型队列, 队列管理器将根据这些属性构建本地队列 。

      (发件人)消息(发件人的消息)
      按照若干通信协议规定的预先确定的格式编码的包装包装,以包含操作数据并允许发送电文

      消息模式

      PTP点对点

      对于信息制作者和信息消费者之间的点对点通信,采用了点对点模式。

      点对点模式有三种作用:

      • 消息队列
      • 发件人( 发件人)
      • (接收人)

      每条信件被排成指定的队列, 接收者从中接收信件。 队列用于持有信件, 将其保留在记忆中, 或持续到它被食用或超时为止 。

      特点:

      • 每条留言只有一位消费者(消费者)(即一旦被吃掉,消息就不再出现在新闻队列中)。
      • 发报机和收件人之间没有时间依赖关系。
      • 收到此信件后, 收件人必须成功响应队列 。
      • 有了FIFO的先入先出功能,信息序列可以保证。

      出版物/订阅

      订阅模式的分布有三种作用:

      • 主题(Topic)
      • 出版商(编辑)
      • 订户(订户)

      许多出版商向 " 专题 " 组织发送信息,然后有条不紊地将信息分发给许多订户。

      特点:

      • 与点对点技术不同,每条电文可以有若干消费者,所有订户都可以消化电文的发布。
      • 发行者和订阅者都取决于时间。
      • 在它可能消耗出版商的信息之前,主题(Topic)的订阅者必须先创建订阅者。
      • 用户必须保持活跃,以获得消费新闻。

      常用协议

      AMQP

      高级信件排首协议(AMCQP)是高级信件排首协议的缩略语。这是一项不限成员名额的申请级协议标准。设计用于一个面向信息的中间物体。电文的中间部分主要用于断开部件。电文发件人不必知道电文收件人的存在。反之亦然。信息方向、队列、路由器(包括点对点和分发/订阅)、可靠性和安全性是AMQP的主要特点。

      优点:可靠、通用

      MQTT

      MQTT(Message Queuing Telemetry Transport,IBM为传送遥测信息制定了即时通讯协议。这可能是一个关键的组成部分 在一个东西的网络。协定涵盖所有平台。几乎可以将所有互联网产品与外部世界连接起来。使用Twitter连接房屋。

      效益包括格式简单、带宽使用率最低、移动终端通信、统一和卫生政策以及嵌入系统。

      STOMP

      STOMP是一个基于文本的短信协议。这是MOM的一个例子(Message Oridgeed Middleware),设计了一个简单的文本协议。STOMP 提供了一个可互操作的连接格式 。它使客户能够与任何STOMP信息代理(Broker)进行通信。

      好处:指挥模式(非专题队列模式)。

      XMPP

      XMPP(可扩展信件处理站点协议)是跨网络交流信息的一项协议。《XML协议》是《可扩展通信和存在议定书》的基础。经常用于即时信息(IM)和在线现场探测。它适用于即时服务器对服务器的交互作用。核心是围绕XML流建造的。该协议可能允许互联网用户今后在互联网上向任何其他人发送即时信息。尽管其操作系统和浏览器不同,但情况却不同。

      好处包括普遍开放、高度兼容、可缩放和高度安全;然而,XML编码格式消耗带宽。

      比较两种流行的MQ产品(RabbitMq和Kafaka)。

      架构方面

      • Kafaka是一种标准的mq结构,包括供应商Broker消费者,Kafaka(默认情况下)缺乏确认机制。
      • RabbitMq的经纪人由三部分组成:交换、装订队列和留言队列。其中包括交换和约束,从而创建了电文的线路钥匙;客户制片人通过连接频道和服务器进行互动。排队向消费者提供消费信息。RabitMq有一个确认的方法。

      吞吐量方面

      • Kafaka采用零拷贝方法,这意味着数据储存和获取是在O(1)复杂和数据处理效率极佳的本地磁盘上进行的批量操作。
      • 就吞吐量而言,RabbitMq低于Kafaka,RabitMq能够进行可靠的信息传输、服务,但不能进行大宗活动。

      可用性方面

      • 因为Kafka Broker使用主模型,所以它非常可用。
      • RabitMq 支持 Mirror 队列, 主队列过期, 小队列接管 。

      集群负载方面

      • 为了实现负载平衡,Kafaka雇用了动物园管理员。我不确定我能完成这个任务动物管理员协调方法允许制作人将对专题的相应经纪人进行记录。近年来,政府试图比前几年更多地了解该国的困境。实现负载均衡;
      • RabbitMq需要自己独特的负载平衡器。

      总结

      MQ 吞吐量 应用场景 特点
      RabbitMq 3500-4000msg/s 规模不大、不可靠、大规模公司应用、ESSB、精密的路线计划以及可购买系统一体化的场景 协议内容广泛、互操作、运作良好,但信息格式庞大且缓慢,信息可持续性对业绩有重大影响。
      ZeroMq >800000msg/s 高总和连接,如在线游戏。 高容量实时情况,如股票流动 重点强调网络开发、大笔开发成本、自我实现的先进功能,建议不用于典型的MQ
      ActiveMq ~3600msg/s 既非重要又不可靠、在企业一级应用、分配服务(XA)和异构体系统整合的假设情况 RabbitMq比RabbitMQ轻, 速度相似, JMS支持完整,
      Redis ~15000msg/s 高吞吐低延时、大量小消息体(<10k)、顺序性或排序要求、异构系统整合 轻量级MQ、灾害容忍度和负荷的自我实现性质是自我实现的。
      Kafka IN ~70000msg/s,OUT >150000msg/s 日志、DB数据同步和高堆叠离线数据处理是大数据流的例子。 非典型MQ较易按流程进行批量加工。

      RabbitMQ

      RabitMQ是用来执行AMQP(高级信息队列协议)的中间信息之一。它首先表现在银行部门。该系统在分布式系统中用于存储转发信息。在可用性、扩大和可用性方面表现良好。研发兔子Q主要是为了提供双向连接系统。随着制造商产生大量数据,客户无法快速消费。之后加上中间层。保存这个数据。

      RabibitMQ是开放源码 AMQP 实施 。服务器端以 Erlang 编程语言写入 。支持多种客户端,例如Python、Ruby、Net、Java、JMS、C、PHP、ActionScript、XMP、STOMP和更多的编程语言。支持 AJAX。该系统在分布式系统中用于存储转发信息。在可用性、扩大和可用性方面表现良好。

      关键字

      频道( 频道)
      通道是两位管理人员之间的单向点对点通信联系,如果需要双向通信,可以建立双向渠道。

      交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换交换
      交换类似于数据通信网络中的交换台,因为它提供了一个路由战略。

      依据创用CC BY-NC-SA 2.此信件不是由制片人通过频道直接发送到队列的 。最初寄给汇兑公司。交易所可以连接到多个队列 。当信息是由制片人传达的,它会发出一个摇摇欲坠的钥匙。将使用特定的路线算法 来决定事件的过程, 根据这个ROUYTING_KEY。将信息传送到合适的队列。和Queue一样,交易所的配置也可行,可以自我维持。临时或者自动删除。

      交流有四种方式:直接(默认)、发号施令、主题和信头。
      交易所在传递电文时所使用的各种技术有区别:

      • direct
        Excelnge的直接交换器传送的信息完全符合ROUINGING_KEY的要求,与单一广播类似。
      • fanout
        电台是一个交换器, 无论信件的 ROUHING_ KEY 是如何配置的, 交换将信件发送到所有连接的队列 。
      • topic
        主题交换器,它的功能与传输方式相似。Expressange 将会以 ROUYTING_KEY 匹配模式的同样方式将信件发送到所有队列 。比如,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止,停止user.stock,对不起,大厨 我不知道你在说什么,股票(* 任何句子见本表。 )# 这是一个词组匹配 0 或更多的词组)
      • headers
        忽略 IM 信头匹配

      装订
      约束性是指将特定交易所和特定Quee捆绑在一起的行为。 额外交易和Quee可以与各种关联相联系。

      路盘键
      交换中心使用本关键词发送信件。

      vhost (虚拟主机)
      使用 RabitMq 服务器, 您可以设置一些虚拟断信器 。它被称为虚拟主机(虚拟主机)。每个幽灵都充当一个小型的阿拉伯比特姆克服务器。我们无法做到这一点。以及约束性。虚拟主机与实际服务器相同 。为许多申请提供边界隔离是可行的。它使应用安全 执行在许多 幽灵情景下。相互之间不会干扰。要指定 vhost, 制片人和消费者必须连接到 Rabibit 服务器 。

      消息发送及接受过程

      预计P1和C1都在同一家经纪公司、交易所和Quue注册。 P1发布的信息将由C1消化。
      基本来文程序很可能如下:

      • P1 向服务器终端交换生产信息
      • 根据ROUTINKEY的说法,Expressange收到了一条信息,并发送给了适当的队列1。
      • 该电文由Quue1接收,并送交订户C1。
      • C1通过向队列发送 ACK 收到了一条消息和确认的收件。
      • 队列1 接收 ACK 并删除在队列1 中缓存的信件 。

      当消费者收到信息时, 他必须以可见的方式将蜜蜂传递给拉比特经纪人。 当有错误信息或用户订阅信息时, 将自动背面参数设置为 True 。

      在沟通过程中排队处理ACK的情况如下:

      • 如果消费者收到信息并做出确认回应, rabnmq将消息从队列中删除, 并向消费者发送另一个信息 。
      • 如果消费者接受此信息,但发送前断开此信息,兔子会推断该信息没有发送,当消费者重新连接时将重新发送。
      • 如果消费者接受该电文,但协议中存在错误,例如忘记了船船,braidmq不会重新发送电文。
      • rabbitmq2。0。消费者拒绝电文在版本0和以后都得到支持。可以通过在后排参数中将拒绝参数设定为真实来做到这一点 。然后,该信息将通过bridgemq传送给下一位注册客户。

      消息的ACK机制

      这是新闻Ackonownledge确认程序。为了保证新闻不会被忽略新闻摄制组向观众介绍 " 承认机制 " 。即ACK机制,当客户承认该消息已被消化后,向信件队列发送确认 。然后可以将信件从队列中删除 。如果消费者崩溃/崩溃,没有发送ACK,因为此信件尚未处理, 新闻队列将假定它尚未处理 。这条电文将重新传送给另一个消费者再消费。

      消息的事务支持

      信息处理支持服务,例如:在任务中心情景中,即时处理许多信息应在相同范围内,如果信息未处理,则事项会回滚,信息返回队列。

      消息的持久化

      信息持久性对于几个关键核心职能至关重要。 当信息队列在激活后重新打开时,信息可以从持续存储中检索,信息不会丢失,消费可以继续。

      消息处理模式

      fanout 模式
      模式特点:

      • 我听说他是个广播模式
      • 使用 Exchange 约束 发送信息时, 您不需要根植密钥 。
      • 这一结构要求及早与Quuee进行交换;交易所可以约束一个以上的Quue,而Quueu可以约束多个交易所。
      • 如果获得该信息的交易所没有与任何节目挂钩,则该信息将被否决。

      direct 模式
      向直接交换提交的任何信件将根据根基发送到队列 。

      • 通常您可以使用 LabbitMQ 自动携带交易所 :"(此交易所名称为空字符串), 或者您可以自定义交易所 。
      • 此模式并不需要任何 Exchange 绑定 (bind) 动作 。 当然, 它可能会被绑绑住 。 可以将各种路由键绑在一起, 将队列和队列绑到不同的交汇处 。
      • 要传递信息,需要“路由钥匙”。
      • 如果信件中不包含受路由_Key约束的团队名单,则该信息将被删除。

      如果交换宣布为直接, 约束指定了 根_ 键, 则信件必须包括 交换 和 根_ 键 。

      简言之,生产者产生数据以提交交易所,这是他们首先要做的。基于 Excelnge 的交换和从 binting 键上订阅 。如果制片人和订户都有相同的路由特快车会漫步到前线

      topic 模式
      直接型号的上述交换路线规则完全配以宾式键和滚动键,然而,在许多情况下,这种严格匹配无法满足实际业务需求。

      专题类交易所的匹配规则已经扩大。它可与直接的外源类比。也是连接到路由键的键盘的队列。但是,匹配规则 有点不同在这里。
      它约定:

      • “按键是一个停止的号码。” “分开的字符串”"分离字符串中每个单独的部分都被称为单词"比如说,"斯托克",我道歉, 婚礼"nyse,"nyse","vmw,"快速。"我不知道你在说什么,橙色。" 我不确定我能做到这一点。"
      • 绑定键,像滚键一样,是一个停止指示。"
      • Binting 键 "可以有两个特殊人物"以及"#"的模糊匹配“ 匹配一个单词, “ # ” 匹配多个单词( 可能是零), ”

      以下是图表设置的一些例子。我不知道你在说什么 但我不确定你在说什么 但我不确定你在说什么 我不知道你在说什么 橙色我不知道你在说什么 我不知道你在说什么 橙色 我不知道你在说什么我不知道你在说什么 但我不确定你在说什么 对不起 布朗 福克斯的消息会发到Q2我不知道你在说什么,但我不知道你在说什么,对不起,Pink.Q2(只寄给Q2)是兔子新闻的途径。尽管这个根键对应于Q2中的两个键;滚键=“快速 ” 。 请接受我的道歉, Brown. Fox, “ 路径键 ”, “ 路径键 ”, “环形键 ”, “路径键 ” 。 我不知道你在说什么, 橙色。 我不知道你在说什么, 男性。 兔子新闻将被放弃。因为它们与任何宾机键不匹配 。

      集群

      兔子Q有三种部署模式:单一机器、普通集群和镜像集群。

      普通集群模式
      许多计算机都投入使用,每个计算机都有一个兔子样板,然而,编成的队列将只放在兔子样板上,每个同步队列元数据都是同步队列元数据。

      如果消费与其他情况有关,此示例使用队列示例中的数据 。这将增加数据收集的费用。如果队列示例失败,因此,无法从这个例子中推断出更多的事例。即使新闻是开着的,它也会无限期持续下去。如果您允许Rabbitmq 保存此信件, 您就可以使用此信件 。消息不一定会丢,因此,我们必须等待这个榜样回来。这样我们就能从这个队列里 获得更多的信息了没什么好说的主要是提供吞吐量,让多个组节点执行一定的队列读写动作 。

      镜像集群模式

      队列的信息和信息以多种方式存储。当信件被写入时, 它会自动同步到许多队列实例 。它就像一台机器,它像一台机器, 它像一台机器,它像一台机器, 它像一台机器,它像一台机器, 它像一台机器,它就像一台机器, 它像一台机器,它像还可以在屋顶上安装更多的机械。但是性能开销太大,信息同步给网络流量带来压力,另外,没有扩展性可言,如果这条线负担过重加机器,此队列中的所有数据同样存在于新计算机中。无法选择以线性方式扩展您的队列 。此时,必须激活镜像集模式 。创建一项政策并将其保存到兔子管理控制平台。数据与指定的节点数同步。然后重新创建队列 。应用这个策略,数据自动与其他节点同步。

      Kafka

      介绍

      Apache Kafka是一个次级项目。这是一个多语种、高性能分布/订阅信息排队系统(一个不完全符合联合管理系统标准的点对点模式)。但它会有所改变。在公司发展方面,有若干种应用。其主要好处是其业绩优异。电文的可靠性(丢失或重复)为负值。这种劣势因业绩强劲而得到补偿。它不仅工作的方式,它的工作方式,它的工作方式, 它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式,它的工作方式作为回报 信息的可靠性。

      Topics/logs

      它可被视为一个主题的信息。每个专题将分成若干节(区域)。在存储级别上,每个分区是一个应用程序日志文件。对这个分区所做的任何修改将被附加到日志文件的结尾处 。提及文件中每条电文的抵消(吸收)。这是一个很长的数字。这是信息的唯一信号这是信息的唯一信号Kafka没有提供任何额外的索引技术,在卡夫卡语中,几乎禁止随意阅读和写作。

      Kafka与JMS(Java Message Service)的区别在于,信息不会立即被删除 。日志文件将根据经纪人的设置需要生成。在设定时间之后删除;例如,日志文件保留两天。那么两天后,文件会被清除,或新闻是否被吸收。这是卡夫卡这样做的直截了当的技术。来释放磁盘空间,以及软磁盘 IOs在降低信息消耗量后修改文件内容的费用。

      在消费者方面,它必须保持抵消消费者信息。为了保护和抵消使用,需要管制消费者;当典型消费者支出的消息到来时,它将是“线性”和前向驱动的。也就是说,新闻将按时间顺序消化。事实上,消费者可以使用任何消费信息序列。所需要的只是将折合数重置为任何值。(将保留在动物猎食器中。 )参见下文)

      卡夫卡集群几乎不需要跟踪消费者和生产者状况信息。由于动物园保存了这些信息,生产者和消费者客户非常轻便。它们可以随意离开,聚类不受任何影响。

      由于若干原因,使用分区。主要原因是卡夫卡依赖文件储存。通过分区,可以将日志的内容分发给许多服务器。为了防止超过单个磁盘的最大文件大小,当前服务器( 例如kafka) 将存储每个partiton; 您可以比任何多个部件都修剪一个对象, 但您也可以保存它 。提高信息/消费的效率。因此,分歧越大,消费者就越容易得到照顾。(c) 大大加强它们调用消费的能力。(关于某些想法的进一步资料见下文。 )

      Distribution

      单一主题的多个部门,在卡夫卡集群中,一个以上的服务器是分散的;每个服务器(卡夫卡实例)负责在当事人中读写信件;此外,卡夫卡可以设定当事人必须备份的复制件数量。每个分区将备份在不同的电脑上。以提高可用性。

      这是政府第一次能够就这一事项采取行动。因此,必须规划许多备份;每一部分都有“领导者”的服务器;领导者负责所有的阅读和写作。如果领导者无法工作,然后,将有别的人接任新领导人,而只有独一的领袖将随他而来。同步消息即可。因此,Leader的服务器已经承载了所有的请求。因此,从整个专题组来看,政党的数量表示“领导人”的数量。每一个案例 卡夫卡都会分散"领导者"的平衡保持整个业绩一致性。

      Producers
      制片人向指定主题发送信息,同时决定将其归为哪个组成部分,例如,使用“圆柱形”方法或其他方法。

      Consumers
      卡夫卡实质上只支持主题。每个客户都是消费者群体的成员;反之,每个群体可能有数名消费者。这个项目是我们人权观察社特别报道的一部分。每一组用户中只有一位消费者消费这个话题。

      如果所有消费者都属于同一群体,情况与排队的情况相同;信息将传达消费者之间的负载平衡。

      如果所有客户都分为不同的类别,新闻将向所有消费者传播。

      在kafka中,只有一个信息只由该团体的消费者之一消费;每个团体有自己的消费者;我们可以将一个团体视为“订户”。每种选择都有自己的主题。“下标”只由一人消费。另一方面,吸收器可以消耗不止一种信息。只有卡夫卡才能确保一个片段的新闻被消费者吃掉。消息是顺序的。事实上,议题的观点是:消息仍不是有序的。

      根据卡夫卡的设计原则,考虑到一个主题,同一群体消费的消费者不能超过零部件的数量;否则,一些消费者将无法获得信息。

      Guarantees

      • 向缔约方发送的信息按收到顺序添加到记录中。
      • 消费者日志中的信息顺序与其消费日志中的信息顺序相对应。
      • 如果主题的“复制因素”为N,则允许N-1 kafka实例失效。

      使用场景

      • Messaging
        就某些传统信息系统而言,卡夫卡是一个很好的选择,因为党员/复制和容忍。它使kafka能够受益于良好的推广和业绩优势。不过到目前为止,这是我们应极为注意的事项。与JMS不同, Kafka没有提供商业层面的功能, 如“ 操作”、“ 信息传输保证” 和“ 信息组” ; 它只能用作“ 传统” 的通讯系统 。在一定程度上,尚未确保电文的传输和接收完全可信(例如,电文再传送)。消息发送丢失等);

      • Websit activity tracking
        Kafka是跟踪网站活动的最大工具;网页/用户活动等信息可传送给kafka。 (b) 实时模拟、离线统计分析等;

      • Log Aggregation
        由于卡夫卡的特性,它最适合作为“log 收集中心” ; 应用程序可以将操作日志“ Batch”、“ 同步” 传送到 kafka 群集 。Kafka不是在当地或在一个数据库中储存信息,而是可以大量发送/压缩信息,例如。这是为制片人准备的这几乎很难理解 业绩的成本。在现阶段,消费者方面支持各种系统储存和分析系统,如Hadoop。

      消息可靠性保障

      Kafka更适合高通量环境, 并允许损失有限数量的数据, 而JMS则用来保证“可靠的信息传递 ” 。

      Kafka 制片人发来的信息以两种方式传递(配置参数制作人。 TYPE :

      • 抱歉, 制片人. type=sync( 默认) : 在后台线上发布的信件是同步的, 合适的类是 Kafka. I'm sorry, 制片人. Sync Producer;
      • 对不起 制片人 消息在线后方 不对称地传递类似类是 Kafka. Aync Producer; 好处是信息可以大量传送(batch. I'm sorry, Num. 当时间达到200, 发送起来真好, 并且它能吸收它。缺点是,传送延误可能导致损失。

      为了同步( 制作者) 。 Type=sync? Kafka 制片人传递包含 3 个确认( 配置参数 :

      • (c) Backs=0:生产商不等待领导人确认只能发送;信息最有可能丢失;这适用于可能丢失高泵的业务。
      • Backs=1(默认):当领袖被记录到本地日志时,制片人确认;此后,领袖与追随者同步。如果领袖的机会导致知识的丧失而没有同步,他就不能利用它。然而,该倡议仍然确信它取得了成功。
      • Backs=all/ 1 : 制片人等待领头人写给本地日志, 并只在跟追随者同步完成后才确认领头人 。

      设计原理

      Kafka最初打算成为一个统一的收集信息平台,能够实时收集反馈,它需要能够管理更多的数据,同时也能容忍错误。

      持久性
      Kafka 将信息存储在文件中 。这明确表明,kafka的业绩在很大程度上取决于文件系统的特点。且无论任何OS下,要优化文件系统本身几乎很难。例如,一个典型的工具就是文件缓存/直接内存绘图。因为 kafka 是日志文件添加程序 。因此,磁盘检索费用较低;但是,为了尽量减少所生产的磁盘数量,经纪人会让新闻维持一段时间当信件的数量(或大小)超过特定点时,之后,冲到磁盘上。这减少了软磁盘 IO 调用量 。

      性能
      有几个后果需要考虑。除磁盘IO之外,我们还必须考虑物联网(IoT)。这直接影响到卡夫卡输送量问题。卡夫卡在人才方面没有多大贡献。 在制片人方面,让新闻重新上线是个绝妙的主意当栏数超过特定限制时,该批货物被传送给Broker, 消费者端相同。无法获取很多消息 。另一方面,配置文件可以指定信件音量的大小 。关于卡夫卡经纪人的结局似乎有一个Sendfile系统有可能改进网络 IO 性能:将文件数据映射到系统中,然后使用数据。Socket 能够立即进入相关的内存空间 。不需要程序复制或交换。事实上,对于制造商/消费者/经纪人来说,处理器应价廉。因此,实施信息压缩方法是一种智能技术;它需要使用少量的CPU资源。然而,对于卡夫卡,与以往任何时候相比,更应该考虑到网络国际组织。通过因特网发送的每条信息都可以压缩。Kafka支持各种压缩算法,包括gzip/snappy。

      生产者
      加载平衡: 制片人将与专题下的所有分区领导人连接, 信息将直接从制片人通过插座传送到布洛克。中间不会有"路由水平"事实上,无论信息中哪些内容对新闻负责,都已经确定。有生产者-客户的选择。例如,“随机”和“关键哈什”都是有效的选择。如果专题分为几节,因此,生产者需要“均衡分发信息”。

      分区领袖的位置 (主机: port) 由动物猎犬保存 。我不知道该说什么 但我不知道该说什么已经设置了一个监视器 来监控分区领袖的改变
      犯下暴行:许多信息是首次立即向客户缓冲器发送的。然后,他们把分批的货交到经纪人那里。小数据IO太多,它不会让整个网络停止运作实际上,批次交货迟缓提高了网络效率。然而,存在着危险。例如,如果制片人失败,尚未发送的信件将会丢失 。

      消费者
      消费者端向Broker提出“牵引”请求,告知他从收集信息的地点得到抵消;消费者端随后收到一定数量的信息;消费者端也可重新设定抵消,以重新补充信息。

      在JMS实现中,推力技术是主题模型的基础。也就是说,这个信息是从 " 中间商末端 " 到 " 消费者末端 " 传递的。但是,在卡夫卡,很简单,我不知道我会做什么, 但我无法做到这一点。在与Broker建立联系后,这个模式有一定的好处, 但它不是唯一的出路 离开这里的方法, 这是离开这里的方式, 这是离开这里的方式, 这是离开这里的方式, 这是离开这里的方式, 这是离开这里的方式, 这是离开这里的方式, 这是离开这里,首先和最重要的是,消费者的终点可以向前推进,并及时为其自身的消费能力进行取回。此外,新闻消耗率可能受到控制(抵消)。客户更能控制他们消费多少新闻。batch fetch。

      其他JMS实现,新闻的接收仅限于寄生虫。防止再次发送信息或重新发布尚未成功消耗的信息是不可行的。保持对电文状况的控制也至关重要。因此,JMS Broker将不得不做太多的努力。在kafka中,在分区中,新闻中只有一个消费者。无法控制信件状态 。没有信息确认的复杂方法。因此,卡夫卡经纪人的结局相当轻。顾客震惊地得知消息。通过使用消费者冲抵,最新信息可以保存在当地。时不时的,在偏移上签个名 给动物猎犬。由此可见,消费者客户也比较轻。

      消息传送机制

      JMS的电文传输保证很简单:是的,只有一次(确切地说一次)。
      卡夫卡有轻微的区别:

      • 最多一次: 这与 JMS 中的“ 无法持续” 信息相似。 发送一次, 不论是否有效, 将不会重复 。
      • 至少一次: 信件至少一次发送一次, 如果信件未被成功接受, 可以重新发送 。
      • 消息会只发出一次

      最多一次:消费者获得新闻。此外,另加节余。然后处理信件;当客户端保存时,但新闻处理程序出错了因此,部分材料无法继续使用。此抓取将无法提供“ 未处理” 消息 。意思是"最多一次"

      至少一次:喂饱消费者。然后处理消息,然后节省了冲抵部分。如果新闻被有效地消化,然而,动物捕食者出乎意料地未能在抵消步骤进行保存操作。因此,有可能获得进一步资料,了解以下取货公司以前处理过的问题。上面写着"至少一次"之所以没有及时将冲抵原因寄给食鼠,是因为它不可能做到。Zookeper回到了正常状态 或之前的偏移。

      卡夫卡没有严格执行这一方法(基于第二阶段提交材料和服务),我们认为卡夫卡没有必要采取这一战略。

      “至少一次”通常是我们偏好的选择。 (重复收到数据比多次丢失数据总是更可取。 )

      如何防止信息反复出现:利用暴徒的客户等。

      集群

      高卡夫卡可以由许多经纪人组成,每个经纪人都是一个节点。

      创建一个被分割成许多片段的主体,每个片段都居住在不同的中间商上,并放置部分数据。

      Kafka是一个分布式的电文队列,这意味着一个主题的数据分为几个单元,每台机器储存一部分数据。

      零点。 8个版本没有HA机制,它要么是Broker计算机,不能书写或读取Broker上的分区,而且没有高利用率。

      0.8版本以后,才提供了HA机制,这是一个复制机制。每个数据都与其他计算机同步自行创建许多副本副本 。然后,复制人将投票选举产生一个领导人。因此,生产和消费都与这一领导人有关。其余的复制件是追随者。

      在您写作时, 领导者负责将数据同步到 Allower, 以便您可以立刻读到它。

      卡夫卡将分会的所有复制品均匀分布在数台计算机上,从而增强了过失容忍度。

      如果一个布洛克人死了也没关系它复制在其他机器上。如果这个领袖是你们的一部分所以我们得重新选举新领导人继续读写关于新领袖的报导。它被称为高可用性。

      写数据的时候,制片人讨论领导者。然后,数据由Leader写入本地软盘。另一个失败者随后抓住了领导者提出的提取数据的倡议。当所有数据被同步后,我要把它寄给领袖 然后寄给领袖当头领收集了所有 滑雪人的杰克,他们将回到生产者那里,写出他们的成就。

      复制备份

      • Kafka 将每个分区的数据复制到多个服务器, 每个分区有一个领先者, 多个collowers (如果不是的话) 将每个分区的数据复制到多个服务器, 每个分区有一个领先者和多个collowers (如果不是) ;
      • Broker 配置文件允许您指定备份的数量 。所有读写请求都由领导人处理。跟踪者必须和领袖同步她是我这辈子见过的第一位女士 我从未见过一个女人有关消费的信息保存在本地日志中 。
      • 领导者负责监控所有冲水者状态, 如果“ 低” 延迟或失败, 领导者会将其从同步列表中删除 。
      • 在保存所有信息后, 信息被视为“committee”, 消费者可以消费它。
      • 即使只有一份副本能够保存下来,它也能够确保只要动物园管理员组群有生命存在,信息就会被正确传送和接收(而其他分布式储存库,如光基,需要“多数”才能生存)。
      • 领导人辞职后,新领导人必须从比目鱼中挑选,他们现在可能落后于领导人,因此,必须挑选“最新”的追随者。
      • 选择工具时要考虑的因素之一较低。这是迄今为止新领导人持有的股份数量。如果服务器的零部件过剩,这意味着该服务器将受到信通处需求增加的影响。在挑选新领导人的过程中有必要考虑一下"货量平衡"

      如何处理消息丢失

      信息损失可分为三部分:生产者、mq中介和消费者:

      RabbitMQ

      • 生产者端的控制
        利用服务,然后在出现问题时再试一次。
        相反,可以使用传闻的反驳(确认),消费者将生产者的技术归还给生产者,告诉生产者正确处理信息。

      • 中间件的控制
        向磁盘发送信息(不能保证它们永远不会丢失);

      • 消费者端控制
        汽车和手动汽车都关闭。

      Kafka
      几乎和兔子号一样

      • 当 Kafka 保证信件同步到 Allower 到 ACK, setacks= all 。
        当断头台领导人坠毁,新闻没有与下层同步时,选举产生了一名新领导人,当时与新闻不同步,信息丢失了,补救措施是:

      如何保证信件序列

      Rabbitmq
      需要保证的信息被提交给同一队列,队列只能有一个消费者,如果希望加快速度,可以放在存储队列中,分散到底部的单独工人手中。

      Kafka
      在一个章节中写进数据必须以系统的方式进行。当生产者成群结队的时候,您可以输入密钥,例如,订单id被确定为一把钥匙。该订单的数据必须发送给第三方。客户必须有系统地将数据从党内调出。将每个数据放入自己的内存队列 。分区中的一些相关数据存储在多个存储队列中。顾客已开始许多讨论。每条线负责一个内存队列

      http://ww.un.org/I'm not sure what you're talking about, zixi. Org/archives/381.html https://ww.un.org/I'm not sureing what you're talking about, zixi. Org/archives/381.html. https://ww.un.org/I'm not sure what you're talking.

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/23308.html

          热门文章

          文章分类