我几乎没有与MicroServices Architecture相关的问题。
MicroServices的粒度应该是多少?我们在Relational和NoSQL数据库中都有表。每张桌子应该有一个服务吗?我认为每个数据源的服务会更有意义,但那就是SOA。
如果我们创建一堆MicroServices,我们是否还应该提供客户端库来促进服务的消费?或者只是让调用者使用任何REST库来进行调用。不管怎样,这听起来很多。
每个MicroService应该有三个GIT仓库吗?
在同一个EC2实例中部署多个MicroServices是否可以?
我认为在AWS Lambda上部署MicroServices会很完美,但整个应用程序只是一堆Lambda函数。更不用说与AWS Lambdas紧密耦合了。有人在Lambdas上实现过MicroServices吗?我很感激您对此的任何反馈。
答案 0 :(得分:3)
微服务的实现通常因系统或开发人员与开发人员而异。然而,微服务的一些基本特征是,
我们可以利用AWS lambda来实现上述特性。但是维护和管理Lambda端点可能很棘手并且通常很麻烦。您可以使用Serverless Framework轻松管理lambda函数。您可以使用简单的YAML格式定义服务配置,框架会创建CloudFromation堆栈并进行部署。
使用无服务器框架,您可以定义多个服务。每项服务都可以是小焦点,松散耦合,语言中立和有限的上下文。例如:用户CRUD,电子邮件通知,预定作业等...当您使用无服务器框架部署服务时,它会创建与各自的lambdas链接的不同API网关。您可以使用API Gateway端点与每个服务进行交互。
正如您所提到的,lambda可以与其他AWS服务链接。但我认为,只要它不依赖于其他微服务并且具有明确定义的集成点,如Dynamodb表或S3存储桶,我们就可以利用Lambda来开发微服务。