分享两个通过分布式锁实现 SSE 或长轮询推送的例子
[反向轮询 RPC 示例](https://github.com/snower/jaslock-spring/tree/main/examples/polling-request)
实现的反向轮询 RPC 示例工程。解决一个常见的网络打通场景:云上服务需要调用部署在医院内网/受防火墙保护环境中的系统,但内网系统无法被云上直接访问。本示例让内网系统主动长轮询云上接口拉取任务、处理后再回写结果,云上调用方则同步等待结果。
[发布/订阅消息推送示例](https://github.com/snower/jaslock-spring/tree/main/examples/pubsub)
实现的发布/订阅(pubsub)消息推送示例工程。用分布式锁的事件通知能力构建长轮询与 SSE 实时推送,无需独立的 WebSocket / Push 服务组件,常见用途可以在 AI workflow 中工作流执行和 SSE 实时状态推送解耦,支持多订阅者。
方案有什么优势的话,应该是:
- 完全满足标准 web 项目无状态要求
- 完全满足标准 web 项目可重入要求
而且在 Spring Boot 项目中等待期间全部异步,不占用线程,逻辑也不复杂,性能和延时还可以,添加到现有项目中基本不会有副作用。
是否是一个好方案,大家见仁见智哈。
---
原文链接:[点击查看](https://www.v2ex.com/t/1228733)
实现的反向轮询 RPC 示例工程。解决一个常见的网络打通场景:云上服务需要调用部署在医院内网/受防火墙保护环境中的系统,但内网系统无法被云上直接访问。本示例让内网系统主动长轮询云上接口拉取任务、处理后再回写结果,云上调用方则同步等待结果。
[发布/订阅消息推送示例](https://github.com/snower/jaslock-spring/tree/main/examples/pubsub)
实现的发布/订阅(pubsub)消息推送示例工程。用分布式锁的事件通知能力构建长轮询与 SSE 实时推送,无需独立的 WebSocket / Push 服务组件,常见用途可以在 AI workflow 中工作流执行和 SSE 实时状态推送解耦,支持多订阅者。
方案有什么优势的话,应该是:
- 完全满足标准 web 项目无状态要求
- 完全满足标准 web 项目可重入要求
而且在 Spring Boot 项目中等待期间全部异步,不占用线程,逻辑也不复杂,性能和延时还可以,添加到现有项目中基本不会有副作用。
是否是一个好方案,大家见仁见智哈。
---
原文链接:[点击查看](https://www.v2ex.com/t/1228733)
· 0 个赞