Java 微服务体系结构

Java 微服务体系结构,java,scala,lambda,soa,microservices,Java,Scala,Lambda,Soa,Microservices,我有一些与微服务架构相关的问题 微服务的粒度应该是多少?我们在关系数据库和NoSQL数据库中都有表。每个桌子应该有一个服务吗?我认为每个数据源的服务更有意义,但接下来就是SOA 如果我们创建了大量的微服务,我们是否也应该提供客户端库来促进服务的使用?或者让调用方使用任何REST库进行调用。无论如何,这听起来需要做很多工作 对于每个微服务,三个是一个GIT回购吗 在同一个EC2实例中部署多个微服务可以吗 我可以想象在AWS Lambda上部署微服务将是完美的,但是整个应用程序将只是一堆Lambd

我有一些与微服务架构相关的问题

  • 微服务的粒度应该是多少?我们在关系数据库和NoSQL数据库中都有表。每个桌子应该有一个服务吗?我认为每个数据源的服务更有意义,但接下来就是SOA

  • 如果我们创建了大量的微服务,我们是否也应该提供客户端库来促进服务的使用?或者让调用方使用任何REST库进行调用。无论如何,这听起来需要做很多工作

  • 对于每个微服务,三个是一个GIT回购吗

  • 在同一个EC2实例中部署多个微服务可以吗

  • 我可以想象在AWS Lambda上部署微服务将是完美的,但是整个应用程序将只是一堆Lambda函数。更不用说与AWS Lambdas的紧密耦合了。有人在Lambdas上实现了微服务吗?我非常感谢您对此的任何反馈


微服务的实现通常因系统或开发人员而异。然而,微服务的一些基本特征是

  • 小重点(做一件事,把那件事做好)
  • 松耦合(彼此独立运行)
  • 语言中立
  • 有界上下文(不需要知道其他微服务的实现)
我们可以利用AWS lambda实现上述特性。但是,维护和管理Lambda端点可能很棘手,而且常常是一件麻烦事。您可以利用轻松管理lambda函数。您可以用简单的YAML格式定义服务配置,框架将创建一个CloudFromation堆栈并部署它

使用无服务器框架,您可以定义多个服务。每个服务都可以是小焦点、松散耦合、语言中立和有限的上下文。例如:用户积垢、电子邮件通知、计划作业等。。。当您使用无服务器框架部署服务时,它会创建与相应lambda链接的不同API网关。您可以使用API网关端点与每个服务交互


正如您所提到的,lambda可以与其他AWS服务链接。但我认为,只要它不依赖于其他微服务,并且对诸如Dynamodb表或S3 bucket之类的服务具有明确定义的集成点,我们就可以利用Lambda来开发微服务

微服务的实现通常因系统或开发人员而异。然而,微服务的一些基本特征是

  • 小重点(做一件事,把那件事做好)
  • 松耦合(彼此独立运行)
  • 语言中立
  • 有界上下文(不需要知道其他微服务的实现)
我们可以利用AWS lambda实现上述特性。但是,维护和管理Lambda端点可能很棘手,而且常常是一件麻烦事。您可以利用轻松管理lambda函数。您可以用简单的YAML格式定义服务配置,框架将创建一个CloudFromation堆栈并部署它

使用无服务器框架,您可以定义多个服务。每个服务都可以是小焦点、松散耦合、语言中立和有限的上下文。例如:用户积垢、电子邮件通知、计划作业等。。。当您使用无服务器框架部署服务时,它会创建与相应lambda链接的不同API网关。您可以使用API网关端点与每个服务交互

正如您所提到的,lambda可以与其他AWS服务链接。但我认为,只要它不依赖于其他微服务,并且对诸如Dynamodb表或S3 bucket之类的服务具有明确定义的集成点,我们就可以利用Lambda来开发微服务