项目简介
本项目是一个基于 SpringCloud 框架搭建的微服务系统,用于构建分布式系统。项目运用了 Eureka、Ribbon、Feign、Hystrix、Zuul、Config、Bus 等组件,实现了服务的注册与发现、负载均衡、服务熔断、API 网关、配置中心和消息总线等功能。
项目的主要特性和功能
- 服务注册与发现:借助 Eureka 达成服务的注册与发现,支持服务集群搭建。
- 负载均衡:利用 Ribbon 实现客户端负载均衡,保证服务请求在多个实例间均衡分配。
- 服务调用:通过 Feign 实现声明式服务调用,简化 HTTP 客户端编写。
- 服务熔断:使用 Hystrix 实现服务熔断和降级处理,防止服务雪崩效应。
- API 网关:通过 Zuul 实现 API 网关,提供路由、过滤和安全等功能。
- 配置中心:使用 Config 实现配置的集中管理,支持从 Git 仓库动态获取配置。
- 消息总线:通过 Bus 实现配置的动态刷新,支持 RabbitMQ 作为消息代理。
安装使用步骤
1. 环境准备
- 安装 Java 8 或更高版本。
- 安装 Maven 3.x 或更高版本。
- 安装 MySQL 或其他支持的数据库。
- 若使用 Bus 功能,需安装 RabbitMQ。
2. 进入项目目录
假设已下载源码,进入项目目录:
bash
cd springcloud-microservices
3. 配置数据库
在 springcloud-config-dept-hystrix-8001
和 springcloud-config-dept-hystrix-8002
项目中,修改 application.yml
文件的数据库连接信息:
yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/yourdatabase
username: yourusername
password: yourpassword
4. 启动 Eureka 服务注册中心
分别启动 springcloud-eureka-7001
、springcloud-eureka-7002
和 springcloud-eureka-7003
项目,启动 Eureka 服务注册中心集群。
5. 启动服务提供者
分别启动 springcloud-provider-dept-8001
、springcloud-provider-dept-8002
和 springcloud-provider-dept-8003
项目,启动服务提供者集群。
6. 启动服务消费者
启动 springcloud-consumer-dept-80
和 springcloud-consumer-dept-feign-80
项目,启动服务消费者。
7. 启动 API 网关
启动 springcloud-zuul-9527
项目,启动 Zuul API 网关。
8. 启动配置中心
启动 springcloud-config-server-3344
项目,启动 Config 配置中心。
9. 启动 Hystrix 监控仪表盘
启动 springcloud-consumer-hystrix-dashboard-9001
项目,启动 Hystrix 监控仪表盘。
10. 访问服务
通过 Zuul API 网关访问服务,示例:
bash
http://localhost:9527/provider-dept/dept/list
通过 Hystrix 监控仪表盘查看服务熔断状态:
bash
http://localhost:9001/hystrix
11. 动态刷新配置
修改 Git 仓库中的配置文件,发送 POST 请求刷新配置:
bash
curl -X POST http://localhost:80/actuator/bus-refresh
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】