微服务简介
首先来谈一下什么是微服务? 微服务近几年如此过火,到底是什么优势吸引了无数开发人员热衷于微服务架构.微服务(Microservices)即是一种系统架构风格,将原来的单体应用架构拆分为若干个相互独立的小型服务,每个服务可以独立运行,服务与服务之间通过基于HTTP的Restful API完成通信.被拆分的每个服务完成某一项的业务功能,或是一些耦合度比较高的业务功能,每个服务都有自身的数据存储,业务开发,测试以及部署方案.可以使用不同的语言进行各个服务的开发.
微服务架构特性
- 服务组件化
- 按照业务组织团队
- 做"产品"的态度
- 智能端点与哑管道
- 去中心化治理
- 去中心化管理数据基
- 础设施自动化
- 容错设计
- 演进式设计
- 微服务的选择
近几年微服务几乎被绝大多数开发人员所谈及,也有无数的架构先驱在实际项目中应用微服务架构理念,为微服务架构的发展,实践做出了不可忽视的贡献,尤以互联网大公司共享最为突出,如国内的阿里巴巴更是走在前列.如下有诸多:
服务治理: 阿里巴巴开源的Dubbo(已是Apache旗下顶级项目),Netflix的Eureka和Apache的Consul等.
服务追踪:SpringCloud的Sleuth,Twitter的Zipkin
分布式配置管理:Netflix的Archaius,SpringCloud的Config,淘宝的Diamond等.
......
实施微服务架构的方案有很多,但是对于不同的公司和组织加之众多的开源框架,可以说,很难找到两个完全一致的架构方案.面对如此多的解决方案,对于新手来说,选择何种解决方案,无疑是一个棘手的问题,如果对每一种进行尝试,分析,势必耗时耗力,并不是一个明智的选择.
而SpringCloud的出现,无疑是广大开发人员的一大福音,其初衷并非是解决微服务架构中的某一个问题,而是一个解决微服务架构实施的综合性解决方案.其整合了许多被实践证明过的框架作为实施方案的基础部件,并在这个基础上创建了一批优秀的边缘组件,为开发人员提供了极大的便利性.下面是SpringCloud简介
SpringCloud简介
SpringCloud是一个基于SpringBoot实现的微服务架构开发利器.为实现微服务架构中涉及到的配置管理,服务治理,断路器,智能路由,控制总线,分布式会话,集群状态管理等提供了一种简单的开发方式.
SpringCloud包含众多子项目,例如有:
Spring Cloud Config:配置管理工具,支持使用Git存储配置内容.
Spring Cloud Netflix:核心组件,对多个Netflix OSS开源套件进行整合
Eureka: 服务治理组件,包含服务注册中心,服务注册与发现机制的实现
Hystrix: 容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力.
Ribbon: 客户端负载均衡的服务调用组件.
Feign: 基于Ribbon和Hystrix的声明式服务调用组件
Zuul:网关组件,提供智能路由,访问过滤等功能.
Archaius: 外部化配置组件.
Spring Cloud Bus:事件,消息总线,用于传播集群中的状态变化或事件.
Spring Cloud Cluster:针对Zookeeper,Redis,Consul的选举算法和通用状态模式的实现
Spring Cloud Consul:服务发现与配置管理工具.
Spring Cloud Stream:通过Redis,Rabbit或者Kafka实现的消费微服务,可通过简单的声明式模型来发送和接收消息.
Spring Cloud Security:安全工具包,提供在Zuul代理中对OAuth2客户端请求的中继器
Spring Cloud Zookeeper:基于Zookeeper的服务发现与配置管理组件
Spring Cloud Starters:Spring Cloud的基础组件,基于Spring Boot风格项目的基础依赖模块
Spring Cloud CLI:在Groovy中快速创建Spring Cloud应用的Spring Cloud CLI插件.
网友评论