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

OSCHINA-MIRROR/mirrors-rop

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку 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.

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

  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 Пространство имён, используемое для хранения тем метаданных ракеты __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 2.0 и может включать пакеты, написанные третьими лицами, которые имеют свои собственные уведомления об авторских правах и условия лицензии.

О StreamNative

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

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

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

Введение

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

Обновления

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

Участники

все

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

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