当前位置: 首页 > news >正文

网站打不开怎么解决广州学生做网站

网站打不开怎么解决,广州学生做网站,附近短期电脑培训班,公司和网站备案查询密码前言 今天要分享的是基于Redisson实现信息发布与订阅#xff08;以前分享过直接基于redis的实现#xff09;#xff0c;如果你是在多服务间基于redisson做信息传递#xff0c;并且有服务压根就收不到信息#xff0c;那你一定要看完。 今天其实重点是避坑#xff0…前言 今天要分享的是基于Redisson实现信息发布与订阅以前分享过直接基于redis的实现如果你是在多服务间基于redisson做信息传递并且有服务压根就收不到信息那你一定要看完。        今天其实重点是避坑真正的集成使用就几步。 一、redission介绍 介绍的文字我都懒得写其实要我写详细我也是google下面直接贴图吧        介绍的挺详细的吧下面还有代码示例哦不得不说这个GPT插件挺好用的。        其实简单理解就一句话它就是redis的java客户端做了一层封装。 二、使用步骤 1.引入库 代码如下示例 !-- springboot redis集成 --dependencygroupIdorg.springframework.session/groupIdartifactIdspring-session-data-redis/artifactId/dependency!-- springBoot redisson redis支持 --dependencygroupIdorg.redisson/groupIdartifactIdredisson-spring-boot-starter/artifactIdversion3.24.3/version/dependency2.信息发布 /*** 告警监听器*/import cn.hutool.json.JSONUtil; import org.redisson.api.RTopic; import org.redisson.api.RedissonClient; import org.redisson.codec.SerializationCodec; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import com.xx.xx.alarm.entity.Alarm; import javax.annotation.PostConstruct; import javax.annotation.Resource;Component public class AlarmListener{private static final Logger LOGGER LoggerFactory.getLogger(AlarmListener.class);Resourceprivate RedissonClient redisson;public static String WS_ALARM_LISTEN WS_ALARM_LISTEN;private RTopic topic;/*** 开启监听*/PostConstructvoid openReceiving() {topic redisson.getTopic(WS_ALARM_LISTEN, new SerializationCodec());}/*** 业务需要的地方可以直接待用**/public void sendNotice(Alarm alarm) {//redis 发广播try {//topic.publish(alarm);//屏蔽redisssion监听对class的差异String alarmStr JSONUtil.toJsonStr(alarm);topic.publish(alarmStr);} catch (Exception e) {LOGGER.error(sendNotice失败, e);}}}Alarm是告警实体对象大家根据自己的业务可能是其他对象。 3、信息订阅 /*** 告警监听器**/import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xxxx.entity.Alarm;import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.redisson.api.RTopic; import org.redisson.api.RedissonClient; import org.redisson.api.listener.MessageListener; import org.redisson.codec.SerializationCodec; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;import javax.annotation.PostConstruct; import javax.annotation.Resource;import java.util.List; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; import java.util.stream.Collectors;Component public class AlarmListener {private static final Logger LOGGER LoggerFactory.getLogger(AlarmListener.class);Resourceprivate RedissonClient redisson;public static String WS_ALARM_LISTEN WS_ALARM_LISTEN;private RTopic topic;/*** 开启监听*/PostConstructvoid openReceiving() {topic redisson.getTopic(WS_ALARM_LISTEN, new SerializationCodec());LOGGER.info(监听ws成功{}, topic);topic.addListener(String.class, (charSequence, msgStr) - {//TODO 收到消息去做自己的业务下面是我们业务的一个示例if (StringUtils.isNotEmpty(msgStr) JSONUtil.isJson(msgStr)) {Alarm alarm JSON.parseObject(msgStr, Alarm.class);send(alarm);}});} }其实就这么简单如果是在一个服务里面用2个监听器是可以合并的。我这里是2个服务里面用。        就是因为在2个服务里面用不知道大家有没有发现topic的publish、addListener的特别之处可能大家在写的时候可以直接publish、addListener放入业务对象.class参数。我刚开始也是被坑在这里。一个服务里面publish信息了另一个服务里死活收不到用redis-cli去看发现信息又是放入了主题的监听的主题也与发布的一致。        补充redis-cli命令的使用 redis-cli -h redis服务ip -p 端口 -a 密码SUBSCRIBE topic名称我首先想到的是2边版本不一致于是把新搭建的流水服务的redisson-spring-boot-starter降版本结果还是一样。        然后就debug发现监听里的onMessage基类会做如下判断        这个除了判断channel频道收到的信息还会判断信息与添加监听addListener时传入的class是否可以转换。 网上好多都只提到publish、addListener但是压根记不会提到传入的class会干嘛知道问题原因后我们让数据回归本质直接用String这也就形成了我上面的2段。 总结 基于redisson实现信息发布订阅就是这么简单几下一定注意publish、addListener不要直接用业务对象尤其是不在一个服务里毕竟谁也不能保证对象名一样也不能保证包路径一样回归信息的本质用字符串靠谱如果是复杂的信息传递机制还是用专业的信息中间件 好了就写到这里希望可以帮到大家。
http://www.w-s-a.com/news/173006/

相关文章:

  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语
  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断
  • 网站域名注册网站centos做网站服务器
  • 网站服务器共享的 vpsh5页面制作软件电脑版
  • 免费手机网站申请上海网站建设设计公司哪家好