Spring Cloud(一):前言

来源:互联网 发布:网络惊魂 百度云 编辑:程序博客网 时间:2024/06/05 22:55
1.微服务架构概念:
简而言之,微服务架构就是将一个完整的应用从数据存储开始垂直拆分成多个不同的服务。
每个服务都能独立部署、独立维护、独立扩展,服务与服务间通过诸如RESTful API的方式互相调用。
即微服务是自治的服务单元。

2.Spring Boot回顾:
Spring Boot让我们的Spring应用变的更轻量化。具有如下优势:
1.为所有Spring开发者更快的入门
2.开箱即用,提供各种默认配置来简化项目配置
3.内嵌式容器简化Web项目
4.没有冗余代码生成和XML配置的要求

3.微服务架构进化
服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合,并且强调DevOps和快速演化。
DevOps是英文Development和Operations的合体,他要求开发、测试、运维进行一体化的合作,进行更小、更频繁、更自动化的应用发布,以及围绕应用架构来构建基础设施的架构。

3.1.服务化之Nginx
nginx通过接受客户端Http请求,根据路径配置,转发,跳转相应的服务。
缺点:
1.Nginx配置中存在服务调用的逻辑
2.服务消费者不知道,真正服务提供者的实例。
3.服务提供者不易管理
也正是以上的缺点,演变出Dubbo

3.2.服务化之Dubbo
Dubbo是阿里开源的一个SOA服务治理解决方案。服务消费者和提供者都可将服务信息注册到Register,形成了服务中心的组件。通过Monitor进行很好的服务管理,消费者可以进行负载均衡,服务降级等。
缺点:
1.致命的缺点-维护停止(阿里目前又着手维护)
2.Dubbo严重依赖于第三方组件(Zookeeper/Redis)
3.由于Dubbo的RPC调用,使得服务提供方与消费方有着代码层次的高强度耦合。


4.服务化之Spring Cloud
SpringCloud提出是开发面向云端的Application,为微服务提供了全套的组件技术支撑。值得注意的是:Spring Cloud抛弃了Dubbo的RPC通信,采用了基于Http的Rest方式通信。


4.1.Spring Cloud的大家庭组成



服务治理:这是Spring Cloud的核心。目前Spring Cloud主要通过整合Netflix的相关产品来实现这方面的功能(Spring Cloud Netflix),包括用于服务注册和发现的Eureka,调用断路器Hystrix,调用端负载均衡Ribbon,Rest客户端Feign,智能服务路由Zuul,用于监控数据收集和展示的Spectator、Servo、Atlas,用于配置读取的Archaius和提供Controller层Reactive封装的RxJava。

分布式链路监控:Spring Cloud Sleuth提供了全自动、可配置的数据埋点,以收集微服务调用链路上的性能数据,并发送给Zipkin进行存储、统计和展示。

消息组件:Spring Cloud Stream对于分布式消息的各种需求进行了抽象,包括发布订阅、分组消费、消息分片等功能,实现了微服务之间的异步通信。Spring Cloud Stream也集成了第三方的RabbitMQ和Apache Kafka作为消息队列的实现。而Spring Cloud Bus基于Spring Cloud Stream,主要提供了服务间的事件通信(比如刷新配置)。

配置中心:基于Spring Cloud Netflix和Spring Cloud Bus,Spring又提供了Spring Cloud Config,实现了配置集中管理、动态刷新的配置中心概念。配置通过Git或者简单文件来存储,支持加解密。

安全控制:Spring Cloud Security基于OAUTH2这个开放网络的安全标准,提供了微服务环境下的单点登录、资源授权、令牌管理等功能。

命令行工具:Spring Cloud Cli提供了以命令行和脚本的方式来管理微服务及Spring Cloud组件的方式。
原创粉丝点击