微服务架构

近年来,在软件开发领域关于微服务的讨论呈现出火爆的局面,有人倾向于在系统设计与开发中采用微服务方式实现软件系统的松耦合、跨部门开发,被认为是IT软件架构的未来方向,Martin Fowler也给微服务架构极高的评价;同时,反对之声也很强烈,持反对观点的人表示微服务增加了系统维护、部署的难度,导致一些功能模块或代码无法复用,同时微服务允许使用不同的语言和框架来开发各个系统模块,这又会增加系统集成与测试的难度,而且随着系统规模的日渐增长,微服务在一定程度上也会导致系统变得越来越复杂。尽管一些公司已经在生产系统中采用了微服务架构,并且取得了良好的效果;但更多公司还是处在观望的态度。

至于什么是微服务架构?简单说就是将一个完整的应用(单体应用)按照一定的拆分规则(后文讲述)拆分成多个不同的服务,每个服务都能独立地进行开发、部署、扩展。服务于服务之间通过注入RESTful api或其他方式调用。

阿里作为国内互联网公司的Top,它的技术体系可以说是很完善的,阿里在技术这一块是具有一定的权威性的,这篇文章要与大家分享的就是阿里大牛私传我的Springcloud微服务实战笔记。

 

由于篇幅限制这份笔记的所有内容就只能以截图的形式展示出来,需要完整笔记的直接添加小助理vx:bjmsb2020 即可得到获取方式

Spring Cloud

下图展示了Spring Cloud的完整技术组成:

 

很明显,Spring Cloud涵盖面更很广,而且也是Spring的拳头项目,下面我们来看看笔记具体内容。

服务发现

在微服务架构中,服务发现(Service Discovery)是关键原则之一。

  • Eureka
  • Eureka的高可用
  • Consul
  • Consul安装与使用
  • Consul常用命令
  • Consul高可用

 

 

服务提供者

 

服务消费者

  • Ribbon
  • Feign

 

熔断器

  • Hystrix
  • Hystrix Dashboard
  • Turbine

 

配置中心

Spring Cloud Config提供了一种在分布式系统中外部化配置服务器和客户端的支持。配置服务器有一个中心位置,管理所有环境下的应用的外部属性。

 

APIGateway

API Gateway是微服务架构中不可或缺的部分。

 

使用Docker构建微服务

Docker介绍

Docker是一个用于开发、交付和运行应用的开放平台,使用Docker,可以更快地打包代码、测试以及部署,并且可以减少从编写到部署运行代码的周期。

 

Docker的安装

 

Docker的常用命令

 

Dockerfile常用指令

指令的一般格式为指令名称参数。

 

Docker私有仓库的搭建与使用

和Maven一样,Docker不仅提供了一个中央仓库,同时也允许我们搭建私有仓库。

 

使用Dockerfile构建Docker镜像

 

使用Mav en插件构建Docker镜像

 

Docker Compose

上面提到的Dockerfile可以让用户管理一个单独的容器,如果我需要管理一个Web应用的同时还要加上其后端的数据库服务容器?这时就需要Compose工具了。

  • Docker Compose的安装
  • Docker Compose入门示例
  • Docker-compose.yml常用命令
  • Docker-compose常用命令

 

目前Spring Cloud是所有微服务治理中最优秀的方案,也是一个趋势,面试时毫无疑问是必问的一个点许多公司的业务线已经全部拥抱Spring Cloud,部分公司选择部分拥抱Spring Cloud。不管你是初学还是精通这份笔记你都应该看看,前者巩固基础,后者查漏补缺。

需要这份笔记的读者老哥,麻烦帮忙转发加评论关注小编一下,然后添加下小助理vx:bjmsb2020 即可得到获取方式。