Spring Cloud的简单组成有哪些

这里写自定义目录标题


环境
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
访问测试
四、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 起步依赖(可选)
RestTemplate 设置 @LoadBalanced
访问路径设置为服务id
访问测试
ribbon 重试
pom.xml 添加 spring-retry 依赖
application.yml 配置 ribbon 重试
主程序设置 RestTemplate 的请求工厂的超时属性
item-service 的 ItemController 添加延迟代码,以便测试 ribbon 的重试机制
访问,测试 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 路径,查看监控端点
新建 sp08-hystrix-dashboard 项目
pom.xml
application.yml
主程序添加 @EnableHystrixDashboard@EnableDiscoveryClient
启动,并访问测试
访问 hystrix dashboard
填入 hystrix 的监控端点,开启监控
hystrix 熔断
使用 apache 的并发访问测试工具 ab
hystrix 配置
十四、feign 整合ribbon+hystrix
新建 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地址,而不是主机名
环境
STS
Maven
Lombok
spring cloud 介绍
spring cloud 是一系列框架的集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 spring boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

spring cloud 对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用 spring cloud 一站式解决方案能在从容应对业务发展的同时大大减少开发成本。同时,随着近几年微服务架构和 docker 容器概念的火爆,也会让 spring cloud 在未来越来越“云”化的软件开发风格中立有一席之地,尤其是在目前五花八门的分布式解决方案中提供了标准化的、一站式的技术方案,意义可能会堪比当年 servlet 规范的诞生,有效推进服务端软件系统技术水平的进步。

spring cloud 技术组成
eureka
微服务治理,服务注册和发现

ribbon
负载均衡、请求重试

hystrix
断路器,服务降级、熔断

feign
ribbon + hystrix 集成,并提供声明式客户端

hystrix dashboard 和 turbine
hystrix 数据监控

zuul
API 网关,提供微服务的统一入口,并提供统一的权限验证

config
配置中心

bus
消息总线, 配置刷新

sleuth+zipkin
链路跟踪

Spring Cloud 对比 Dubbo
Dubbo

Dubbo只是一个远程调用(RPC)框架
默认基于长连接,支持多种序列化格式
Spring Cloud

框架集
提供了一整套微服务解决方案(全家桶)
基于http调用, Rest API

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值