我正在实践建立一个使用微服务的系统,并通过设计每个微服务尽可能少耦合和自治来构建这个系统。我正在设置的应用程序必须使管理视频租赁系统成为可能。为此,我有以下微服务,每个服务都有自己有限的上下文:
unsubscribe.
我为自己制定的业务规则之一是:
的问题。
这个规则使用了几个微服务,所以我尝试通过用户微服务来管理它:我创建了一个每天在后台运行的服务:
你觉得这个设计怎么样?对我来说,它允许在每个微型服务中保持自主权。
我认为另一种选择是尽量保持用户服务水平:最后一次完成租赁的日期、最后一次正在进行的租金的日期以及最后一次未付债务的日期。这将使我能够管理我在用户微服务中的所有删除,并且只发布两个事件:
由于inactivity
之后的一段时间后被删除
另一方面,它们必须发出事件:
f 247
发布于 2020-12-14 03:51:38
我觉得你走在正确的轨道上。删除不活动/无效的用户可被视为特定服务的责任,该服务充当协调器。
一种可能的方法也可以是将用户id和他们的最后一个操作日期一起存储在一个按日期排序的最小堆中。每次在整个系统上都有一个事件(如。此微服务将更新本地数据并刷新堆状态。此时,您的“清除”任务应该从顶部遍历堆,提取节点(要删除的->用户ids ),直到到达有效日期为止。
在本例中,我只使用日期,但我想您也可以扩展到其他自定义规则。
https://stackoverflow.com/questions/65274956
复制相似问题