zoukankan      html  css  js  c++  java
  • Soul网关websocket同步数据

    websocket同步数据

    初始化属性部分

    首先启动soul-admin项目,然后启动soul-boostrap项目,可以明显发现websocket连接成功
    file
    奇怪的是,使用昨天测试SpringCloud的数据库发现webosocket无法连接成功。后续可以继续尝试下这种问题发生的原因

    分析pom文件的依赖可知。由于soul-boostrap是springboot项目,所以websocket相关的配置是从soul-spring-boot-starter-sync-data-websocket加载
    file
    这个例子中涉及到starter相关的知识不做解读了。在这个configration中通过注入bean注入了websocket的配置以及几个空的订阅器包括插件订阅器pluginSubscriber,元数据订阅器metaSubscribers和认证订阅器authSubscribers用来监听admin项目的数据的改变。
    此处的websocketConfig属性由配置文件注入。其他属性特别是pluginSubscriber数据的ObjectProvider是Spring4.3之后的一个新特性。简单来说就是可以代替@Autowired的作用。具体的示例,可以参考https://www.cnblogs.com/fightingting/p/14300409.html 和 https://www.cnblogs.com/fengxueyi/p/13888562.html

    数据准备和连接部分

    file
    从代码可以看到。对于websocket这一块。做好了多个websocket的连接的做法。随后阻塞的连接每个客户端。然后利用线程池每隔30秒检测是否关闭。关闭的话回去尝试重连接。如果不能重新连接会抛出错误

    发送消息部分

    关于websocket发送消息的部分,我之前使用spring-websocket做过一个类似的案例https://zhaozhen.blog.csdn.net/article/details/80356392 。其实主要就是利用onMessage来传递数据。即在修改时由admin发送数据。随后网关部分做相应操作
    file
    接下来有了这样的问题。接收到了数据之后WebsocketDataHandler的executor并没有实现什么实际的操作,这个需要后续在组件操作时继续研究

    问题

    • 在保存有其他同步机制的情况下,websocket的通信问题
    • 数据变化时WebsocketDataHandler的executor会做什么样的操作

    欢迎搜索关注本人与朋友共同开发的微信面经小程序【大厂面试助手】和公众号【微瞰技术】,以及总结的分类面试题https://github.com/zhendiao/JavaInterview

    file
    file

  • 相关阅读:
    如何通过关键词匹配统计其出现的频率
    好玩的SQL
    如何用Dummy实例执行数据库的还原和恢复
    如何查找特定目录下最大的文件及文件夹
    《Administrator's Guide》之Managing Memory
    Oracle如何实现从特定组合中随机读取值
    如何用分析函数找出EMP表中每个部门工资最高的员工
    Oracle之DBMS_RANDOM包详解
    RAC碎碎念
    如何利用Direct NFS克隆数据库
  • 原文地址:https://www.cnblogs.com/zhendiao/p/14305957.html
Copyright © 2011-2022 走看看