极客时间-左耳听风-程序员攻略-微服务

程序员练级攻略:微服务

微服务是分布式系统中最近比较流行的架构模型,也是 SOA 架构的一个进化。html

Martin Fowler 的这篇关于微服务架构的文档 - Microservice Architecture中译版),这篇文章说明了微服务的架构与传统架构的不一样之处在于,微服务的每一个服务与其数据库都是独立的,能够无依赖地进行部署。前端

各家对微服务的理解。vue

微服务架构

IBM 红皮书:Microservices Best Practices for Java ,这本书很是好,不但有经过把 Spring Boot 和 Dropwizard 来架建 Java 的微服务,并且还谈到了一些标准的架构模型,如服务注册、服务发现、API 网关、服务通信、数据处理、应用安全、测试、部署、运维等,是至关不错的一本书。react

微服务设计。这本书全面介绍了微服务的建模、集成、测试、部署和监控,经过一个虚构的公司讲解了如何创建微服务架构。主要内容包括认识微服务在保证系统设计与组织目标统一上的重要性,学会把服务集成到已有系统中,采用递增手段拆分单块大型应用,经过持续集成部署微服务,等等。nginx

下面是 Nginx 上的一组微服务架构的系列文章。git

下面这是 Auto0 Blog 上一系列的微服务的介绍,有代码演示。程序员

Dzone 的 Spring Boot 的教程。github

时髦一些的架构。golang

  • 前端React.jsVue.js
  • 后端Go 语言 + 微服务工具集 Go kit ,由于是微服务了,因此,每一个服务的代码就简单了。既然简单了,也就能够用任何语言了,因此,我推荐 Go 语言。
  • 通信gRPC,这是 Google 远程调用的一个框架,它比 Restful 的调用要快 20 倍到 50 倍的样子。
  • APISwagger ,Swagger 是一种 Restful API 的简单但强大的表示方式,标准的,语言无关,这种表示方式不但人可读,并且机器可读。能够做为 Restful API 的交互式文档,也能够做为 Restful API 形式化的接口描述,生成客户端和服务端的代码。今天,全部的 API 应该都经过 Swagger 来完成。
  • 网关Envoy 其包含了服务发现、负载均衡和熔断等这些特性,也是一个颇有潜力的网关。固然,Kubernetes 也是很好的,并且它也是高扩展的,因此,彻底能够把 Envoy 经过 Ingress 集成进 Kubernetes。这里有一个开源项目就是干这个事的 - contour
  • 日志监控fluentd + ELK
  • 指标监控Prometheus
  • 调用跟踪Jaeger 或是 Zipkin,固然,后者比较传统一些,前者比较时髦,最重要的是,其能够和 Prometheus 和 Envory 集成。
  • 自动化运维Docker + Kubernetes

微服务和 SOA

在对微服务有了必定的认识之后,区分出微服务和 SOA 架构能够看一下这本电子书 - 《Microservices vs. Service-Oriented Architecture》。这本书含有服务化架构的一些事实,还有基础的 SOA 和微服务的架构知识,以及两种架构的不一样。这本书的做者马克·理查兹(Mark Richards)同窗拥有十年以上的 SOA 和微服务架构的设计和实现的经验。web

另外,还有几篇其它对比 SOA 和微服务的文章。

微服务和其它架构的一些不一样和比较,了解微服务架构的优缺点。下面几篇文章将帮助得到这些知识。

设计模式和最佳实践

微服务的一些设计模式。

相关资源

相关文章
相关标签/搜索