首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使异步消息在同步环境中快速可靠?

如何使异步消息在同步环境中快速可靠?
EN

Stack Overflow用户
提问于 2021-10-01 05:16:26
回答 1查看 35关注 0票数 0

我有一个后端API应用程序,它完成它的工作并生成一些偶数数据,这些数据可以异步卸载。它主要通过RESTful接口发送到服务,比如SQS、Elasticsearch,我们自己的服务(也是异步的,但在HTTP后面)。App是PHP,所以作业不能在另一个线程中卸载--整个进程在响应后就会终止,客户端必须在数据被发送到远程服务时等待。

问题是,在此设置中,数据传输至少一次是不可靠和缓慢的。例如,SQS通常以错误响应,它需要在请求生存期内进行重试。最重要的是,它比它可能的速度慢,有时没有足够的重试来成功(一些数据丢失)。

我在考虑一个服务代理:一个简单的守护进程,它和应用程序一起被放入了docker容器中,因此运行在同一台主机上。这个本地守护进程将以某种方式接受来自应用程序的有效负载,然后进行通信和重试。我知道有些软件是这样工作的,但是是否已经存在一些更普遍的东西,比如专门的代理?还是有什么技术来处理这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-10-20 08:58:32

如果您的API有一个数据库,那么请查看发件箱模式。即使该模式的主要目的是确保分布式系统中的数据一致性,它也允许您卸载发送给其他工作人员的消息。在这段视频中,Udi Dahan很好地解释了它的工作原理。我不擅长PHP,所以不知道PHP解决方案的存在,但值得在这个方向上进行检查。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69400759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档