我目前正在构建一个基于微服务的应用程序,这个应用程序是用平均堆栈开发的,我遇到了几种需要在有界上下文之间共享模型的情况。微服务:在有界的上下文之间共享模型
作为一个例子,我有一个用户服务来处理注册过程以及登录(生成jwt),注销等。我还有一个文件服务,用于处理用户发生的配置文件图片和其他图像的上传上传。另外,我有一个跟踪会员之间关系的朋友服务。
目前,我将用户的guid从用户服务使用的用户表以及第一个,中间和最后一个名称字段添加到File表和Friend表中。通过这种方式,无论何时在其他服务(朋友和文件)中需要这些字段时,都可以查询这些字段,而无需在每次查询时都进行任何休息调用以获取信息。
这里是警告:
缺点似乎是,我必须这样做,我选择了与塞涅卡RabbitMQ的,通知文件和朋友表只要用户更新从用户表的信息。
1)我应该担心服务变得过于健谈吗?
2)这是否会导致任何性能问题,如果很多更新发生一个多小时,假设? 3)在试图隔离边界时,我只是没有看到另一种解决方法。什么是解决这个问题的建议方法,我在正确的轨道上?
*我应该担心服务过于唠叨?* - 不,服务应该发布所有相关的状态更改。 *如果更新发生在一个小时以上,会导致任何性能问题,比如说?* - 消息队列的设计基本上是为了应对大量数据。 *解决此问题的建议方法是什么...? - 我的建议是不要再担心了。你目前的做法是最佳的。 –
因此,保存文件和朋友的每条记录的First,Middle,Last name,user guid(fk)字段或创建一个单独的用户表来存储f,m,l,guid字段和只需将guid复制到Friend和File表。看起来,如果需要通过传入队列消息更新f,m,l字段,这可能会更有效率? – user1790300
那么,为File和Friends的每个记录保存First,Middle,Last name,user guid(fk)字段还是创建一个单独的用户表将存储f,m,l,guid字段和只需将guid复制到Friend和File表。看起来这样可以更有效地更新f,m,l字段需要从传入的队列消息中创建,因为我只会更新一个记录而不是几个? – user1790300