Spring Cloud入门详细操作手册(Hoxton)

文章目录

环境

spring cloud 介绍

spring cloud 技术组成

Spring Cloud 对比 Dubbo

一、service - 服务

二、commons 通用项目

新建 maven 项目

pom.xml

java 源文件

   pojo

Item

User

Order

service

ItemService

UserService

OrderService

util

CookieUtil

JsonUtil

JsonResult

三、item service 商品服务

新建 spring boot 起步项目

选择依赖项

pom.xml

application.yml

主程序

java 源文件

ItemServiceImpl

ItemController

Spring MVC 接收参数的几个注解

访问测试

四、user service 用户服务

新建 spring boot 起步项目

选择依赖项

pom.xml

application.yml

主程序

java源文件

UserServiceImpl

UserController

访问测试

五、order service 订单服务

新建 spring boot 起步项目

选择依赖项

pom.xml

applicatoin.yml

主程序

java 源文件

OrderServiceImpl

OrderController

访问测试

六、service 访问测试汇总

七、eureka 注册与发现

创建 eureka server 项目:sp05-eureka

pom.xml

application.yml

主程序

修改 hosts 文件,添加 eureka 域名映射启动,并访问测试

八、service provider 服务提供者

pom.xml 添加 eureka 客户端依赖

application.yml 添加 eureka注册配置

主程序启用服务注册发现客户端

启动,并访问 eureka 查看注册信息

九、eureka 和 “服务提供者”的高可用

item-service 高可用

配置启动参数

启动测试

eureka 高可用

application-eureka1.yml

application-eureka2.yml

配置启动参数 `--spring.profiles.active` 和 `--server.port`

访问 eureka 服务器,查看注册信息

eureka客户端注册时,向两个服务器注册

十、ribbon 服务消费者

RestTemplate

新建 sp06-ribbon 项目

pom.xml

application.yml

主程序

RibbonController

启动服务,并访问测试

十一、ribbon 负载均衡和重试

Ribbon 负载均衡

添加 ribbon 起步依赖(可选)

RestTemplate 设置 `@LoadBalanced`

访问路径设置为服务id

访问测试

ribbon 重试

pom.xml 添加 spring-retry 依赖

application.yml 配置 ribbon 重试

主程序设置 RestTemplate 的请求工厂的超时属性

item-service 的 ItemController 添加延迟代码,以便测试 ribbon 的重试机制访问,测试 ribbon 重试机制

十二、Hystrix 断路器

微服务宕机时,ribbon 无法转发请求

复制 sp06-ribbon 项目,命名为sp07-hystrix

修改 pom.xml

添加 hystrix 起步依赖

修改 application.yml

主程序添加 `@EnableCircuitBreaker` 启用 hystrix 断路器

RibbonController 中添加降级方法

hystrix 超时设置启动项目进行测试

十三、hystrix dashboard 断路器仪表盘

sp07-hystrix 项目添加 actuator,并暴露 hystrix 监控端点

pom.xml 添加 actuator 依赖

调整 application.yml 配置,并暴露 `hystrix.stream` 监控端点

访问 actuator 路径,查看监控端点

Hystrix dashboard 仪表盘

pom.xml

application.yml

主程序添加 `@EnableHystrixDashboard` 和 `@EnableDiscoveryClient`启动,并访问测试

访问 hystrix dashboard

填入 hystrix 的监控端点,开启监控

hystrix 熔断

使用 apache 的并发访问测试工具 ab

hystrix 配置

十四、feign 声明式客户端接口

新建 sp09-feign 项目

pom.xml

application.yml

主程序添加 `@EnableDiscoveryClient` 和 `@EnableFeignClients`

java 源文件

feign 声明式客户端

ItemFeignService

UserFeignService

OrderFeignService

FeignController

调用流程

启动服务,并访问测试

十五、feign + ribbon 负载均衡和重试

application.yml 配置 ribbon 超时和重试

启动服务,访问测试

十六、feign + hystrix 降级

feign 启用 hystrix

application.yml 添加配置

可以添加配置,暂时减小降级超时时间,以便后续对降级进行测试

feign + hystrix 降级

feign 远程接口中指定降级类

ItemFeignService

UserFeignService

OrderFeignService

降级类

ItemFeignServiceFB

UserFeignServiceFB

OrderFeignServiceFB

启动服务,访问测试

十七、feign + hystrix 监控和熔断测试

修改sp09-feign项目

pom.xml 添加 hystrix 起步依赖

主程序添加 `@EnableCircuitBreaker`

sp09-feign 配置 actuator,暴露 `hystrix.stream` 监控端点

actuator 依赖

application.yml 暴露 `hystrix.stream` 端点

启动服务,查看监控端点

hystrix dashboard

熔断测试

十八、order service 调用商品库存服务和用户服务

pom.xml

application.yml

主程序

ItemFeignService

UserFeignService

ItemFeignServiceFB

UserFeignServiceFB

OrderServiceImpl

order-service 配置启动参数,启动两台服务器

启动服务,访问测试

hystrix dashboard 监控 order service 断路器

十九、hystrix + turbine 集群聚合监控

新建 sp10-turbine 项目

pom.xml

application.yml

主程序

访问测试

二十、zuul API网关

新建 sp11-zuul 项目

pom.xml

applicatoin.yml

主程序

启动服务,访问测试

zuul + ribbon 负载均衡

zuul + ribbon 重试

pom.xml 添加 spring-retry 依赖

配置 zuul 开启重试,并配置 ribbon 重试参数

zuul + hystrix 降级

创建降级类

ItemServiceFallback

OrderServiceFallback

降低 hystrix 超时时间,以便测试降级

启动服务,测试降级

zuul + hystrix 数据监控

暴露 hystrix.stream 监控端点

开启监控

zuul + turbine 聚合监控

熔断测试

二十一、zuul 请求过滤

定义过滤器,继承 ZuulFilter

访问测试

二十二、zuul Cookie过滤

二十三、config 配置中心

github 上存放配置文件

新建 "Project",命名为 config

将sp02,sp03,sp04,sp11四个项目的yml配置文件,复制到config项目,并改名

禁止配置中心的配置信息覆盖客户端配置

将 config 项目上传到 github

config 服务器

新建 sp12-config 项目

pom.xml

application.yml

主程序添加 `@EnableConfigServer` 和 `@EnableDiscoveryClient`

启动,访问测试

config 客户端

pom.xml 添加 config 客户端依赖

在四个项目中添加 bootstrap.yml

启动服务,观察从配置中心获取配置信息的日志

配置刷新

pom.xml

yml 配置文件中暴露 refresh 端点

UserServiceImpl 添加 `@RefreshScope` 注解

重启配置中心, 再重启sp03, 查看暴露的刷新端点

修改config项目的user-service-dev.yml文件并提交

用postman访问刷新端点, 刷新配置

访问 user-service,查看动态更新的新用户数据

二十四、config bus + rabbitmq 消息总线配置刷新

rabbitmq 安装笔记

需要动态更新配置的微服务,添加 spring cloud bus 依赖,并添加 rabbitmq 连接信息

pom.xml 添加 spring cloud bus 依赖

配置文件中添加 rabbitmq 连接信息

config-server 暴露 bus-refresh 刷新端点

启动服务,请求刷新端点发布刷新消息

config 本地文系统

把配置文件保存到 sp12-config 项目的 resources/config 目录下

修改 application.yml 激活 native profile,并指定配置文件目录

二十五、sleuth 链路跟踪

微服务中添加 spring cloud sleuth 依赖

在控制台查看链路跟踪日志

二十六、sleuth + zipkin 链路分析

链路数据抽样比例

zipkin 服务

下载 zipkin 服务器

启动 zipkin 时,连接到 rabbitmq

微服务添加 zipkin 起步依赖

启动并访问服务,访问 zipkin 查看链路分析

二十七、向eureka注册正确的ip地址

选择正确网卡

注册ip地址,而不是主机名


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值