Архитектура: SpringCloud-Stream + RocketMQ + RocksDB (можно использовать Nacos, Eureka в качестве регистрационного центра, как отдельный сервис отложенных сообщений).
Это разновидность очереди отложенных сообщений на основе Apache RocketMQ.
Поскольку Apache RocketMQ не поддерживает настраиваемую очередь отложенных сообщений, был создан этот проект для дополнения Apache RocketMQ, чтобы можно было реализовать пользовательскую задержку сообщений.
Связанные с Apache RocketMQ очереди сообщений: TOPIC_SYSTEM_QUEUE_REALTIME: очередь реальных сообщений (когда сообщение истекает, количество сообщений в этой очереди увеличивается на 1); TOPIC_SYSTEM_QUEUE_DELAY: очередь отложенных запросов (используется для приёма запросов на отложенные сообщения).
Полностью наследует высокую доступность, высокую производительность, низкую задержку и надёжность Apache RocketMQ. Если производительности RocketMQ недостаточно, добавьте узлы брокера RocketMQ. Если потребление сообщений недостаточно, скопируйте эту услугу и настройте группу потребления на TOPIC_SYSTEM_QUEUE_DELAY. Также можно преобразовать её в службу Eureka или Nacos, чтобы обеспечить поддержку высокой доступности Restful.
Предоставляются два режима: один — интерфейс Restful, другой — SpringCloudStream.
GET 1.1 http://delay-server:port/message/push/normal
Параметры: id: идентификатор сообщения (уникальный); message: содержимое сообщения. Пример: GET 1.1 http://delay-server:port/message/push/normal?id=1&message=Hello World
GET 1.1 http://delay-server:port/message/push/delay
Параметры: id: идентификатор сообщения (уникальный); message: содержимое сообщения; timestamp: время отправки. Пример: GET 1.1 http://delay-server:port/message/push/delay?id=1&message=Hello World×tamp=метка времени отправки сообщения в будущем
GET 1.1 http://delay-server:port/message/push/delay/pattern
Параметры: id: идентификатор сообщения (уникальный); message: содержимое сообщения; date: строка даты; pattern: правило форматирования. Пример: GET 1.1 http://delay-server:port/message/push/delay/pattern?id=1&message=Hello World&date=2021-03-03 11:00:00&pattern=yyyy-MM-dd HH:mm:ss
Настройте канал производства сообщений Topic, Topic TOPIC_SYSTEM_QUEUE_DELAY
spring:
cloud:
stream:
rocketmq:
binder:
# Используйте этот адрес в новой версии
name-server: rocketmq-server:9876
bindings:
# Канал отправки
system_topic_queue_realtime_output:
# Пункт назначения: тема (Topic)
destination: TOPIC_SYSTEM_QUEUE_REALTIME
# Канал отправки
system_topic_queue_delay_output:
# Пункт назначения: тема (Topic)
destination: TOPIC_SYSTEM_QUEUE_DELAY
# Приёмный канал
system_topic_queue_delay_input:
# Пункт назначения: тема (Topic)
destination: TOPIC_SYSTEM_QUEUE_DELAY
# Тип MessageConvert, протокол JSON
content-type: application/json
# Группа потребления
group: TOPIC_SYSTEM_QUEUE_DELAY_GROUP
application:
name: omuao-delay-queue
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
default-property-inclusion: non_null
mvc:
date-format: yyyy-MM-dd HH:mm:ss
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )