小咸儿最近又学习到新知识了,新接触了Spring Cloud,感觉很高大上啊!
接下来,就迈出了学习Spring cloud的第一步。
首先从宏观上来了解一下Spring cloud。
什么是Spring Cloud?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,他只是将目前各家公司开发的比较成熟的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终形成了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud组成:
两类:
- A,对现有成熟框架“Spring Boot化”的封装和抽象,也是数量最多的项目。
- B,开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka,ActiveMQ这样的角色。
- Spring Cloud Netflix
是对Netflix开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。 - Spring Cloud Config
将配置信息中央化保存,配置Spring Cloud Bus可以实现动态修改配置文件。 - Spring Cloud Bus
分布式消息队列,是对Kafka,MQ的封装 - Spring Cloud Security
对Spring Security的封装,并能配合Netflix使用 - Spring Cloud Zookeeper
对Zookeeper的封装,使之能配置其他Spring Cloud的子项目使用 - Spring Cloud Eureka
Spring Cloud Eureka 是 Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。
- Spring Cloud Netflix
Spring Cloud 的优点:
服务发现:服务化的核心是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底的去解耦合(不在共享DB、KV,去掉重量级ESB),并且强调DevOps和快速演化。这就要求我们必须采用与一站式时代、泛SOA时代不同的技术栈,而Spring Cloud就是其中的佼佼者。
Spring Cloud与DUBBO的对比:
微服务需要的功能 | DUBBO | Spring Cloud |
---|---|---|
服务注册于发现 | Zookeeper | Eureka |
服务调用方式 | RPC | RESTful API |
断路器 | 有 | 有 |
负载均衡 | 有 | 有 |
服务路由和过滤 | 有 | 有 |
分布式配置 | 无 | 有 |
分布式锁 | 无 | 计划开发 |
集群选主 | 无 | 有 |
分布式消息 | 无 | 有 |
参考链接:Spring Cloud概述