分布式消息队列之其他队列

一、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里去。

posted @ 2021-09-13 22:46  女友在高考  阅读(96)  评论(0编辑  收藏  举报