h***o 发帖数: 171 | 1 系统A的数据经常被修改,比如service 1修改了A的数据,但是系统A的consumer servi
ces并不知情,所以需要一个额外的servcie 2来检查系统A的数据是否被修改,如果修改
了,service 2就通知consumer services们。这个service 2怎么做好呢?scheduled?
on-demand? 需要提出一点的就是每检查一次系统A的数据需要花10多个小时。
我知道说的有点笼统,可能会让大家觉得具体问题具体分析。但是如果谁有设计类似系
统的经验,不妨分享一下,谢谢! |
m******r 发帖数: 1033 | 2 建议倒腾倒腾meta data, 大部分系统都会记录'最后修改日期', 最近访问日期等等,
谁访问了,谁修改了等等。 我们当时有个土方法, 重要数据自己抠下来...反正这年
头存贮便宜了 |
i*****9 发帖数: 3157 | 3 能按照修改时间索引和查询就用根据修改时间 pull. 不行就只能是让 service 1 自己
push. 但所有基于 push 的 sync 操作最后都还要一个 基于 pull 操作的流程兜底,
因为push 操作会丢 message...
:系统A的数据经常被修改,比如service 1修改了A的数据,但是系统A的consumer
services并不知情,所以需要一个额外的servcie 2来检查系统A的数据是否被修改,如
果修改
:了,service 2就通知consumer services们。这个service 2怎么做好呢?scheduled
? on-demand? 需要提出一点的就是每检查一次系统A的数据需要花10多个小时。 |
s********k 发帖数: 6180 | 4 service1 produce修改记录到kafka啊,service2 consume
servi
修改
【在 h***o 的大作中提到】 : 系统A的数据经常被修改,比如service 1修改了A的数据,但是系统A的consumer servi : ces并不知情,所以需要一个额外的servcie 2来检查系统A的数据是否被修改,如果修改 : 了,service 2就通知consumer services们。这个service 2怎么做好呢?scheduled? : on-demand? 需要提出一点的就是每检查一次系统A的数据需要花10多个小时。 : 我知道说的有点笼统,可能会让大家觉得具体问题具体分析。但是如果谁有设计类似系 : 统的经验,不妨分享一下,谢谢!
|
m*****n 发帖数: 3575 | 5 如果consumer services是客户端
WebSocket做主动推送。 |
r****t 发帖数: 10904 | 6 要求 service 1 owner 提供 notification 给 service 2 for every modification.
If above is not possible, schedule service 2 to check regularly. On-demand
is hard because you have 10 hours lag.
servi
修改
【在 h***o 的大作中提到】 : 系统A的数据经常被修改,比如service 1修改了A的数据,但是系统A的consumer servi : ces并不知情,所以需要一个额外的servcie 2来检查系统A的数据是否被修改,如果修改 : 了,service 2就通知consumer services们。这个service 2怎么做好呢?scheduled? : on-demand? 需要提出一点的就是每检查一次系统A的数据需要花10多个小时。 : 我知道说的有点笼统,可能会让大家觉得具体问题具体分析。但是如果谁有设计类似系 : 统的经验,不妨分享一下,谢谢!
|
md 发帖数: 38 | 7 可以使用JMS 或类似的技术,SERVICE1 publish topic 如果有更新,所有CONSUMER
SERVICES 订阅这一TOPIC。
这就能实现ONDEMAND的异步NOTIFY |
t**g 发帖数: 2 | 8 就是更新广播。最简单用Zookeeper watcher。Watching process每次更新处理完后,
需要记下当前值。
Kafka也可,Consumers不主动Commit offset。而是每次从上次处理完后的offset开始
接收message。
无论用啥consuming service都是有状态的。
10个小时的processing没办法break down成几个小的任务? |
s********k 发帖数: 6180 | 9 感觉这个需求最好设置好kafka的KV,然后直接开log compaction,保证每次拿到对应K
的V
【在 t**g 的大作中提到】 : 就是更新广播。最简单用Zookeeper watcher。Watching process每次更新处理完后, : 需要记下当前值。 : Kafka也可,Consumers不主动Commit offset。而是每次从上次处理完后的offset开始 : 接收message。 : 无论用啥consuming service都是有状态的。 : 10个小时的processing没办法break down成几个小的任务?
|