如何考虑微服务?

时间:2018-11-29 17:39:52

标签: google-app-engine google-cloud-platform microservices

我正在学习将整体GAE应用程序转换为微服务架构的过程。

我了解该应用程序分为可以相互通信的服务。 dispatch.yaml文件指定的不同类别的请求由不同的服务处理。

我们如何确定服务内容?考虑一个具有以下功能的在线求职网站:

  • 有两个用户角色:JobSeekerCompany
  • 公司可以发布Job实体
  • 求职者可以创建JobApplication实体(与Job对应)
  • 两个用户角色都必须进行身份验证
  • 公司管理自己的CompanyProfile
  • 求职者管理自己的JobApplications和他们的JobProfiles列表

将我们的应用程序分离为微服务的指导性思维过程是什么?

1 个答案:

答案 0 :(得分:3)

微服务优于整体应用的一些地方是:

  • 当您希望应用程序的不同部分具有不同的发布周期时。
  • 当一个组件被众多不同的上游组件(例如,共享的身份验证系统)使用时。
  • 当您要隔离故障时(例如,如果下游组件发生故障,上游组件可以正常降级。)
  • 要限制数据可用性范围(例如,将加密密钥保持在尽可能小的表面上)
  • 当您希望最小化应用程序的有状态部分时(例如,您可以拥有易于扩展的无状态前端,以及可以通过分片进行扩展的有状态后端)。

换句话说:拆分成微服务,对您实际上有用。仅仅为了这个目的而拆分应用程序将使您的生活变得比必要的更加复杂。