开篇
为什么要写这个系列
历时两周,终于暂时写完这个系列了。才疏学浅,会存在一些错误,希望大家指正,谢谢。
1. 项目中使用的是Spring boot 1.5.X,最近有时间学习了下Spring boot 2.0,接着学习了spring cloud Finchley.SR1,纯属自己学习,为了更好的学习效果,准备复盘下学习内容。
2. 记录自己踩过的坑,方便以后使用。
为什么要起这个项目名称
woqu - 我趣
自己的兴趣学习,学习新技术是自己兴趣,就这么起了这个名字。
技术栈
- Spring Boot - 微服务的入门级微框架,用来简化 Spring 应用的初始搭建以及开发过程。
- Spring Cloud Consul - 针对Consul的服务治理实现。Consul是一个分布式高可用的系统,它包含多个组件,但是作为一个整体,在微服务架构中为我们的基础设施提供服务发现和服务配置的工具。
- Spring Cloud Gateway - Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。
- 服务消费
Ribbon - 提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。
Feign - Feign 是一种声明式、模板化的 HTTP 客户端。 - Hystrix - 熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
- Turbine - Turbine 是聚合服务器发送事件流数据的一个工具,用来监控集群下 hystrix 的 metrics 情况。
- Spring Cloud Admin - 管理和监控你的 Spring Boot 应用程序的应用程序,为Spring CLoud 保驾护航的全新Devops系统。
- Spring Cloud Sleuth - 日志收集工具包,封装了 Dapper 和 log-based 追踪以及 Zipkin 和 HTrace 操作,为 SpringCloud 应用实现了一种分布式追踪解决方案。
- Spring Cloud 与 响应式微服务
- 整合Docker(基于Docker的微服务CI CD流水线 ),使用Kubernetes编排容器
应用架构
该项目包含 8 个服务
- consul-server 服务发现、健康检查、配置中心、
- gateway-woqu 微服务网关
- hystrix-dashboard-woqu 展示Hystrix用于熔断的各项度量指标
- turbine-woqu Hystrix监控数据的聚合
- admin-woqu 管理和监控应用的系统
- businessa-woqu 业务服务A
- businessb-woqu 业务服务B
- zipkin-woqu 分布式链路跟踪
DB
目前这个系统中使用的有 mysql 和 redis