技术分析我们在开发过程中会遇到需要即时消息传递的场景。当然实现方式有很多,比如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 实现是由一些专家编写的。
站长声明
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件
举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
相关文章
-
2023年7月31日 行业巨头京东也放不下社区团购。 点击查看上半年中国手机市场成绩单出炉:OV争第一,华为重回前五。 点击查看抖音是汽车内容的全面整合。 下一场比赛是什么?点击查看新东方财报背面:脆弱性与进口经济的博弈。 点击查看抖音。 悄悄成立了一家旅行社。 点击查看
06-18
-
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
-
投资界(ID:pedaily)据4月2日消息,葡萄酒公司奥兰中国已完成超亿元A轮融资。 据悉,本轮由高瓴创投、黑蚂蚁资本联合领投。 据悉,本轮募集资金将主要用于公司产品的营销、客户服务体系的建设、产品线的拓展,以及进一步加大研发投入、加速产品迭代。 奥兰中国拥有包括奥兰
06-17
-
据投资界(ID:pedaily)7月1日消息,福州数字产业基金签约仪式于近日举行。 据悉,该基金规模10亿元(牵头国家中小企业发展基金同步投资),将主要投资与数字经济相关的中小企业。 福州数字产业基金由福州市政府以市场化方式设立。 重点发展电子装备制造、软件和信息服务等数
06-17
-
推惠行于今年11月上线。 是一款专注于陌生人情感互助的AA群体社交应用。 截至目前,途慧行已累计注册用户近百万。
06-17
-
台媒报道,业内人士透露,大陆前三大封装测试代工厂(OSAT)长电科技、通富微电子和华天科技都将受益下半年封装需求强劲,将封装成熟芯片紧急订单报价上调20-30%。 针对此消息,据《科创板日报》报道,华天科技回应称,公司产品较多,是一家全品类的封装测试公司。 确实涨价了
06-08
-
今年是再次拥抱世界的一年。 年轻人不再被消费主义洗脑,他们更加注重物品本身的价值。 他们与世界联系的方式已经改变,成本效益成为他们最关心的问题。 一次随意的旅行,一场精心策划的演出,都是人们抚平心灵皱纹的方式。 这里孕育着财富和商机,但那些不能适应时代潮流的企
06-17
-
据投资界12月29日消息,全品类以旧换新平台有德汇今日宣布完成近百笔融资获得人保财险、人保财险的B+轮融资。 人保远望基金是与启迪科技合作设立的。 据悉,本轮资金将用于拓展线下市场、升级后端渠道。 优德火此前已获得多轮融资: 获得龙腾资本天使轮投资; 再
06-18
-
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
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用