zoukankan      html  css  js  c++  java
  • 分布式消息队列之其他队列

    一、Rabbitmq

    二、RocketMQ

    与kafka的区别:

    • 纯java开发,不用zk
    • 支持延迟投递,消息溯源等
    • 多个队列使用一个日志文件,所以不存在kafka过多topic之后慢的问题

    三、Pulsar

    Pulsar 是一个用于服务器到服务器的消息系统,具有多租户、高性能等优势。 Pulsar 最初由 Yahoo 开发,目前由 Apache 软件基金会管理。

    Pulsar的关键特性如下:

    • Pulsar的单个实例原生支持多个集群,可跨机房在集群中无缝完成消息复制
    • 极低的发布延迟和端到端延迟
    • 可无缝扩展到超过一百万个topic
    • 简单的客户端API,支持Java、Go、Python和C++
    • 支持多种topic订阅模式(独占订阅、共享订阅、故障转移订阅)
    • 通过Apache BookKeeper提供的持久化消息存储机制保证消息传递
    • 基于Pulsar Functions的serverless connector框架Pulsar IO使得数据更易移入、移出Apache Pulsar
    • 分层式存储可在数据陈旧时,将数据从热存储卸载到冷/长期存储(如S3、GCS)中

    命名空间

    命名空间是租户内部逻辑上的命名术语。 可以通过admin API在租户下创建多个命名空间。你可以在namespace下创建任意数量的topic。

    订阅模式

    4种订阅模式

    消息去重

    消息去重保证了一条消息只能在 Pulsar 服务端被持久化一次

    生产者幂等

    Pulsar种,broker上可以处理消息去重

    实际一次语义

    消息延迟传递

    单机模式安装

    下载:wget https://archive.apache.org/dist/pulsar/pulsar-2.8.0/apache-pulsar-2.8.0-bin.tar.gz

    下载好压缩文件后,解压缩并使用 cd 命令进入文件所在位置

    单机启动:

    bin/pulsar standalone

    消费消息:

    bin/pulsar-client consume my-topic -s "first-subscription"

    生产消息:

    bin/pulsar-client produce my-topic --messages "hello-pulsar"

    四、Camel

    Apache Camel 是一个开源集成框架,它使您能够快速、轻松地集成各种消费或生成数据的系统。

    Apache Camel 使用 uri 来简化与各种传输或消息传递模型的集成,包括 HTTP、 ActiveMQ、 JMS、 JBI、 SCA、 MINA 或 CXF,并与可插入数据格式选项一起工作。Apachecamel 是一个小型库,它具有最小的依赖性,便于在任何 Java 应用程序中嵌入。Apache Camel 允许您使用相同的 API,而不管传输类型如何,从而使您能够在对 API 有了很好的理解的情况下,与所提供的所有组件进行交互

    我们可以使用Camel把activeMq里面的消息转移到RabbitMQ里去。

    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    mysql数据库主从同步复制原理
    NoSQL
    Mysqldump参数大全
    MySQL Show命令的使用
    学习shell脚本之前的基础知识
    详解MySQL大表优化方案
    sql索引的优缺点
    [C#] 取得每月第一天和最後一天、某月总天数
    Easy ui DateBox 控件格式化显示操作
    StudioStyle 使用 厌倦了默认的Visutal Studio样式了,到这里找一个酷的试试
  • 原文地址:https://www.cnblogs.com/javammc/p/15265325.html
Copyright © 2011-2022 走看看