本文比较系统的介绍了Spring Cloud的技术栈,但是不够深入,
1.微服务定义:
2.Spring Cloud 技术栈
伦敦地铁站命名法,这个是真的皮;
3.服务治理
服务治理,简单来说就是服务的注册和发现
服务调用解释:这里只是画了单向的线,A和B其实是双向的,也就是B也可以去注册服务,A也可以调用;
中间是Eureka Server协调
4.实战-EurekaSever高可用
创建Springboot项目(用Maven管理);
添加Spring boot 、Spring Cloud的依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
如果用eureka的话也加一下依赖:
配置文件配置:
写下eureka启动项目的脚本:
启动后通过eureka查看服务:
5.负载均衡
在消费微服务中用Ribbon 实现负载均衡,Ribbon先从eureka sever中获取服务列表。
Ribbon 通过负载均衡算法进行负载均衡,将请求转发到其他微服务,
这里贴一下Spring Cloud Ribbon的简介:
-------------------实战测试方面后面补上
6.容错保护
了解下hystrix:
在服务消费方添加hystrix
Maven依赖:
使用hystrix实现容错:
要在Spring boot的启动类上添加@EnableHystrix注解;
7.服务网管
了解下Spring Cloud Zuul:
1.部署用户信息服务A、单点登陆服务B,每个服务至少两台机器;
2.将用户信息服务A、单点登陆服务B注册到EurekaSever中;
3.开发并部署zuul。
引入Maven依赖:
4.在zuul中配置网关路由
先写一个过滤器:
5.可以定义filter,需要集成zuul提供的filter类,进行校验拦截
6.在Spring boot启动类中配置注解
7.根据上面的路由配置访问微服务
凡是以/sso/打头的请求,全都路由到 单点登陆 的微服务;
总结:zuul网关,不仅提供对外服务访问,微服务也可以通过zuul请求其他的微服务
收尾:对着课程目标回顾下