当前位置: 首页 > wzjs >正文

做旅游的网站那个便宜广东粤网建设有限公司

做旅游的网站那个便宜,广东粤网建设有限公司,建行企业银行官网,廊坊教育云网站建设Hi I’m Shendi 最近在编写SSE接口遇到了缓存问题,导致实时性失效,在这里记录一下。 记一次SSE数据被缓存导致实时性失效问题 问题 环境:SpringBootNginxAnythingLLM SSE接口调用拥有缓存,导致数据被缓存后才返回给前端。 排查…

Hi I’m Shendi

最近在编写SSE接口遇到了缓存问题,导致实时性失效,在这里记录一下。


记一次SSE数据被缓存导致实时性失效问题



问题

环境:SpringBoot+Nginx+AnythingLLM

SSE接口调用拥有缓存,导致数据被缓存后才返回给前端。



排查

对SpringBoot接口的检查:

检查接口代码,直接使用 resp.OutputStream 或者使用 SseEmitter 皆有此问题

检查接口中对AnythingLLM调用的代码,发现使用BufferedReader.readLine,将其直接改为InputStream.read判断\n,效果的确好了一点,但依然有此问题。

编写测试代码,看是否是接口问题:

@Anonymous
@GetMapping(value = "/test", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public void test(HttpServletResponse resp) throws Exception {resp.setContentType("text/event-stream;charset=UTF-8");resp.setCharacterEncoding("UTF-8");// 禁止压缩,防止流式被缓存resp.setHeader("Content-Encoding", "identity");resp.setHeader("Cache-Control", "no-cache");OutputStream output = resp.getOutputStream();for (int i = 0; i < 20; i++) {output.write(("data: " + RespCode.toResp(RespCode.PARAM_NULL) + "\n\n").getBytes());output.flush();Thread.sleep(2000);}
}

测试发现无问题,前端稳定的两秒收到数据(皆使用Nginx反向代理)


对 AnythingLLM的检查:

直接调用接口,发现问题复现,然后猜测是否Nginx的问题,不使用代理访问,一切正常。


解决

最终的问题就是Nginx的问题,Nginx默认会将数据进行缓存,要进行相应配置,并且SSE接口就那么几个,所以可以使用rewrite 对单独的几个接口关闭

location /llm/ {rewrite ^/llm/(.*)$ /api/$1 break;# 原有host 与 ipproxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host;# 支持websocketproxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_pass   http://127.0.0.1:3001;
}
location ~ ^/llm/v1/workspace/[^/]+/thread/[^/]+/stream-chat$ {rewrite ^/llm/(.*)$ /api/$1 break;proxy_pass   http://127.0.0.1:3001;# 关闭缓冲,确保实时转发proxy_buffering off;proxy_cache off;# 设置 HTTP/1.1 以保持长连接proxy_http_version 1.1;proxy_set_header Connection '';# 防止 gzip 压缩,避免 chunked 被打包gzip off;# 增加超时时间,避免 SSE 长连接被断开proxy_read_timeout 3600s;proxy_send_timeout 3600s;# 如果后端是基于 Host 做路由的,保留原 Hostproxy_set_header Host $host;# 转发其他头信息proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}



END


文章转载自:

http://UxgzPN0v.dxhdn.cn
http://VGnemzat.dxhdn.cn
http://HzjOUAJ5.dxhdn.cn
http://xTA50xXe.dxhdn.cn
http://rR0RHmyU.dxhdn.cn
http://qL3EmlUT.dxhdn.cn
http://uug5ym6L.dxhdn.cn
http://Qm7vPU7F.dxhdn.cn
http://uNsupk7E.dxhdn.cn
http://FpR8hMTa.dxhdn.cn
http://7gYyKPgp.dxhdn.cn
http://NP7F9t4h.dxhdn.cn
http://RV9GyeYz.dxhdn.cn
http://8OEh6UON.dxhdn.cn
http://mKPZBV6t.dxhdn.cn
http://mKPWktY6.dxhdn.cn
http://gSBfhQun.dxhdn.cn
http://AxQHCsa2.dxhdn.cn
http://jE1INUjV.dxhdn.cn
http://9H6vPazy.dxhdn.cn
http://KUOV7nJp.dxhdn.cn
http://vBQuCXGJ.dxhdn.cn
http://0tFtVMTV.dxhdn.cn
http://Thd6OBRw.dxhdn.cn
http://hxj5EG0i.dxhdn.cn
http://4juC0aqz.dxhdn.cn
http://Lox5zNmN.dxhdn.cn
http://nQAxTCCG.dxhdn.cn
http://63jM8g9q.dxhdn.cn
http://WCmzZLiJ.dxhdn.cn
http://www.dtcms.com/wzjs/718240.html

相关文章:

  • 东莞网站设计找哪里七牛云存储wordpress
  • 网站制作毕业设计个人网页制作成品源代码
  • 网站如何做中英文效果建立网站的注意事项
  • 制作专业网站怎么样建公司网站
  • 天正电气网站建设搜索引擎关键词优化有哪些技巧
  • 个人政务公开网站建设工作总结网站建设 课题研究的背景
  • 网站底部怎么做同仁县wap网站建设公司
  • 如何访问自己建的网站网站建设网页链接
  • 企业网页设计说明公司网站的seo优化怎么做
  • 北京网站制作出名 乐云践新长尾关键词查询工具
  • 台州黄岩住房和城乡建设网站wordpress salutation
  • 百度网站优点湛江企业建站系统
  • 没有数据怎么做网站wordpress主题Tendor
  • 泉州北京网站建设价格杭州排名优化公司电话
  • 光明楼网站建设wordpress 标签不显示图片
  • 什么叫网站备案珠海自助建站软件
  • 网站开发毕业设计摘要范文黄金网站app免费视频大全
  • 高中作文网站重庆软件开发
  • 丹阳市制作网站什么网站可以发布信息
  • 在成都如何找到做网站的公司网络设计解决:如何将初步规划中的各个子系统从内部
  • 淘客手机网站模板烟台市做网站的价格
  • c 博客网站开发教程个人做网站 需要学什么只是
  • 网站克隆下来了然后再怎么做天津网络广告公司
  • 徐汇网站建设营销云产品
  • 网站关键词百度首页消失网页游戏排行榜大全
  • 手机wap网站建设住房和城乡建设部网站质保金
  • 网站正在建设中色wordpress app登陆
  • 长沙市住房和城乡建设局网站沙河企业做网站
  • 手机看黄山网站怎么样自己建立一个网站
  • 电脑访问手机网站跳转网站怎么做好优化