浅谈分布式环境下的WebSocket消息共享问题

发布于:2024-10-24 编辑:匿名 来源:网络

技术分析我们在开发过程中会遇到需要即时消息传递的场景。当然实现方式有很多,比如Socket、MQTT、Netty...等等。

使用哪一种取决于业务需求,你必须选择一种合理的方式来实现。今天简单讲的场景是分布式环境下WebSocket的消息共享问题。

在分布式环境中,业务方往往需要解决数据同步、共享等问题。这时候,一个场景就出现了。

后端有分布式服务。我需要这两个服务来接收 WebSocket 消息。

如何实现这一目标?也就是说,服务器项目中有多个负载均衡实例,并且这些实例都在不同的实例上。这样,当一个请求加载到A服务器实例时,socket会话在A服务器线程上,第二个请求加载到另一个服务器实例。

服务器B的一个实例。此时,服务器B还没有服务器A的Session(即Socket的会话消息)。

思考解决方案思路1(失败)我们首先思考一下这个问题如何解决?实现同步,根据上面的需求,我们可以直接定位到Socket Session无法共享的问题。只要能共享session对象,就可以解决目前的问题。

是的,肖简也是这么认为的,但实际上是错误的。请看下文。

首先我们认为在分布式情况下,我们的分布式锁、分布式状态信息都可以通过Redis来共享,那么我们是否可以直接通过Redis来共享Socket Session呢?想法确实是正确的,但是使用Redis共享对象是有条件的。您必须先实现 Serialized 接口,然后才能对它们进行序列化。

当我们查看源码时,我们会发现Socket Session无法序列化,那么自然就无法使用Redis来实现Session对象的共享。为什么HttpSession可以使用Redis共享?代码语言: javascript copy/** * @author JanYork * @date /3/14 11:36 */org.apache.catalina.session.StandardManagerorg.apache.catalina.session.PersistentManager WEB中的HttpSession主要是通过上面的两个管理器实现序列化。

Tomcat 默认使用 StandardManager。当Web应用程序关闭时,它会将所有HttpSession对象持久化在内存中并将它们保存到文件系统中。

默认存储文件为:/work/Catalina/<主机名>/<应用程序名称>/sessions.serPercientManager比StandardManager更灵活,只要有设备提供org.apache.catalina.Store的实现即可该接口的驱动类PersistentManager可以将HttpSession对象保存到设备中。因此,spring-session-redis通过将session序列化到redis中,并使用过滤器加装饰器的模式来解决分布式场景下的httpsession共享问题,从而解决了分布式场景下的session共享问题。

注:本段引用自程序员DD的文章。想法2:既然对象不能共享,那么我们可以共享消息。

我们的目的是让其他实例能够接收Socket消息。然后我们就有了一个1对n的消息模型。

一对多消息很简单。有哪些方法?首先我们立刻就会想到MQ,即消息队列中间件。

其次,我们还可以使用Redis的发布订阅功能。 MQ使用MQ来实现一对多消息。

我相信不需要我多说。 MQ天然的广播、发布订阅、点对点、路由消息模式可以轻松解决这个问题。

RedisRedis 实现是由一些专家编写的。

浅谈分布式环境下的WebSocket消息共享问题

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 【24小时创业】2023年7月31日

    【24小时创业】2023年7月31日

    2023年7月31日 行业巨头京东也放不下社区团购。 点击查看上半年中国手机市场成绩单出炉:OV争第一,华为重回前五。 点击查看抖音是汽车内容的全面整合。 下一场比赛是什么?点击查看新东方财报背面:脆弱性与进口经济的博弈。 点击查看抖音。 悄悄成立了一家旅行社。 点击查看

    06-18

  • 行业领先的贱金属技术增强了国防和航空航天陶瓷电容器产品组合 _0

    行业领先的贱金属技术增强了国防和航空航天陶瓷电容器产品组合 _0

    KEMET Electronics 获得美国国防后勤局 MIL-PRF-5“M”和“T”级批准行业领先的贱金属技术增强了国防 KEMET,全球领先的电子元件和航空航天陶瓷电容器组合供应商宣布,美国国防后勤局 (DLA) 已接受 KEMET C0G 和 BP 电介质的 MIL-PRF-5“M” 和“T” 级标准认证,使其成为第

    06-06

  • “云创栓”完成数百万天使轮融资,启富资本出手

    “云创栓”完成数百万天使轮融资,启富资本出手

    据投资界(ID:pedaily)7月17日消息,36氪广东获悉,深圳市云创栓科技有限公司(下)(简称“云创栓”)完成数百万元天使轮融资,投资方为启富资本。 本轮融资将主要用于技术创新和研发。 “云创数据安全”成立于今年9月。 其主要业务是为企业提供数据安全产品和数据治理服务

    06-18

  • 葡萄酒公司奥兰中国获超亿元A轮融资

    葡萄酒公司奥兰中国获超亿元A轮融资

    投资界(ID:pedaily)据4月2日消息,葡萄酒公司奥兰中国已完成超亿元A轮融资。 据悉,本轮由高瓴创投、黑蚂蚁资本联合领投。 据悉,本轮募集资金将主要用于公司产品的营销、客户服务体系的建设、产品线的拓展,以及进一步加大研发投入、加速产品迭代。 奥兰中国拥有包括奥兰

    06-17

  • 新闻 -亿达资本设立10亿元福州数字产业基金,沿海布局不断深化,

    新闻 -亿达资本设立10亿元福州数字产业基金,沿海布局不断深化,

    据投资界(ID:pedaily)7月1日消息,福州数字产业基金签约仪式于近日举行。 据悉,该基金规模10亿元(牵头国家中小企业发展基金同步投资),将主要投资与数字经济相关的中小企业。 福州数字产业基金由福州市政府以市场化方式设立。 重点发展电子装备制造、软件和信息服务等数

    06-17

  • “推惠行”完成百万级天使轮融资,由万物资本投资

    “推惠行”完成百万级天使轮融资,由万物资本投资

    推惠行于今年11月上线。 是一款专注于陌生人情感互助的AA群体社交应用。 截至目前,途慧行已累计注册用户近百万。

    06-17

  • 内测订单涨价?华天科技:将根据订单情况进行结构调整

    内测订单涨价?华天科技:将根据订单情况进行结构调整

    台媒报道,业内人士透露,大陆前三大封装测试代工厂(OSAT)长电科技、通富微电子和华天科技都将受益下半年封装需求强劲,将封装成熟芯片紧急订单报价上调20-30%。 针对此消息,据《科创板日报》报道,华天科技回应称,公司产品较多,是一家全品类的封装测试公司。 确实涨价了

    06-08

  • 告别百万年薪,逃离大工厂,以不同的方式生存

    告别百万年薪,逃离大工厂,以不同的方式生存

    今年是再次拥抱世界的一年。 年轻人不再被消费主义洗脑,他们更加注重物品本身的价值。 他们与世界联系的方式已经改变,成本效益成为他们最关心的问题。 一次随意的旅行,一场精心策划的演出,都是人们抚平心灵皱纹的方式。 这里孕育着财富和商机,但那些不能适应时代潮流的企

    06-17

  • 以旧换新平台有德汇获人保远望基金近亿元B+轮融资

    以旧换新平台有德汇获人保远望基金近亿元B+轮融资

    据投资界12月29日消息,全品类以旧换新平台有德汇今日宣布完成近百笔融资获得人保财险、人保财险的B+轮融资。 人保远望基金是与启迪科技合作设立的。 据悉,本轮资金将用于拓展线下市场、升级后端渠道。   优德火此前已获得多轮融资:  获得龙腾资本天使轮投资;   再

    06-18

  • 获得阿里巴巴近2亿元投资的启学将发布首款原生AI学习机

    获得阿里巴巴近2亿元投资的启学将发布首款原生AI学习机

    Bong系列,由浙江启学公司(以下简称“中国”)研发的首款原生AI学习机),即将上线,六月份正式发布。 Accuracy已获得阿里巴巴近2亿元投资,将用于产品研发和推广。 AI垂直应用领域商业化的“首战”从教育行业打响。 今年是中国巨大的资金和技术资源投入大型人工智能模型的一

    06-18

  • 天立教育获新东方战略投资,打造完整生态

    天立教育获新东方战略投资,打造完整生态

    据投资界1月23日消息,天立教育近日宣布获得新东方教育科技集团战略投资,并签署战略合作框架协议与新东方。 天立教育是K12教育助教资源提供商,以提供教育内容为主要方向,以服务K12教育为核心,以构建教育行业完整生态圈为理念。 借助天立文化教育科技集团在教育出版、教育

    06-18

  • 自出口限制以来,韩国对日本的依赖度大幅增加

    自出口限制以来,韩国对日本的依赖度大幅增加

    据7月份韩国从日本进口半导体设备和电子集成电路制造机械17亿??美元,同比增长77.2%;处理器和控制器、光敏半导体器件进口分别增长8.6%和3.7%。 此次投资的增加与以三星、LG为代表的韩国电子行业巨头密切相关。 以三星为例,今年它大力投资为英伟达开发的8纳米工艺以及在平泽

    06-06