1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-RocketMQ-on-Pulsar

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

RocketMQ on Pulsar (RoP)

RoP — это сокращение от RocketMQ на Pulsar. Брокер RoP поддерживает протокол RocketMQ-4.6.1 и основан на платформе Pulsar.

RoP реализован как Pulsar ProtocolHandler с именем протокола «rocketmq». ProtocolHandler собран в виде файла nar и загружается при запуске брокера Pulsar.

Поддерживаемые функции

RoP использует возможности Pulsar. В настоящее время поддерживаются следующие функции:

  • отправка и получение сообщений;
  • асинхронная отправка сообщений;
  • селектор очереди производителя;
  • циклический перебор производителей;
  • производители и потребители (push и pull) с пространством имён;
  • пакетная обработка сообщений;
  • упорядочивание сообщений;
  • отправка и приём сообщений с тегами;
  • доставка сообщений на уровне;
  • повторные попытки для топиков;
  • топики DLQ;
  • широковещательные потребители.

Начало работы

В этом руководстве вы узнаете, как использовать брокер Pulsar для обслуживания запросов от клиента RocketMQ.

Скачайте Pulsar

Скачайте бинарный пакет Pulsar 2.7.1 apache-pulsar-2.7.1-bin.tar.gz и распакуйте его.

Примечание: в настоящее время RoP совместим только с Apache Pulsar версии 2.7.0 и выше.

Загрузите и соберите плагин RoP

Вы можете скачать файл nar плагина RoP из источников RoP.

Чтобы собрать проект из исходного кода, выполните следующие шаги:

  1. Клонируйте проект с GitHub на свой компьютер.
git clone https://github.com/streamnative/rop.git
cd rop
  1. Соберите проект.
mvn clean install -DskipTests

Файл nar можно найти в следующем каталоге.

./target/pulsar-protocol-handler-rocketmq-${version}.nar

Конфигурация

Имя Описание По умолчанию
rocketmqTenant Брокер RocketMQ на Pulsar, арендатор rocketmq
rocketmqMetadataTenant Арендатор, используемый для хранения метаданных Rocketmq топиков rocketmq
rocketmqNamespace Пространство имён брокера Rocketmq на Pulsar default
rocketmqMetadataNamespace Пространство имён, используемое для хранения топиков метаданных rocket __rocketmq
rocketmqListeners Сервис RocketMQ, порт rocketmq://127.0.0.1:9876
rocketmqMaxNoOfChannels Максимальное количество каналов, которые могут существовать одновременно на соединении 64
rocketmqMaxFrameSize Максимальный размер кадра на соединении 4194304 (4 МБ)
rocketmqHeartBeat Таймаут пульса по умолчанию для соединения RoP 60 (с)

Настройте брокер Pulsar для запуска обработчика протокола RoP в качестве плагина

Как упоминалось выше, модуль RoP загружается вместе с брокером Pulsar. Вам нужно добавить конфигурации в файлы конфигурации Pulsar, такие как broker.conf или standalone.conf.

  1. Конфигурация обработчика протоколов

Вам необходимо добавить messagingProtocols (значение по умолчанию — null), protocolHandlerDirectory (значение по умолчанию — "./protocols") и loadManagerClassName=org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl в конфигурационные файлы Pulsar, например broker.conf или standalone.conf. Для RoP значение для messagingProtocols равно rocketmq, а значение для protocolHandlerDirectory — каталог файла nar RoP.

Пример:

messagingProtocols=rocketmq
protocolHandlerDirectory=./protocols
loadManagerClassName=org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl
  1. Установите сервисные слушатели RocketMQ

Установите сервис RocketMQ listeners. Обратите внимание, что значение хоста в слушателях совпадает со значением advertisedListeners брокера Pulsar.

Пример:

rocketmqListeners=rocketmq://127.0.0.1:9876
advertisedListeners=INTERNAL:pulsar://127.0.0.1:6650,INTERNAL:pulsar+ssl://127.0.0.1:6651,INTERNAL_ROP:pulsar://127.0.0.1:9876,INTERNAL_ROP:pulsar+ssl://127.0.0.1:9896
rocketmqListenerPortMap=9876:INTERNAL_ROP
  1. Установите управление смещениями, как показано ниже, поскольку управление смещениями для RoP зависит от «Broker Entry Metadata» Pulsar. Это требуется для KoP версии 2.8.0 или выше. brokerEntryMetadataInterceptors = org.apache.pulsar.common.intercept.AppendIndexMetadataInterceptor

  2. Установите для параметра brokerDeleteInactiveTopicsEnabled значение false.

brokerDeleteInactiveTopicsEnabled = false

Примечание: параметры advertisedListeners и advertasedAddress нельзя настроить одновременно.

Запустите брокер Pulsar

С помощью приведённой выше конфигурации вы можете запустить свой брокер Pulsar. Для получения более подробной информации обратитесь к руководствам по началу работы с Pulsar.

cd apache-pulsar-2.7.1
bin/pulsar standalone -nss -nfw

Запустите клиент RocketMQ для проверки

В репозитории RoP мы предоставляем подмодель examples, которая содержит различные сценарии, используемые клиентом rocketmq. Вы можете запускать эти примеры непосредственно в IDE. Или вы можете загрузить исходный код RocketMQ и запустить клиент RocketMQ из examples.

Конфигурация уровня журнала

В Pulsar файл конфигурации log4j2.yaml вы можете установить уровень журнала RoP.

Ниже приведён пример.

    Logger:
      - name: RocketMQProtocolHandler
        level: debug
        additivity: false
        AppenderRef:
          - ref: Console

Лицензия

Эта библиотека распространяется на условиях лицензии Apache License 2.0 и может включать пакеты, написанные третьими лицами, которые имеют свои собственные уведомления об авторских правах и условия лицензии.

О StreamNative

Основанная в 2019 году первоначальными создателями Apache Pulsar, StreamNative является одним из ведущих участников проекта Apache Pulsar с открытым исходным кодом. Мы помогли инженерным командам по всему миру перейти на Pulsar с помощью StreamNative Cloud, полностью управляемого сервиса, который помогает командам ускорить переход к производству.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Подобно KoP, MoP и AoP, RoP — это подключаемый модуль обработки протокола. RoP внедряет модули обработки протокола RocketMQ в брокер Pulsar, что позволяет Pulsar поддерживать нативную работу с протоколом. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-RocketMQ-on-Pulsar.git
git@api.gitlife.ru:oschina-mirror/mirrors-RocketMQ-on-Pulsar.git
oschina-mirror
mirrors-RocketMQ-on-Pulsar
mirrors-RocketMQ-on-Pulsar
master