# Environment
+ Java : 1.8+
+ Spring Boot : 2.0.3.RELEASE
+ Spring Cloud : Finchley.RELEASE
# Components
- 服务注册发现:Eureka Server,Eureka Client
- 服务消费负载均衡:Ribbon、Feign
- 服务容错保护(降级、隔离、熔断):Hystrix、Hystrix-Dashboard
- 服务监控:Turbine,RabbitMQ
- 服务网关:Spring-Cloud-Gateway,Netflix-Zuul
- 服务链路追踪:Spring-Cloud-Sleuth、Zipkin(聚合系统调用数据)、RabbitMQ(系统调用数据传输)、 Elasticsearch(系统调用数据持久化)、Kibana(分析和可视化平台)
- 日志分析系统:Logstash、Elasticsearch、Kibana
- 配置中心:Spring-Cloud-Config
# Use
1、启动eureka-server 服务注册中心,http://localhost:8080
2、启动user-service 服务,http://localhost:9100,http://localhost:9101
  启动两个服务,用于测试负载均衡功能,启动命令:
```jshelllanguage
java -jar user-service-0.0.1-SNAPSHOT.jar --server.port=9100
java -jar user-service-0.0.1-SNAPSHOT.jar --server.port=9101
java -jar order-service-0.0.1-SNAPSHOT.jar --server.port=9120
java -jar order-service-0.0.1-SNAPSHOT.jar --server.port=9121
```
3、启动eureka-ribbon: ribbon服务负载均衡,http://localhost:9200
4、启动eureka-feign: feign服务负载均衡,http://localhost:9210
5、启动eureka-feign-hystrix: feign+hystrix服务容错,http://localhost:9220
6、启动hystrix-dashboard: 服务容错仪表盘监控,http://localhost:9230
- 在hystrix-dashboard 界面输入: http://localhost:9220/actuator/hystrix.stream 监控服务
7、启动hystrix-turbine:服务监控信息聚合,http://localhost:9240/turbine.stream ,服务监控信息
8、启动turbine-amqp:服务监控信息收集,使用RabbitMQ消息代理异步实现,http://localhost:9260
- 打开 http://localhost:9230/hystrix 界面输入:http://localhost:9240/turbine.stream 监控服务
9、启动cloud-gateway: 服务网关转发请求:
- http://localhost:9300/actuator/gateway/routes/,查看所有Api路由信息
- http://localhost:9300/user/**,请求User-Service
- http://localhost:9300/order/**,请求Order-Service
10、启动zuul-gateway: 服务网关转发请求:
- http://localhost:9310/v1/user/**,请求User-Service
- http://localhost:9310/v1/order/**,请求Order-Service
11、spring cloud sleuth 服务链路追踪
- Centos7 安装 zipkin服务端,`注意:Zipkin 不再推荐我们来自定义 Server 端了,网上的各种教程基本都是之前版本的,基本都数互相抄的,请无视`
- 使用命令启动 :
```jshelllanguage
# 通过环境变量让 Zipkin 从 RabbitMQ 中读取信息,如下:
java -jar zipkin.jar --RABBIT_ADDRESSES=localhost:5672 --RABBIT_USER=admin --RABBIT_PASSWORD=12345 --RABBIT_VIRTUAL_HOST=sleuth
or
java -jar zipkin.jar --RABBIT_URI=amqp://admin:12345@localhost:5672/sleuth
```
- user-service,order-service,zuul-gateway 添加依赖:
```jshelllanguage
<!--服务链路追踪-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<!--数据传输-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
```
- user-service,order-service,zuul-gateway 的 application.yml 添加以下配置:
- zuul-gateway -> order-service -> user-service 形成调用链路
```xml
# 服务追踪配置
sleuth:
web:
client:
enabled: true
sampler:
# 将采样比例设置为 1.0,也就是全部都需要。默认是 0.1
probability: 1.0
# 指定 zipkin 服务器的地址
zipkin:
base-url: http://192.168.10.100:9411/
enabled: true
sender:
type: rabbit
rabbitmq:
addresses: 192.168.10.100
port: 15672
username: admin
password: 12345
virtual-host: sleuth
```
- http://192.168.10.100:9411/zipkin/ ,查看所有的 trace信息
- 将服务追踪trace信息持久化到 Elasticsearch
>>>1、安装Elasticsearch,并启动 http://192.168.10.100:9200/
>>>2、安装Elasticsearch-head,并启动 http://192.168.10.100:9100/
>>>3、重新启动 Zipkin 服务,并指定存储方式为 Elasticsearch,数据传输是 RabbitMQ,启动命令如下:
```jshelllanguage
java -jar zipkin.jar --RABBIT_URI=amqp://admin:12345@localhost:5672/sleuth --STORAGE_TYPE=elasticsearch --ES_HOSTS=http://localhost:9200 --ES_HTTP_LOGGING=BASIC
前面是指定用 RabbitMQ,后面是指定存储方式 Elasticsearch
```
>>>4、zuul-gateway -> order-service -> user-service 形成调用链路,请求的数据使用RabbitMQ传输并存储在 Elasticsearch 中,浏览数据可查看
6、使用 Kibana 查看分析 Elasticsearch存数的数据,http://192.168.10.100:5601,不需任何代码,安装 Kibana 配置下Elasticsearch地址即可
12、搭建ELK日志分析系统,安装配置 Logstash,直接使用以上的 Elasticsearch和 Kibana, Logstash的配置如下:
```jshelllanguage
input {
tcp {
host => "192.168.10.100"
port => 6510
mode => "server"
tags => ["tags"]
codec => json_lines
}
}
output {
stdout{codec =>rubydebug}
elasticsearch {
hosts => "127.0.0.1:9200"
}
}
```
使用命令:`bin/logstash -f config/logstash_es.conf` 启动 logstash,然后在Kibana 创建索引,即可查看日志。
13、spring cloud config 微服务配置中心
- 服务端:`http://localhost:9400/config/dev` 获取上传到git仓库的配置
- 客户端:`http://localhost:9410/config` ,必须先启动config-server服务端,客户端还有个坑,必须使用 `bootstrap.yml`,否则获取不到config.uri,无法启动客户端
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
读书笔记:Spring Cloud Finchley版 微服务实践教程.zip (144个子文件)
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
config 269B
FETCH_HEAD 132B
.gitignore 297B
.gitignore 268B
HEAD 130B
HEAD 23B
pack-f92d911b869c4c74356952bb27a521004d5ec82f.idx 42KB
cloud-gateway.iml 25KB
user-service.iml 22KB
hystrix-turbine-amqp.iml 21KB
order-service.iml 21KB
eureka-server.iml 18KB
eureka-ribbon.iml 17KB
hystrix-turbine.iml 17KB
eureka-feign-hystrix.iml 17KB
eureka-feign.iml 15KB
hystrix-dashboard.iml 12KB
com.github.spring-micro.iml 182B
index 15KB
maven-wrapper.jar 46KB
maven-wrapper.jar 46KB
maven-wrapper.jar 46KB
maven-wrapper.jar 46KB
maven-wrapper.jar 46KB
maven-wrapper.jar 46KB
maven-wrapper.jar 46KB
AuthorizeFilter.java 2KB
GatewayFallbackProvider.java 2KB
ConfigController.java 2KB
GatewayFilter.java 2KB
UserController.java 1KB
FeignHystrixController.java 1KB
EurekaFeignHystrixApplication.java 1009B
UserClient.java 963B
UserOrderController.java 952B
EurekaRibbonApplication.java 812B
UserController.java 805B
BeanConfig.java 783B
UserClientConfiguration.java 751B
UserClientController.java 674B
HystrixDashboardApplication.java 650B
OrderController.java 625B
EurekaFeignApplication.java 608B
UserOrderService.java 608B
UserServiceApplication.java 593B
UserInfo.java 593B
UserController.java 586B
TurbineAmqpApplication.java 564B
UserClient.java 553B
HystrixTurbineApplication.java 545B
EurekaServerApplication.java 519B
ConfigServerApplication.java 514B
OrderServiceApplication.java 514B
ZuulGatewayApplication.java 495B
UserClientFallback.java 476B
UserOrderFallback.java 456B
CloudGatewayApplication.java 430B
ConfigClientApplication.java 428B
EurekaFeignHystrixApplicationTests.java 368B
HystrixDashboardApplicationTests.java 364B
HystrixTurbineApplicationTests.java 360B
EurekaRibbonApplicationTests.java 356B
ConfigServerApplicationTests.java 356B
OrderServiceApplicationTests.java 356B
EurekaServerApplicationTests.java 356B
ConfigClientApplicationTests.java 356B
EurekaFeignApplicationTests.java 354B
UserServiceApplicationTests.java 354B
ZuulGatewayApplicationTests.java 354B
ApiGatewayApplicationTests.java 344B
LICENSE 1KB
master 144B
master 130B
master 41B
master 41B
README.md 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
mvnw 6KB
共 144 条
- 1
- 2
资源评论
九转成圣
- 粉丝: 5186
- 资源: 2962
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 章节1:Python入门视频
- 无需样板的 Python 类.zip
- ESP32 : 32-bit MCU & 2.4 GHz Wi-Fi & BT/BLE SoCs
- 博物馆文博资源库-JAVA-基于springBoot博物馆文博资源库系统设计与实现
- 旅游网站-JAVA-springboot+vue的桂林旅游网站系统设计与实现
- 小说网站-JAVA-基于springBoot“西贝”小说网站的设计与实现
- 游戏分享网站-JAVA-基于springBoot“腾达”游戏分享网站的设计与实现
- 学习交流-JAVA-基于springBoot“非学勿扰”学习交流平台设计与实现
- EDAfloorplanning
- 所有课程均提供 Python 复习部分.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功