该文章的截图全部来自于博主正在开发的springcloud脚手架项目,可能没有单独拿出来写一个项目那么清晰,若有不明白的地方,可以私信问博主。
如果仅需要在Admin 2.x中集成hystrix-dashboard,看“二.创建admin”部分的pom配置即可
一.创建eureka
创建maven项目
pom配置
<dependencies>
<!--eureka服务端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
启动项
@SpringBootApplication
@EnableEurekaServer //Eureka服务端的启动类
public class EurekaServer_7001 {
public static void main(String[] args){
SpringApplication.run(EurekaServer_7001.class,args);
}
}
application.yml
server:
port: 7001
spring:
application:
name: springcloud-config-eureka
eureka:
instance: #该名称是我设置的localhost的别名,有需要在C:\Windows\System32\drivers\etc\hosts 的最后一行添加127.0.0.1 eureka7001.com即可,与localhost等效
hostname: eureka7001.com #Eureka服务端的实例名称
client:
register-with-eureka: false #表示是否向eureka注册中心注册自己
fetch-registry: false #如果为false,则表示自己为注册中心
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
自此eureka配置完成,可以进入http://localhost:7001查看
二.创建admin
创建maven项目
pom配置
<dependencies>
<!--eureka-client,注册进入eureka后可以根据注册列表在admin中获取所有应用的数据-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--admin的服务端-->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--admin-hystrix-dashboard,在admin中集成dashboard-->
<!--如果仅需要在Admin 2.x中集成hystrix-dashboard,添加该配置即可-->
<dependency>
<groupId>nl.devillers</groupId>
<artifactId>spring-boot-admin-hystrix-dashboard</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
启动项
@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient //整合eureka的方案自动发现所有的注册过的服务
@EnableAdminServer
public class ServerAdminApplication {
public static void main(String[] args) {
SpringApplication.run(ServerAdminApplication.class, args);
}
}
application.yml
server:
port: 8830
#Eureka
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
instance:
instance-id: springcloud-admin-8830 #修改eureka上默认描述信息
spring:
application:
name: springcloud-admin
#info配置(这里不写也没事,相当于备注的作用)
info:
app.name: wch-springcloud
company.name: blog.wchstudy.com
运行之前配置的eureka发现admin已经注册进来了
自此Admin配置完成,可以进入http://localhost:8830查看,发现也根据eureka注册列表,获取到admin本身
三.创建一个应用测试
创建maven项目
pom配置
<dependencies>
<!--hystrix服务熔断-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--EUREKA依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--actuator完善监控信息-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
启动项
@SpringBootApplication
@EnableEurekaClient //在启动后自动注册到eureka中
@EnableDiscoveryClient //服务发现
@EnableCircuitBreaker //添加对熔断的支持
public class provider {
public static void main(String[] args){
SpringApplication.run(provider.class,args);
}
}
application.yml
server:
port: 8004
spring:
application:
name: springcloud-provider-test
#Eureka的配置(将服务注册到eureka中)
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
instance:
instance-id: springcloud-provider-test-8004 #修改eureka上默认描述信息
#info配置(这里不写也没事,相当于备注的作用)
info:
app.name: wch-springcloud
company.name: blog.wchstudy.com
#向admin展示详细信息
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: ALWAYS
controller
@RestController
@RequestMapping("/main")
public class testController {
@GetMapping("/get")
@HystrixCommand(fallbackMethod = "hystrixGet")
public String get(){
return "查询到了!查询到了!查询到了!";
}
//备选方案,这里必须添加,若没有hystrix机制,则无法触发hystrix-dashboard
public String hystrixGet(){
return "没有对应信息55555";
}
}
结束!可以运行了!!!!!运行springcloud-test后,访问http://localhost:8004/main/get,即可触发hystrix-dashboard!
最终效果图
若有需要可以参考博主正在写的一个springcloud工程: springcloud脚手架 期待一个赞!