复述,发布订阅功能怎么实现

  介绍

复述,发布订阅功能怎么实现?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

复述,发布订阅(pub/sub)是一种消息通信模式:发送者(酒吧)发送消息,订阅者(子)接收消息。

复述,客户端可以订阅任意数量的频道。

<强>复述,提供了发布订阅功能,可以用于消息的传输,复述的发布订阅机制包括三个部分,发布者,订阅者和频道。

复述,发布订阅功能怎么实现

发布者和订阅者都是复述,客户端,通道则为复述,服务器端,发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息.Redis的这种发布订阅机制与基于主题的发布订阅类似,通道相当于主题。

<强> 1,引入能

& lt; dependency>   & lt; groupId> redis.clients   & lt; artifactId> jedis   & lt; version> 2.9.0   & lt;/dependency>

<强> 2,具体实现代码

包com.hcmony.sword.redis;      进口org.apache.commons.lang3.StringUtils;   进口redis.clients.jedis.Jedis;   进口redis.clients.jedis.JedisPool;   进口redis.clients.jedis.JedisPubSub;/* *   * & lt; h4> Shenjue.java基本描述& lt;/h4>   * & lt; p> & lt;/p>   *   * @author hcmony   * @since V1.0.0, 2019/05/06 20:07   */公开课RedisMQ {   私有静态最终字符串主题=癟OPIC";      私人最终JedisPool JedisPool;      公共RedisMQ (JedisPool JedisPool) {   这一点。jedisPool=jedisPool;   }/* *   *发布消息   * @param主题   * @param信息   */公共空间发布(String话题,字符串信息){      能能=零;   如果(StringUtils.isBlank(主题)){   主题=主题;   }   尝试{   能=jedisPool.getResource ();   jedis.publish(主题、信息);   }   最后{   如果(零!=能){   jedis.close ();   }   }   }/* *   *订阅消息   * @param主题   * @param jedisPubSub   */公共空间订阅(String话题,JedisPubSub JedisPubSub) {      能能=零;   如果(StringUtils.isBlank(主题)){   主题=主题;   }   尝试{   能=jedisPool.getResource ();   jedis.subscribe (jedisPubSub、主题);   }   最后{   如果(零!=能){   jedis.close ();   }   }   }         公共静态void main (String [] args) {//默认连接本地复述,//loclhost: 6379   JedisPool JedisPool=new JedisPool ();   RedisMQ发布=new RedisMQ (jedisPool);   新线程(新Runnable () {   @Override   公共空间run () {   publish.subscribe (“PID"新MyjedisPubSub ());   }   }) .start ();   for (int i=0; i<100;我+ +){   publish.publish (“PID",“messge" + i);   }      }      公共静态类MyjedisPubSub延伸JedisPubSub {   @Override   公共空间>关于复述,发布订阅功能怎么实现问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

复述,发布订阅功能怎么实现