【问题标题】:How to develop billing system in jhipster microservice applicationjhipster微服务应用中如何开发计费系统
【发布时间】:2019-04-04 19:47:57
【问题描述】:

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

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

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

我现在有三个选择:

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

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

感谢任何想法。

【问题讨论】:

    标签: microservices jhipster


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-07-30
      • 2019-03-13
      • 1970-01-01
      • 2018-08-06
      • 2017-12-31
      • 2021-08-26
      • 1970-01-01
      • 2017-02-14
      • 1970-01-01
      相关资源
      最近更新 更多