我们正在尝试设计特权用户可以创建业务的用例(特权使用是企业主)。每个企业可以拥有多个用户。为了满足此要求,我们正在考虑创建三个服务UserAPI,BusinessAPI和SubscriptionAPI。 UserAPI负责用户创建,删除,更新和查找同样的业务和订阅api将执行类似的操作。
对于我们想要为业务创建新用户的场景,我们考虑使用SubscriptionAPI
步骤如下:
请求
在SubscriptionAPI中重复UserVO - 这是正确的吗?
另请分享所描述的服务设计观点,可以做些什么改进。
答案 0 :(得分:1)
如果您尝试使用3种不同的微服务,则可以使用Zuul代理。
为您的服务提供 Zuul作为API网关。它可以作为您所有服务的守门人。您可以定义自定义zuul过滤器,如前置,后置等。
我建议根据您的规范使用zuul预过滤器,然后在将请求路由到Subscription服务之前,请求其他两项服务获取所需的输入。
以下是供参考的链接:
https://spring.io/guides/gs/routing-and-filtering/
使用此配置路由请求:
zuul:
prefix: /api/v1
stripPrefix: false
proxy:
stripMapping: false
mapping: /api/v1
addProxyHeaders: true
routes:
Business-API:
path: /business/**
url: http://localhost:8213
stripPrefix: false
user-service:
path: /user/**
url: http://localhost:8212
stripPrefix: false
关于请求有效负载,您可以拥有所需的任何有效负载。请记住,所有服务必须可以独立部署。这意味着如果您要删除您的商家,则需要决定您的订阅操作。层叠可能会让你陷入困境。最好花更多的时间和思考整个领域。如果您的服务对彼此的依赖性太大,那么最好将它们集中为一个域。
我在这里解释了如何定义您的域名:
DB design for microservice architecture