websocket在分布式场景的应用方案

这篇具有很好参考价值的文章主要介绍了websocket在分布式场景的应用方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

websocket简介

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它可以在客户端和服务器之间建立持久连接,使得服务器可以主动向客户端推送数据,而不需要客户端不断地向服务器发送请求。

WebSocket 协议的优点包括:

  • 实时性:WebSocket 可以实现实时通信,数据传输的延迟非常低。

  • 可靠性:WebSocket 建立的连接非常稳定,不会像 HTTP 连接那样容易断开。

  • 节省带宽:WebSocket 的数据帧头非常小,相比于 HTTP 请求头,可以节省大量的带宽。

  • 跨域支持:WebSocket 可以跨域通信,不受同源策略的限制。

WebSocket 技术的应用场景包括:

  • 实时聊天室:WebSocket 可以实现实时聊天室,用户可以实时收到其他用户的消息。

  • 在线游戏:WebSocket 可以实现实时在线游戏,玩家可以实时收到游戏中的变化。

  • 实时数据展示:WebSocket 可以实现实时数据展示,例如股票行情、天气预报等。

分布式场景无法分享session问题

问题描述

WebSocket在联通用户和服务端的过程,依赖用户的session信息作为通讯的唯一标识,每一次建立连接都会产生唯一的session。WebSocket的session对象没有实现序列化,所以无法通过redis等工具同步到其他节点。

在分布式场景下,A节点存储了用户jack的session,但是底层回调到了B节点上,但是B节点拿不到jack的session对象,无法回推用户结果。

解决方案

应用redis的发布/订阅功能,流程如下:B节点接收到消息后,直接发布一条信息到订阅队列中。A、B节点都会拉到这条消息,每个节点都验证消息体中用户session是否存在本节点,如果存在则使用session中信息触达用户,不存在则不处理。图示如下:

java websocket 分布式,Java,# Java-开发日常,websocket,分布式,网络

Nginx自动切断连接问题

问题描述

用户与服务端建立连接后,前后端通过心跳来确认通讯状态是否健康。但部署到网关代理的环境中,出现了连接在20秒左右被掐断的问题,后定位到是nginx配置反向代理时会有一个proxy_read_timeout项,意思是连接成功后,等候后端服务器响应时间,现在的配置是20秒。

解决方案

1.修改nginx配置,延长断开时间。

2.不走Nginx、或者使用单独的域名文章来源地址https://www.toymoban.com/news/detail-642340.html

到了这里,关于websocket在分布式场景的应用方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 在CSDN学Golang场景化解决方案(EFK分布式日志系统方案)

    在 Golang EFK 分布式日志系统方案中,ElasticSearch 是一个分布式搜索引擎和数据存储库,它可以用于存储和搜索大量的日志数据。以下是 ElasticSearch 分布式集群部署的步骤: 下载 ElasticSearch:从 ElasticSearch 官网上下载最新版本的 ElasticSearch。 解压缩并安装 ElasticSearch:将下载下来

    2024年02月14日
    浏览(15)
  • PHP实践:分布式场景下的Session共享解决方案实现

    PHP实践:分布式场景下的Session共享解决方案实现

    🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:PHP进阶实战教程。 🏆另有专栏PHP入门基础教程,希望各位大佬

    2024年02月13日
    浏览(12)
  • ZooKeeper的应用场景(命名服务、分布式协调通知)

    ZooKeeper的应用场景(命名服务、分布式协调通知)

    命名服务(NameService)也是分布式系统中比较常见的一类场景,在《Java网络高级编程》一书中提到,命名服务是分布式系统最基本的公共服务之一。在分布式系统中,被命名的实体通常可以是集群中的机器、提供的服务地址或远程对象等一这些我们都可以统称它们为名字(Name),

    2024年02月12日
    浏览(45)
  • 除了上述提到的应用场景,分布式系统在云计算中还有如下一些应用场景

    除了上述提到的应用场景,分布式系统在云计算中还有如下一些应用场景

    除了上述提到的应用场景,分布式系统在云计算中还有如下一些应用场景: 大规模视频和图像存储:分布式云存储可以为企业提供大规模视频和图像存储的解决方案,帮助企业存储和管理海量的视频和图像数据,提高数据的可靠性和安全性。 机器学习:在机器学习中,需要

    2024年01月19日
    浏览(15)
  • Kafka 在分布式系统中的 7 大应用场景

    Kafka 是一个开源的分布式流式平台,它可以处理大量的实时数据,并提供高吞吐量,低延迟,高可靠性和高可扩展性。Kafka 的核心组件包括生产者(Producer),消费者(Consumer),主题(Topic),分区(Partition),副本(Replica),日志(Log),偏移量(Offset)和代理(Broker)。

    2024年02月08日
    浏览(12)
  • zookeeper应用场景之分布式的ID生成器

    zookeeper应用场景之分布式的ID生成器

            在分布式系统中, 分布式ID生成器的使用场景非常之多 : 大量的数据记录,需要分布式ID。 大量的系统消息,需要分布式ID。 大量的请求日志,如restful的操作记录,需要唯一标识,以便进行后续的用户行为分析和调用链路分析。 分布式节点的命名服务,往往也

    2024年01月23日
    浏览(21)
  • 湛江阿里云代理商:阿里区块链分布式身份服务解决方案服务场景

    湛江阿里云代理商:阿里区块链分布式身份服务解决方案服务场景

    简介: 飞机@luotuoemo 本文由(阿里云代理商:【金推云】www.jintui.cn )撰写 阿里云是阿里巴巴集团旗下的全球领先的云计算及人工智能技术公司。其中,阿里云区块链分布式身份服务(BlockChain Trusted Identity Service,以下简称BTID)是阿里云自主研发的一款基于区块链技术的全新

    2024年04月17日
    浏览(15)
  • GlusterFS:开源分布式文件系统的深度解析与应用场景实践

    在当今大数据时代背景下,企业对存储系统的容量、性能和可靠性提出了前所未有的挑战。GlusterFS作为一款开源的、高度可扩展的分布式文件系统,以其独特的无中心元数据设计和灵活的卷管理机制,在众多场景中脱颖而出,为解决大规模数据存储难题提供了强有力的支持。

    2024年02月19日
    浏览(14)
  • 领航分布式消息系统:一起探索Apache Kafka的核心术语及其应用场景

    领航分布式消息系统:一起探索Apache Kafka的核心术语及其应用场景

            本文是Kafka系列文章的第一篇,将带你了解Kafka的核心术语及其应用场景,后续会逐步探索其各方面的原理及应用场景。下面先看一张大概得简图,涉及Kafka的功能、原理等等,后续不断深入介绍,欢迎关注。         消息中间件(message queue middleWare, MQ)指利用高

    2024年01月21日
    浏览(17)
  • JAVA微服务场景下分布式日志收集排查问题实战

    JAVA微服务场景下分布式日志收集排查问题实战

    问题产生的根由?不同服务的日志存在哪里?我们怎么去排查线上问题? 问题场景:我们部署的java服务可能有几十个,不同的项目里面他是看不到别的服务的日志,只有服务的返回msg消息,相比传统的单体服务来说,排查问题和解决问题的原因相对比较复杂和麻烦,我们传

    2024年02月02日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包