RoP — это сокращение от RocketMQ на Pulsar. Брокер RoP поддерживает протокол RocketMQ-4.6.1 и основан на платформе Pulsar.
RoP реализован как Pulsar ProtocolHandler с именем протокола «rocketmq». ProtocolHandler собран в виде файла nar и загружается при запуске брокера Pulsar.
RoP использует возможности Pulsar. В настоящее время поддерживаются следующие функции:
В этом руководстве вы узнаете, как использовать брокер Pulsar для обслуживания запросов от клиента RocketMQ.
Скачайте бинарный пакет Pulsar 2.7.1 apache-pulsar-2.7.1-bin.tar.gz и распакуйте его.
Примечание: в настоящее время RoP совместим только с Apache Pulsar версии 2.7.0 и выше.
Вы можете скачать файл nar плагина RoP из источников RoP.
Чтобы собрать проект из исходного кода, выполните следующие шаги:
git clone https://github.com/streamnative/rop.git
cd rop
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 (с) |
Как упоминалось выше, модуль RoP загружается вместе с брокером Pulsar. Вам нужно добавить конфигурации в файлы конфигурации Pulsar, такие как broker.conf
или standalone.conf
.
Вам необходимо добавить 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
Установите сервис 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
Установите управление смещениями, как показано ниже, поскольку управление смещениями для RoP зависит от «Broker Entry Metadata» Pulsar. Это требуется для KoP версии 2.8.0 или выше. brokerEntryMetadataInterceptors = org.apache.pulsar.common.intercept.AppendIndexMetadataInterceptor
Установите для параметра brokerDeleteInactiveTopicsEnabled значение false.
brokerDeleteInactiveTopicsEnabled = false
Примечание: параметры
advertisedListeners
иadvertasedAddress
нельзя настроить одновременно.
С помощью приведённой выше конфигурации вы можете запустить свой брокер Pulsar. Для получения более подробной информации обратитесь к руководствам по началу работы с Pulsar.
cd apache-pulsar-2.7.1
bin/pulsar standalone -nss -nfw
В репозитории 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 и может включать пакеты, написанные третьими лицами, которые имеют свои собственные уведомления об авторских правах и условия лицензии.
Основанная в 2019 году первоначальными создателями Apache Pulsar, StreamNative является одним из ведущих участников проекта Apache Pulsar с открытым исходным кодом. Мы помогли инженерным командам по всему миру перейти на Pulsar с помощью StreamNative Cloud, полностью управляемого сервиса, который помогает командам ускорить переход к производству.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )