Spring Cloud微服务----运维
Spring Cloud微服务----运维
相关概念:
分布式:将集中部署的架构进行分离部署
高可用:1.后端服务器
2.代理服务
3.集群
4.负载均衡
Eureka的基本架构:
Eureka集群原理说明
# 提前安装好maven
#安装Git
yum -y install git
git clone http://github.com/luojunyong/spring-cloud-examples.git
cd spring-cloud-examples/eureka-producer-consumer/spring-cloud-eureka/
#配置注册中心
vim src/main/resources/application.properties
spring.application.name=spring-cloud-eureka #spring应用的名字
server.port=8000 #服务端口
eureka.client.register-with-eureka=ture #改为true #当前应用是否注册到注册中心
eureka.client.fatch-registry=true #改为true #当前应用是否从注册中心获取信息
eureka.client.serviceUrl.defaultZone=http://192.168.200.235:8000/eureka/ #注册中心地址,改为本机ip
#打包
mvn clean package
java -jar target/spring-cloud-eureka-0.0.1-SNAPSHOT.jar
http://192.168.200.235:8000 #可以访问
#注册中心集群
cd spring-cloud-examples/eureka-producer-consumer/spring-cloud-eureka/
vim src/main/resources/application.properties
eureka.client.serviceUrl.defaultZone=http://192.168.200.235:8000/eureka/,eureka.client.serviceUrl.defaultZone=http://192.168.200.236:8000/eureka/ #把第二台主机IP加进去
在第二台主机上编辑配置
cd spring-cloud-examples/eureka-producer-consumer/spring-cloud-eureka/
vim src/main/resources/application.properties
#与第一台一样
mvn clean package #两台都要执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 生产者
1.114
cd spring-cloud-examples/eureka-producer-consumer/spring-cloud-producer/
vim src/main/resources/application.properties
eureka.client.serviceUrl.defaultZone=http://192.168.200.235:8000/eureka/,http://192.168.200.236:8000/eureka/
vim src/main/java/com/neo/controller/HelloController.java
this is first message\n" #只修改这一行
mvn clean package
1.115 #指明注册中心
cd spring-cloud-examples/eureka-producer-consumer/spring-cloud-producer/
vim src/main/resources/application.properties
eureka.client.serviceUrl.defaultZone=http://192.168.200.235:8000/eureka/,http://192.168.200.236:8000/eureka/
vim src/main/java/com/neo/controller/HelloController.java
this is second message\n";
mvn clean package
java -jar target/spring-cloud-producer-0.0.1-SNAPSHOT.jar #两台主机都要运行,在spring-cloud-producer目录下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 消费者
#1.114开另外的终端,之前的已经开启的jar不能断
cd spring-cloud-examples/eureka-producer-consumer/spring-cloud-consumer/
vim src/main/resources/application.properties
eureka.client.serviceUrl.defaultZone=http://192.168.200.235:8000/eureka/,http://192.168.200.236:8000/eureka/
curl http://192.168.200.235:9000/hello?name=abc #通过注册中心调用生产者
hello abc,this is first message #返回的消息
mvn clean package
java -jar target/spring-cud-consumer-0.0.1-SNAPSHOT.jar
curl http://192.168.200.235:9001/hello/Xx #轮询返回消息
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 熔断器消费者
cd spring-cloud-examples/spring-cloud-hystrix/spring-cloud-consumer-hystrix/
vim src/main/resources/application.properties
eureka.client.serviceUrl.defaultZone=http://192.168.200.235:8000/eureka/,http://192.168.200.236:8000/eureka/
mvn clean package
java -jar target/spring-cloud-consumer-hystrix-0.0.1-SNAPSHOT.jar
1
2
3
4
5
2
3
4
5
# 网关zuul
cd spring-cloud-examples/spring-cloud-zuul/spring-cloud-zuul/
vim src/main/resources/application.properties
eureka.client.serviceurl.defaultZone=http://192.168.200.235:8000/eureka/,http://192.168.200.236:8000/eureka/
mvn clean package
java -jar target/spring-cloud-zuul-1.0.0.BUILD-SNAPSHOT.jar
curl http://192.168.200.235:8888/spring-cloud-producer/hello?name=abc\&token=aa
1
2
3
4
5
6
2
3
4
5
6
链路追踪
span:调用记录 请求去向 请求处理路线
在每个节点都放置span,然后将各个span链接起来组成trace
1.耗时分析 对响应时间较长的节点进行专项优化
2.根据trace描绘出微服务系统的拓扑图 使微服务系统感知性增强
#可以通过图形界面查看微服务的延迟情况以及各个微服务的依赖情况
cd spring-cloud-examples/spring-cloud-sleuth-zipkin/zipkin-server/
vim src/main/resources/application.yml
defaultZone: http://192.168.200.235:8000/eureka/,http://192.168.200.236:8000/eureka/
mvn clean package
java -jar target/zipkin-server-1.0.0.BUILD-SNAPSHOT.jar
#上述完成之后访问注册中心
cd /root/spring-cloud-examples/spring-cloud-sleuth-zipkin/spring-cloud-zuul/
vim src/main/resources/application.yml
zipkin:
base-url: http://192.168.200.235:9000
percentage: 1.0 #数据采集比例 1.0代表100% 0.1代表%10
serviceUrl:
defaultZone: http://192.168.200.235:8000/eureka/,http://192.168.200.236:8000/eureka/
mvn clean package
java -jar target/spring-cloud-zuul-1.0.0.BUILD-SNAPSHOT.jar
cd spring-cloud-examples/spring-cloud-sleuth-zipkin/spring-cloud-producer/
vim src/main/resources/application.yml
zipkin:
base-url: http://192.168.200.235:9000
serviceUrl:
defaultZone: http://192.168.200.235:8000/eureka/,http://192.168.200.236:8000/eureka/
mvn clean package
java -jar target/spring-cloud-producer-1.0.0.BUILD-SNAPSHOT.jar
curl http://192.168.200.235:8888/producer/hello?name=aaaa #产生浏览记录
然后访问192.168.200.235:9000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# spring boot cloud微服务监控
cd /root/spring-cloud-examples/spring-boot-admin-eureka/spring-cloud-eureka/
vim src/main/resources/application.yml
#如果有注册中心,可以修改IP和端口为注册中心的IP和端口
mvn spring-boot:run
访问本机IP:8761
#运行一个生产者
cd spring-cloud-examples/spring-boot-admin-eureka/spring-cloud-producer
vim src/main/resources/application.yml
#同上如果有注册中心可以修改IP地址
mvn spring-boot:run
cd spring-cloud-examples/spring-boot-admin-eureka/spring-cloud-producer-2/
vim src/main/resources/application.yml
#同上
mvn spring-boot:run
#监控
cd spring-cloud-examples/spring-boot-admin-eureka/spring-boot-admin-server/
vim src/main/resources/application.yml
host: smtp.qq.com
username: a1950828718@foxmail.com
password: ztrbuylzfhbveeaa #邮箱授权码
from: a1950828718@foxmail.com
to: a1950828718@foxmail.com
mvn spring-boot:run
访问ip:8000
然后停掉一个producer就会发送报警邮件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27