介绍
复述,发布订阅功能怎么实现?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
复述,发布订阅(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 公共空间>关于复述,发布订阅功能怎么实现问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。复述,发布订阅功能怎么实现