Spring Cloud微服务构建:(一) 微服务介绍

Spring Cloud是一组由Pivotal公司开发的一系列框架集合。作为java的微服务框架,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

微服务简介

什么是微服务

微服务是一种架构风格,架构思想,是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信调用。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,还可以使用不同的数据存储技术。

微服务具备的特点

1.按业务划分为每一个可独立运行部署的程序,比如用户服务,订单服务等

2.可以使用不同编程技术,比如C#,python,java等

3.服务集中化,统一管理

4.微服务还是一个分布式系统

5.可以使用不同的存储技术,数据库独立

6.自动化部署

7.服务之间通过HTTP协议相互调用

8.服务的容错机制

微服务的不足之处

1.开发难度大,周期长

2.部署和维护成本高

3.分布式事务如何保持一致的问题

4.业务服务拆分需要准确

5.会造成代码冗余

Spring Cloud介绍

Spring Cloud是一组由Pivotal公司开发的一系列框架集合。作为java的微服务框架,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

Spring Cloud的常用组件

1.服务注册与发现组件 Eureka

2.熔断组件 Hystrix

3.负载均衡组件 Ribbon

4.路由网关 Zuul

5.配置管理 Spring Cloud Config

6.权限验证 Spring Cloud Security

7.分布式链路追踪系统 Spring Cloud Sleuth

8.数据流操作组件 Spring Cloud stream

Spring Cloud与Dubbo的比较

Dubbo是阿里巴巴开源的一个高性能优秀的分布式服务框架,采用RPC远程调用服务方案,以及SOA服务治理方案,可以和 Spring 框架无缝集成,被广泛运用于阿里巴巴各大站点,是一个非常优秀和成熟的服务治理框架,但相对于微服务架构而言,Spring Cloud更加适用微服务的标准。Spring Cloud拥有很多项目模块,包含了微服务的方方面面,而Dubbo则缺少了很多功能模块,例如路由网关,链路追踪等。

微服务关注点 Spring Cloud Dubbo
服务发现 Eureka、Consul、Zookeeper Zookeeper
负载均衡 Ribbon 自带
网关 Zuul
配置管理 Spring Cloud Config
分布式追踪 Spring Cloud Sleuth
容错机制 Hystrix 不完善
通信方式 Http、Message RPC
安全模块 Spring Cloud Security

从上面表格可以看出,在微服务架构方面,Spring Cloud占据着更大的优势,并且Spring Clond更新速度非常快,社区非常活跃,相对于Dubbo的版本趋向稳定,更新频率没有那么频繁。两个都是非常优秀的服务框架,该选择哪种,大家可以自己考虑,Dubbo优点在于文档齐全,上手快,框架成熟稳定。而Spring Cloud需要先学习Spring Boot,需要自行跟进学习组件,文档相对也比较少,但是Spring Cloud更可能成为未来微服务架构的标准。