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

OSCHINA-MIRROR/voishion-redismq

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

RedisMQ

Ссылка, на основе которой были добавлены логика надёжных сообщений и логики уничтожения при отсутствии потребителей.

  • Redis сообщения очереди

Три варианта реализации очередей сообщений в Redis с использованием списков, потоков и Pub/Sub.

Четыре варианта реализации очередей сообщений на базе Redis.

  • Описание использования функций RedisMQ

Данный модуль представляет собой модуль, использующий список Redis для реализации очередей сообщений, а также обеспечивающий надёжность сообщений. Проект основан на платформе Spring Boot и использует функции RedisTemplate, предоставляемые Spring, для доступа к сервису Redis.

  • Как использовать

  1. Добавить конфигурацию:

    spring:
      redis:
        message-queue:
          producer: true # Включить режим производителя RedisMQ
          consumer: true # Включить режим потребителя RedisMQ
  2. Пример кода для отправки сообщений:

    @Log4j2
    @RestController
    @RequiredArgsConstructor
    public class RedisMQController {
    
        private final RedisMQSender redisMQSender;
    
        @GetMapping("hello3")
        public String send3() {
            for (int i = 0; i < 50000; i++) {
                if (i % 2 == 0) {
                    redisMQSender.send(RedisMQConstant.TEST_QUEUE, String.valueOf(i));
                } else {
                    redisMQSender.send(RedisMQConstant.TEST_QUEUE_2, String.valueOf(i));
                }
                if (i == 25000) {
                    System.out.println(i);
                }
            }
            return "";
        }
    
    }
  3. Пример кода для обработки сообщений:

    Создаётся класс RedisMQListenerContainer для определения методов обработки сообщений Redis. Для реализации прослушивания сообщений очереди Redis в методе, управляемом контейнером Spring, необходимо добавить аннотацию @RedisMQListener(имя очереди). Имя очереди должно быть строкой и не может быть пустым, оно указывает, какие сообщения должен обрабатывать метод. Обратите внимание, что метод, помеченный @RedisMQListener, может содержать только один параметр, который может быть объектом, реализующим интерфейс java.io.Serializable, или параметром типа оболочки, либо параметром универсального типа RedisMQMessage.

    @Log4j2
    @Component
    public class RedisMQListenerContainer {
    
        @RedisMQListener(RedisMQConstant.TEST_QUEUE)
        public void dealRedisMessage0(RedisMQMessage message) {
            log.info("dealRedisMessage0收到queue-1队列消息: {}", message);
        }
    
        @RedisMQListener(RedisMQConstant.TEST_QUEUE)
        public void dealRedisMessage1(String message) {
            log.info("dealRedisMessage0收到queue-1队列消息: {}", message);
        }
    
        @RedisMQListener(RedisMQConstant.TEST_QUEUE_2)
        public void dealRedisMessage2(RedisMQMessage<String> message) {
            log.info("dealRedisMessage0收到queue-2队влея сообщение: {}", message);
        }
    
    }

Примечание: Можно определить несколько методов с аннотацией @RedisMQListener(имя очереди), и все они могут обрабатывать сообщения из одной и той же очереди. Однако если одно и то же сообщение будет получено несколькими методами, оно будет обработано несколько раз. В распределённой кластерной среде разные службы, прослушивающие одну и ту же очередь, будут обрабатывать каждое сообщение только один раз.

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

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

Введение

Данный модуль представляет собой модуль с надёжной функцией сообщений и очередью сообщений, реализованный на основе типа данных списка Redis. Проект построен на платформе Spring Boot, осуществляя доступ к сервису Redis посредством функции RedisTemplate, предоставляемой Spring. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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