# simplemq **Repository Path**: elan/simplemq ## Basic Information - **Project Name**: simplemq - **Description**: simple Message Queue(以下简称simpleMQ)设计用来实现一个支持消息推送的中间件 - **Primary Language**: Java - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2023-12-22 - **Last Updated**: 2023-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # simple Message Queue simple Message Queue(以下简称simpleMQ)设计用来实现一个支持消息推送的中间件 simpleMQ基于redis和fastjson实现消息队列,频道订阅,K-V表, API在线文档(javadoc) : [https://apidoc.gitee.com/l0km/simplemq](https://apidoc.gitee.com/l0km/simplemq) ## 消息队列 消息队列被设计成producer/consumer模型 [RedisProducer.java](src/main/java/gu/simplemq/redis/RedisProducer.java ) [RedisConsumer.java](src/main/java/gu/simplemq/redis/RedisConsumer.java ) ## 频道订阅 频道订阅被设计成publisher/subscriber模型 [RedisPublisher.java](src/main/java/gu/simplemq/redis/RedisPublisher.java ) [RedisSubscriber.java](src/main/java/gu/simplemq/redis/RedisSubscriber.java ) ## K-V表 K-V表 [RedisTable.java](src/main/java/gu/simplemq/redis/RedisTable.java ) ## 实例化 [RedisFactory.java](src/main/java/gu/simplemq/redis/RedisFactory.java )用于创建上述的类的实例 ## 调用示例 RedisConsumer示例 public class TestRedisConsumer { private static final Logger logger = LoggerFactory.getLogger(TestRedisConsumer.class); @Test public void testRedisConsumer(){ RedisConsumer consumer = RedisFactory.getConsumer(JedisPoolLazy.getDefaultInstance()); Channel list1 = new Channel("list1",String.class,new IMessageAdapter(){ @Override public void onSubscribe(String t) throws SmqUnsubscribeException { logger.info("{}:{}","list1",t); }} ); Channel list2 = new Channel("list2",String.class,new IMessageAdapter(){ @Override public void onSubscribe(String t) throws SmqUnsubscribeException { logger.info("{}:{}","list2",t); }} ); Channel list3 = new Channel("list3",String.class,new IMessageAdapter(){ @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 chat1 = new Channel("chat1",String.class,new IMessageAdapter(){ @Override public void onSubscribe(String t) throws SmqUnsubscribeException { logger.info("{}:{}","chat1",t); }} ); Channel chat2 = new Channel("chat2",String.class,new IMessageAdapter(){ @Override public void onSubscribe(String t) throws SmqUnsubscribeException { logger.info("{}:{}","chat2",t); }} ); Channel chat3 = new Channel("chat3",String.class,new IMessageAdapter(){ @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(); } } ## License and Citation simpleMQ is released under the [BSD 2-Clause license](LICENSE). @article{10km, Author = {Gu,YaDong 10km0811@sohu.com}, Title = {simpleMQ: simple Message Queue}, Year = {2017} }