Spring Cloud Netflix — 简介

MicroService

      简单来说,微服务架构的风格是,开发一组小型的服务来完成一个独立的应用系统,其中每个小型服务都运行在自己独立的进程中,并经常采用HTTP资源API这种轻量级的方式通信。这些服务围绕业务功能来构建,并且有全自动的部署机制来独立部署。这些微服务可以用不同的语言来编写,并且使用不同的数据存储机制,我们只需要对这些服务做最低下度的集中管理。

根据上面这段对微服务的描述,可以很容易的理解微服务的特点:

      1、组件化和服务

      2、围绕业务组织结构

      3、注重产品而不是项目

      4、智能断点和傻瓜管道

      5、去中心化管理

      6、去中心化数据管理

      7、基础设施自动化

      8、容错设计

      9、演进式设计

对于微服务的结构到底是什么样子的,下面有一张图可以很经典的描述:

Spring Cloud Netflix — 简介_第1张图片

      可以看出来,以之前项目形式,我们对业务分为各个模块,但是所有模块都集中在一个工程中。对于微服务来讲,会开发一组小型的服务,类似于模块,但是可以独立提供服务,使得现在的产品可以拆卸再组装,更加有利于扩展和迭代。

Spring Cloud

      Spring Cloud是Spring推出的大型项目,类似于Spring推出的其他项目,但是与其他项目不同的是,Spring Cloud包含了很多独立的项目,例如spring-cloud-netflix、spring-cloud-config、spring-cloud-security等。这些项目会独立发版,所以Spring Cloud每发一次版,其中包含的项目的版本并不统一,所以Spring Cloud的版本并不像传统的版本方式,而是用组合的方式:名称.版本号 X。例如:Edgware.SR 1,Edgware是伦敦的地铁站的名称,SR表示Service Release,1就是数字1、2、3。下面是不同版本的Spring Cloud包含独立项目的版本:

Spring Cloud Netflix — 简介_第2张图片

Spring Cloud Config

      Spring Cloud Config是由git存储库支持的集中式外部配置管理,配置资源直接映射到Spring环境,如果需要的话,也可以由非Spring程序使用。

Spring Cloud Netflix

      各种Netflix OSS组件集成,包括Eureka(服务注册与发现)、Hystrix(容错管理,实现断路器模式)、Ribbon(客户端负载均衡)、Feign(声明式服务调用组件)、Zuul(网关,提供智能路由、访问过滤等功能)等。

Spring Cloud Bus

      用于将服务和服务实例与分布式消息相连接的事件总线,在集群中传播状态变化(例如配置更改事件)。

......

总结

      在初期使用Spring Cloud时,用的最多的还是Spring Cloud Eureka,主要做服务注册和发现,对于其他项目,多了解才能找到适合用的地方。架构转微服务还是比较难的,要做的还太多。

你可能感兴趣的:(微服务)