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

OSCHINA-MIRROR/l0km-simplemq

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

Простая очередь сообщений (simple Message Queue)

Простая очередь сообщений, далее simpleMQ, разработана для реализации промежуточного программного обеспечения, поддерживающего отправку сообщений.

SimpleMQ основана на Redis и fastjson и реализует функции очереди сообщений, каналов подписки и K-V таблицы.

API доступен в онлайн-документации (javadoc): https://apidoc.gitee.com/l0km/simplemq.

1. Очередь сообщений

Очередь сообщений разработана по модели «производитель — потребитель».

Код:

  • RedisProducer.java (src/main/java/gu/simplemq/redis/RedisProducer.java);
  • RedisConsumer.java (src/main/java/gu/simplemq/redis/RedisConsumer.java).

2. Каналы подписки

Каналы подписки разработаны по модели «издатель — подписчик».

Код:

  • RedisPublisher.java (src/main/java/gu/simplemq/redis/RedisPublisher.java);
  • RedisSubscriber.java (src/main/java/gu/simplemq/redis/RedisSubscriber.java).

3. K-V таблица

K-V таблица реализована в классе RedisTable.java (src/main/java/gu/simplemq/redis/RedisTable.java).

4. Создание экземпляров

Для создания экземпляров классов используется класс RedisFactory.java (src/main/java/gu/simplemq/redis/RedisFactory.java).

5. Примеры использования

Пример использования RedisConsumer:

public class TestRedisConsumer { private static final Logger logger = LoggerFactory.getLogger(TestRedisConsumer.class);

@Test
public void testRedisConsumer() {
    RedisConsumer consumer = RedisFactory.getConsumer(JedisPoolLazy.getDefaultInstance());
    Channel<String> list1 = new Channel<String>("list1", String.class, new IMessageAdapter<String>() {
        @Override
        public void onSubscribe(String t) throws SmqUnsubscribeException {
            logger.info("{}:{}", "list1", t);
        }
    });
    Channel<String> list2 = new Channel<String>("list2", String.class, new IMessageAdapter<String>() {
        @Override
        public void onSubscribe(String t) throws SmqUnsubscribeException {
            logger.info("{}:{}", "list2", t);
        }
    });
    Channel<String> list3 = new Channel<String>("list3", String.class, new IMessageAdapter<String>() {
        @Override
        public void onSubscribe(String t) throws SmqUnsubscribeException {
            logger.info("{}:{}", "list3", t);
        }
    });
    consumer.register(list1, list2);
    consumer.register(list3);
    consumer.unregister(list1);
}

}

Пример использования RedisSubscriber:

public class TestRedisSubscriber { private static final Logger logger = LoggerFactory.getLogger(TestRedisSubscriber.class);

@Test
public void test() {
    RedisSubscriber subscriber = RedisFactory.getSubscriber(JedisPoolLazy.getDefaultInstance());
    Channel<String> chat1 = new Channel<String>("chat1", String.class, new IMessageAdapter<String>() {
        @Override
        public void onSubscribe(String t) throws SmqUnsubscribeException {
            logger.info("{}:{}", "chat1", t);
        }
    });
    Channel<String> chat2 = new Channel<String>("chat2", String.class, new IMessageAdapter<String>() {
        @Override
        public void onSubscribe(String t) throws SmqUnsubscribeException {
            logger.info("{}:{}", "chat2", t);
        }
    });
    Channel<String> chat3 = new Channel<String>("chat3", String.class, new IMessageAdapter<String>() {
        @Override
        public void onSubscribe(String t) throws SmqUnsubscribeException {
            logger.info("{}:{}", "chat3", t);
        }
    });
    subscriber.register(chat1, chat2);
    subscriber.register(chat3);
    subscriber.unsubscribe(chat1.name);
    subscriber.unsubscribe();
}

}

6. Лицензия и цитирование

simpleMQ выпущена под лицензией BSD 2-Clause (LICENSE).

@article{10km, Author = {Gu,YaDong 10km0811@sohu.com}, Title = {simpleMQ: simple Message Queue}, Year = {2017}

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

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

Введение

simple Message Queue (далее simpleMQ) разработан для реализации промежуточного программного обеспечения, поддерживающего отправку сообщений. Развернуть Свернуть
BSD-2-Clause
Отмена

Обновления

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

Участники

все

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

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