数据推送解决方案调研
需求
文档编辑类型的需求,左侧是菜单栏,右侧是内容块,现在的需求时,如果多人同时编辑这个方案,当添加章节/调整章节顺序/删除章节时,其他用户能够及时感知到。
解决方案调研
前端轮询
最简单的方案,前端定时调用后端接口,使用短轮询或者长轮询都可以做到。麻烦的点可能在于,后端如何判定两次轮询之间数据的变化是否应该推给前端。
websocket
websocket可以维持前后端的长连接,实时同步各章节的更新情况,不需要记录历史情况,实时同步更新信号就可以。不过需要处理的连接逻辑可能会复杂一些。
EventSource
EventSource又称SSE(Server-Sent-Events),一种服务器端到客户端(浏览器)的单项消息推送方案,它和轮询一样,也是基于http请求来完成的。但是和轮询不一样的是它是服务器与客户端建立连接后,服务器主动的向客户端进行数据推送。
EventSource只能实现服务端向客户端推送消息。
SSE 要求服务器与浏览器保持连接。对于不同的服务器软件来说,所消耗的资源是不一样的。Apache 服务器,每个连接就是一个线程,如果要维持大量连接,势必要消耗大量资源。Node 则是所有连接都使用同一个线程,因此消耗的资源会小得多,但是这要求每个连接不能包含很耗时的操作,比如磁盘的 IO 读写。
问题
我们的诉求其实是能够让客户端接收到数据变更的消息,感觉EventSource可以考虑一下。
但是对于java开发的应用来说,EventSource的资源消耗感觉和websocket不相上下?
如果读者有啥更好的解决方案,可以评论告诉我。
相关文章:
数据推送解决方案调研
需求 文档编辑类型的需求,左侧是菜单栏,右侧是内容块,现在的需求时,如果多人同时编辑这个方案,当添加章节/调整章节顺序/删除章节时,其他用户能够及时感知到。 解决方案调研 前端轮询 最简单的方案&…...
二、NLP中的序列标注(分词、主体识别)
一般来说,一个序列指的是一个句子,而一个元素指的是句子中的一个词。在序列标注中,我们想对一个序列的每一个元素标注一个分类标签。比如信息提取问题可以认为是一个序列标注问题,如提取出会议时间、地点等。 常见的应用场景&…...
seq2seq翻译实战-Pytorch复现
🍨 本文为[🔗365天深度学习训练营学习记录博客 🍦 参考文章:365天深度学习训练营 🍖 原作者:[K同学啊 | 接辅导、项目定制]\n🚀 文章来源:[K同学的学习圈子](https://www.yuque.com/…...
软考69-上午题-【面向对象技术2-UML】-关系
一、关系 UML中有4种关系: 依赖;关联;泛化;实现。 1-1、依赖 行为(参数),参数就是被依赖的事物,即:独立事物。 当独立事物发生变化时,依赖事务行为的语义也…...
智慧文旅|AI数字人导览:让旅游体验不再局限于传统
AI数字人导览作为一种创新的展示方式,已经逐渐成为了VR全景领域的一大亮点,不仅可以很好的嵌入在VR全景中,更是能够随时随地为观众提供一种声情并茂的讲解介绍,结合VR场景的沉浸式体验,让观众仿佛置身于真实场景之中&a…...
spring boot 集成 mysql ,mybatisplus多数据源
1、需要的依赖,版本自行控制 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId> </dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java<…...
CLion中常用快捷键(仍适用其他编译软件)
基本编辑操作: 复制:Ctrl C粘贴:Ctrl V剪切:Ctrl X撤销:Ctrl Z重做:Ctrl Shift Z (不小心撤销了 需要返回之前的操作 相当于下一步)全选:Ctrl A 导航࿱…...
考研复习c语言初阶(1)
本人准备考研,现在开始每天更新408的内容,目标这个月结束C语言和数据结构,每天更新~ 一.再次认识c语言 C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生…...
HTML—常用标签
常用标签: 标题标签:<h1></h1>......<h6></h6>段落标签:<p></p>换行标签:<br/>列表:无序列表<ul><li></li></ul> 有序列表<ol>&…...
Midjourney绘图欣赏系列(七)
Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不…...
深度学习应该如何入门?
深度学习是一门令人着迷的领域,但初学者可能会感到有些困惑。让我们从头开始,用通俗易懂的语言来探讨深度学习的基础知识。 1. 基础知识 深度学习需要一些数学和编程基础。首先,我们要掌握一些数学知识,如线性代数、微积分和概率…...
FreeRtos Queue(五)
本篇主要分析在中断中向队列里发消息xQueueGenericSendFromISR和在中断里从队列中读取消息xQueueReceiveFromISR。 前言: xQueueGenericSendFromISR 和 xQueueReceiveFromISR都是在中断里调用的而不是任务里调用的,所以队列满了或者是队列为空的时候自然就没有把当…...
解决虚拟机静态网址设置后还是变动的的问题
源头就是我的虚拟机静态网址设置好了以后但是网址还是会变动 这是我虚拟机的配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 这是出现的问题 进入这里 cd /etc/sysconfig/network-scripts/ 然后我去把多余的ens33的文件都删了 然后还不行 后来按照这个图片进行了下 然后…...
【教程】Github环境配置新手指南(超详细)
写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 文章目录 一、Github初始设置(一)登入Github(二)新建仓库 二、本地Git配置&am…...
突然发现一个很炸裂的平台!
平时小孟会开发很多的项目,很多项目不仅开发的功能比较齐全,而且效果比较炸裂。 今天给大家介绍一个我常用的平台,因含低代码平台,开发相当的快。 1,什么是低代码 低代码包括两种,一种低代码,…...
安卓开发面试题
安卓开发面试题 解释一下 Android 中的四大组件。 答:Android 中的四大组件是 Activity、Service、BroadcastReceiver 和 ContentProvider。其中,Activity 负责界面展示和与用户交互;Service 负责后台服务处理;BroadcastReceiver …...
es6面试题
ES6面试题 var、let、const区别 共同点:都是可以声明变量 区别: 1、var具有变量提升机制,let和const没有 2、var 声明的变量是函数作用域或全局作用域,而 const 和 let 声明的变量是块级作用域。 3、var可以多次声明同一个变量&a…...
Kafka MQ 生产者和消费者
Kafka MQ 生产者和消费者 Kafka 的客户端就是 Kafka 系统的用户,它们被分为两种基本类型:生产者和消费者。除 此之外,还有其他高级客户端 API——用于数据集成的 Kafka Connect API 和用于流式处理 的 Kafka Streams。这些高级客户端 API 使用生产者和消…...
tomcat优化与部署(三)------nignx优化与nginx +tomcat 部署
在目前流行的互联网架构中,Tomcat在目前的网络编程中是举足轻重的,由于Tomcat的运行依赖于JVM,从虚拟机的角度把Tomcat的调整分为外部环境调优 JVM 和 Tomcat 自身调优两部分 Tomcat 是一个流行的开源 Java 服务器,用于托管 Java …...
一个用libcurl多线程下载断言错误问题的排查
某数据下载程序,相同版本的代码,在64位系统中运行正常,但在32位系统中概率性出现断言错误。一旦出现,程序无法正常继续,即使重启亦不行。从年前会上领导提出要追到根,跟到底,到年后的今天&#…...
抖音批量下载终极指南:5分钟掌握高效视频管理技巧
抖音批量下载终极指南:5分钟掌握高效视频管理技巧 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...
上海 GEO 优化机构实力解析:十大标杆服务商核心优势深度呈现
随着生成式 AI 全面打通上海用户信息查询、消费下单全决策链条,超过六成上海本地企业都陷入共性增长难题:自身产品与服务实力出众,却在 AI 智能问答里曝光不足、信息偏差,品牌用户心智持续被同城竞品挤压。不少企业入局上海 GEO 赛…...
她雇了两个人类,给他们发工资,然后决定不告诉他们自己是AI
全球第一个被 AI 雇佣的全职员工,签的是 Andon Market。 Andon Market 开在旧金山 Cow Hollow 区,Union 街 2102 号。店面是从今年开始的,签了三年租约。但它不是普通的店——它没有人类店长,没有区域经理,没有总部派…...
如何用Lenovo Legion Toolkit完全掌控你的联想拯救者笔记本:开源硬件管理终极指南
如何用Lenovo Legion Toolkit完全掌控你的联想拯救者笔记本:开源硬件管理终极指南 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLe…...
Neeshck-Z-lmage_LYX_v2企业级:支持审计日志与生成记录全链路追踪
Neeshck-Z-lmage_LYX_v2企业级:支持审计日志与生成记录全链路追踪 1. 项目简介:一个更懂你的本地绘画助手 如果你尝试过在本地运行一些AI绘画模型,可能会遇到几个头疼的问题:模型太大,显卡内存不够用;想换…...
GLM-4.1V-9B-Base入门指南:中文视觉问答Prompt工程最佳实践
GLM-4.1V-9B-Base入门指南:中文视觉问答Prompt工程最佳实践 1. 认识GLM-4.1V-9B-Base GLM-4.1V-9B-Base是智谱开源的一款专注于视觉多模态理解的AI模型。它能够像人类一样"看懂"图片内容,并回答关于图片的各种问题。不同于普通的聊天机器人&…...
Pixel Couplet Gen 实战:为“黑马点评”APP添加春节AI春联分享功能
Pixel Couplet Gen 实战:为"黑马点评"APP添加春节AI春联分享功能 1. 场景需求与痛点分析 春节将至,本地生活类APP"黑马点评"希望增加节日特色功能来提升用户活跃度。传统做法是设计几套固定模板的春联供用户选择,但这种…...
从PointNet到PointNeXt:为什么‘共享’MLP是点云模型设计的基石?
从PointNet到PointNeXt:为什么‘共享’MLP是点云模型设计的基石? 点云数据处理一直是计算机视觉和三维感知领域的核心挑战之一。不同于规整的二维图像像素排列,点云数据具有无序性、非均匀性和稀疏性三大特征,这使得传统卷积神经网…...
Python 3.12 Special Attribute - 28 - __match_args__
Python 3.12 Special Attribute - __match_args____match_args__ 是 Python 3.10 引入的一个 类属性 ,用于支持 结构模式匹配(Structural Pattern Matching) 中的 类模式 。它定义了类实例在 match 语句中按 位置 解构时,属性与…...
终极Buefy缓存策略指南:提升Vue.js应用性能的完整方案
终极Buefy缓存策略指南:提升Vue.js应用性能的完整方案 【免费下载链接】buefy Lightweight UI components for Vue.js based on Bulma 项目地址: https://gitcode.com/gh_mirrors/bu/buefy Buefy作为基于Bulma的轻量级Vue.js UI组件库,以其简洁的…...
