网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
eureka-server服务搭建:
application.yml配置文件
server:
port: 4010
spring:
application:
name: eureka-server
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
服务启动类
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApp {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApp.class, args);
}
}
user-server、order-server、message-server服务搭建:
user-server服务application.yml配置文件(其他两个相似)
server:
port: 22222
spring:
application:
name: user-server
eureka:
client:
service-url:
defaultZone: http://localhost:4010/eureka
## 开启hystrix.stream端点
management:
endpoints:
web:
exposure:
include: 'hystrix.stream'
user-server服务启动类(其他两个相似)
@SpringBootApplication
@EnableEurekaClient
// 开启Hystrix
@EnableHystrix
public class UserServerApp {
public static void main(String[] args) {
SpringApplication.run(UserServerApp.class, args);
}
}
user-server编写受hystrix保护控制器(其他两个相似)
@RestController
@RequestMapping(value = "/user")
public class UserController {
@GetMapping
@HystrixCommand(fallbackMethod = "fallback")
public String userDemo() {
return "user-98";
}
// 写两个方法是为了演示方法名称不同,hystrix dashboard会创建不同的circuit
@GetMapping("/demo1")
@HystrixCommand(fallbackMethod = "fallback")
public String userDemo1() {
return "user-98";
}
private String fallback() {
return "user-NaN";
}
}
turbine-server服务搭建:
application.yml配置文件
server:
port: 11111
spring:
application:
name: turbine-server
eureka:
client:
service-url:
defaultZone: http://localhost:4010/eureka
turbine:
## eureka中服务名称列表
app-config: order-server,user-server,message-server
## eureka集群名称,默认为default
cluster-name-expression: "'default'"
## 开启主机+端口组合聚合服务,默认情况下turbine会将统一主机下的服务聚合成一个服务来统计
combine-host-port: true
启动类,添加@EnableTurbine启动turbine
@SpringBootApplication// 开启turbine@EnableTurbinepublic class TurbineServerApp { public static void main(String[] args) { SpringApplication.run(TurbineServerApp.class, args); }}
hystrix-dashboard-server服务搭建:
application.yml配置文件
server: port: 55555eureka: client: service-url: defaultZone: http://localhost:4010/eureka ## 不注册 register-with-eureka: false
启动类,添加@EnableHystrixDashboard启动HystrixDashboard
@SpringBootApplication@EnableHystrixDashboardpublic class HystrixDashboardServerApp { public static void main(String[] args) { SpringApplication.run(HystrixDashboardServerApp.class, args); }}
2.2 服务启动
服务启动应先启动注册中心eureka-server再启动user-server、order-server、message-server服务,最后启动turbine-server和hystrix-dashboard-server。
启动完成之后,先查看eureka-server注册中心上服务是否注册正常
之后访问hystrix-dashboard-server服务的hystrix端点,确保看到如下hystrix dashboard界面
在hystrix dashboard中输入turbine-server提供的turbine.stream端点
初始进入的时候由于各个受hystrix保护的方法并未调用,因此未上报任何数据,所以需要调用各个接口触发数据上报。
之后看到如下界面,说明服务启动成功,整个监控服务整合完毕
2.3 注意事项
hystrix dashboard中展示的circuit数据,会根据方法名来创建,因此不管是不是同一个服务中,只要受hystrix保护的方法,如果方法名相同,将会被聚合到一起展示,这里指的注意哦!
此外不要理解成一个circuit会对应一个thread pools
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
4Spo65Rz-1715726501992)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!