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

    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    Cocos2d-x游戏《雷电大战》开源啦!要源代码要资源快快来~~
    Tomcat部署项目时出错java.lang.IllegalStateException: ContainerBase.addChild: start:org.apache.catalina.Life
    PCA主成分分析Python实现
    C语言知识结构之二
    javascript中构造函数的返回值问题和new对象的过程
    poj 1694 An Old Stone Game 树形dp
    Android新技术学习——阿里巴巴免Root无侵入AOP框架Dexposed
    c++中vector向量几种情况的总结(向量指针,指针的向量)
    Hash分析
    三期_day05_Dao层的准备工作_II
  • 原文地址:https://www.cnblogs.com/javammc/p/15265325.html
Copyright © 2011-2022 走看看