springcloud
1 springCloud 概述
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地***简化了分布式系统基 础设施的开发***。(例如:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署)。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉 了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发具 包。
Spring Cloud的本质是在 Spring Boot 的基础上,增加了一堆微服务相关的规范,并对应用上下文
(Application Context )进行了功能增强。既然 Spring Cloud 是规范,那么就需要去实现,目前Spring Cloud 规范已有 Spring官方,Spring Cloud Netflix ,Spring Cloud Alibaba等实现。通过组件化的方式,Spring Cloud将这些实现整合到一起构成全家桶式的微服务技术栈
=====================================================================================
Spring Cloud Netflix组件 (Netflix公司)----目前学习的
组件名称 作用
Eureka 服务注册中心
Ribbon 客户端负载均衡
Feign/OpenFeign 声明式服务调用
Hystrix 客户端容错保护
Zuul API服务网关
=====================================================================================
Spring Cloud Alibaba组件 (图形界面)
组件名称 作用
Nacos 服务注册中心
Sentinel (断路器) 客户端容错保护
=====================================================================================
Spring Cloud原生及其他组件
组件 作用
Consul 服务注册中心
Config 分布式配置中心
Gateway API服务网关
Sleuth/Zipkin 分布式链路追踪
携程网使用的注册中心是自己研发的 Appolo(注册中心)
=====================================================================================
SpringCloud
版本
SpringCloud
采用了英国伦敦地铁站的名称来命名,并由地铁站名称字母A -Z依次类推的形式来发布迭代版本
查看Springcloud
和Springboot
之间的依赖关系(每个版本都有想对应的依赖关系): https://start.spring.io/actuator/info
=====================================================================================
2 : springCloud入门
1 :新建一个普通的maven项目
1 pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.woniu</groupId>
<!-- 项目名-->
<artifactId>distributeRumen</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<!-- 子模块-->
<module>entity</module>
<module>Users-operation</module>
<module>comsumer-usersOperation-8082</module>
<module>eureka</module>
</modules>
<properties>
<!-- 指定版本,后续需要的依赖都可以加在这里--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <mysql.version>5.1.35</mysql.version> <mybatis.spring.boot.verison>2.1.0</mybatis.spring.boot.verison> <druid.spring.boot.starter.version>1.1.10</druid.spring.boot.starter.version> <spring.boot.version>2.2.2.RELEASE</spring.boot.version> <spring.cloud.version>Hoxton.SR1</spring.cloud.version>
</properties>
<dependencyManagement>
<!-- 版本控制:子项目的版本统一控制,后续需要的依赖都可以加在这里-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId> <version>${
spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>