微服务失败场景有知道的吗?
我正在研究微服务架构。我的一个服务暴露在源系统中,用来发布数据。这个微服务将数据发布到redis。我正在使用redis pubsub。这是由几个微服务进一步消费。
现在如果另一个微服务宕机了,无法处理redis pubsub的数据,那么当微服务出现时,我就必须用发布的数据重新尝试。源端无法再次推送数据。由于源头无法重新推送数据,人工干预也不可能,所以我想到了3个办法。
- 另外使用redis数据进行存储和检索。
- 使用数据库进行存储再发布。我有很多源和目标微服务都使用redis pubsub。现在,如果我使用这种方法,每次我都要先把请求插入DB中,然后再看它的响应状态。现在我不得不使用共享数据库,这种方法本身就增加了一些异常处理的情况,对我来说并不是很有效。
- 如果redis pubsub的话,就用kafka来代替。由于流量不大,所以我用的是Redis pubsub,不可行改。
在上述两种情况下,我都必须使用调度器,而且我有一个持续时间,在此之前,我必须重试,否则后续的请求将失败。有没有其他方法来处理上述情况。
spring-boot
redis
java-8
赞
收藏 0
回答 1
待解决
相关问题
mqtt服务器通信有知道的吗?
2479浏览 • 1回复 待解决
关于服务卡的界面开发问题有知道的吗?
2595浏览 • 1回复 待解决
mysql 索引问题有知道的吗?
2580浏览 • 1回复 待解决
依赖包冲突有知道的吗?
2470浏览 • 1回复 待解决
WebView层级问题有知道的吗?
5335浏览 • 1回复 待解决
AES 加密问题,有知道的吗?
159浏览 • 1回复 待解决
微服务下的前后台用户是否分开?
2742浏览 • 1回复 待解决
obproxy路由问题有知道的吗?
4589浏览 • 2回复 待解决
api网关推荐有知道的吗?
2038浏览 • 1回复 待解决
如何安装OceanBase有知道的吗?
3070浏览 • 1回复 待解决
mqtt协议的使用有知道的吗?
2579浏览 • 1回复 待解决
SQL解析的问题有知道的吗?
3092浏览 • 1回复 待解决
ohos:remote的问题有知道的吗?
4190浏览 • 1回复 待解决
请问imanaer的问题有知道的吗?
2807浏览 • 0回复 待解决
mysql共享锁问题有知道的吗?
2285浏览 • 1回复 待解决
ets组件定位问题有知道的吗?
2994浏览 • 1回复 待解决
centos 6 安装 postgresql有知道的吗?
2248浏览 • 1回复 待解决
鸿蒙怎么接收广播有知道的吗?
11367浏览 • 1回复 待解决
开发调试问题有知道的吗?
2089浏览 • 1回复 待解决
电话拦截规则有知道的吗?
3000浏览 • 1回复 待解决
如何删除样机管理有知道的吗?
2356浏览 • 1回复 待解决
单向绑定问题,有知道方法的吗?
751浏览 • 1回复 待解决
什么是PolarDB实例有知道的吗?
3814浏览 • 1回复 待解决
如何使用字体有知道的吗?
2210浏览 • 1回复 待解决
关于redis 集群问题有知道的吗?
2131浏览 • 1回复 待解决
一开始,正如你所提到的,我们确实似乎只有三种可能
这种情况下,你想在推送后和处理后得到服务的握手。为了达到同样的目的,使用中间件排队系统将是一个正确的选择。
虽然完成起来比较复杂,但你可以做的是使用Kafka来进行流式处理。正确配置生产者和消费者组可以帮助你顺利完成工作。
考虑到你 "这个数据是要处理的,而且要持久化 "的情况,使用DB来存储就显得矫枉过正了。
BUT,或者,将数据存储到Redis,并在cron-jobscheduled作业中读取数据,会让你的工作变得更简单。一旦作业运行成功,你可以从缓存中删除数据,从而节省Redis内存。
如果你能在架构和实现上进一步发表更多的意见,我可以继续更新我的答案。