Jhipster微服务应用程序中如何开发计费系统

时间:2018-10-31 15:23:12

标签: microservices jhipster

我目前正在开发一个基于微服务的应用程序,该应用程序现在包括一个网关,一个uaa,两个微服务。

应用程序使用密码授予来获取访问和刷新令牌,一旦通过身份验证,所有微服务都将被感知。

现在,我想为每个用户添加帐单信息,例如购买某些产品(一个月或一年)后,他/她将被允许访问这两个微服务。

我现在有三个选择:

  1. 将帐单信息存储在uaa mysql表(jhi_user)中,当请求进入以访问这两个服务时,请使用伪装客户端从uaa到微服务获取信息。
  2. 开发另一个计费微服务,使用伪装客户端从微服务获取信息。
  3. 将计费信息复制到两个微服务中的每一个(存储在它们自己的数据库中)。

我想知道哪个更好。另一个问题是,如果从1和2中进行选择,微服务之间会通过宁静的API进行大量通信(检查每个请求的账单信息),这会影响性能吗?

感谢任何想法。

1 个答案:

答案 0 :(得分:0)

在这三个选项中,我倾向于第三个选项。对于选项1和2,优点都包括保证信息是最新和准确的。选项1将降低项目的复杂性,而选项2将增加复杂性,这将使扩展应用程序更加容易。但是在第一个或第二个中,每个呼叫都将等待到假客户端的呼叫,以确保授权,这可能会减慢响应时间。 这就是为什么我认为从长远来看,第三种选择更好。由于响应不会等待伪呼叫,因此响应时间更快。 当然,不能保证授权信息是最新的,但是可以在创建计费数据时和创建计费数据时使用消息传递平台轻松同步授权信息。此外,可以通过维护微服务或连续迭代数据的批处理来提供保证。 但是,如果要求保证信息是最新的,并且对响应速度的要求不是必需的,则绝对要选择选项2。如果保证和速度都是必需的,那么我可能会选择选项1。否则,选择选项3。首选。