微服务架构10条最佳实践

微服务架构10条最佳实践

最佳实践1 -- 尝试达到真正的REST

在乎识到REST API的好处以后,咱们能够查看上图的Leonard Richardson's 的成熟度模型,对于REST的使用有四个级别的定义。api

  • 级别0:使用一个端点来访问软件资源
  • 级别1:使用相同的http方法来访问不一样的资源
  • 级别2:使用不用的http方法(例如 GET POST PUT DELETE)来访问不一样的资源
  • 级别3:API响应中拥有导航资源,这是真正的REST。

最佳实践2 -- 使用Spring HATEOAS

这个能够帮助你使用可导航的RESTful api接口。架构


最佳实践3 -- 使用分布式配置

经过这种方式,你不能一次性配置50不一样的配置。Consul能够用来保持键/值的配置。负载均衡


最佳实践4 -- 客户代码生成

Hüseyin 建议“要么使用Swagger来生成任何支持的语言的客户端代码,要么经过注解来使用Feign客户端,以及使用Ribbon进行客户端的负载均衡”。分布式


最佳实践5 -- 持续交付

Hüseyin 使用Docker和Jenkins进行了持续交付的示例演示。微服务


最佳实践6 -- 监控

事实上,监控无处不在。性能


最佳实践7 -- 日志

Hüseyin 指出大量的Docker 日志驱动。他经过使用GELF(Graylog Extended Log Format)来进行示例演示.日志


最佳实践8 -- APM

应用性能管理。APM经过搜集额外的详细信息来帮助你解决问题。Hüseyin 表示Zipkin是一个开源产品中的一个可选方案。orm


最佳实践9 -- 数据聚合到特定的客户端的API网关


最佳实践10 -- 事件订阅和CQRS(命令和查询响应分离)

一个命令能够改变一个对象的状态,可是不会返回数据。一个查询会返回数据,可是不会更改对象的状态。对象

相关文章
相关标签/搜索