请教微服务与分布式问题
现在用的是这两个go-micro consul
有一个加减用户积分的微服务 <用户微服务> 加减积分在服务中直接进行
很多服务现在 依赖 用户微服务 ,现在怎么更新,重启而不影响其他服务呢
如果启动两个用户实例, 两个实例之间的用户积分怎么同步呢
请问,你们都是怎么处理的呢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
redis,数据库总没有实例内部操作快
建议使用Redis做分布式锁,保证数据同步,且最好有冻结和计算这两个步骤
推荐个参考内容:微服务架构的分布式事务解决方案
这种是典型的分布式事务问题,一般设计的时候尽量避免,使用数据库的本地事务保证。另外两个实例可以一个一个的重启,保证流量有一个实例承载,通过注册发现服务或nginx剔除实例。建议账户设计冻结、结算两个步骤。通过最终一致性方案解决(通过MQ发送结算消息,再更新数据状态和扣减积分),感觉这个服务叫“账户服务”更加贴切。:)
Redis 缓存
两个用户实例共用的数据库不需要同步呀。