springcloud(Eureka)一
1、新建maven项目 springcloud-eureka-7001
2、添加相关依赖
<dependencies>
<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>
<optional>true</optional>
<scope>true</scope>
</dependency>
</dependencies>
3、修改application.yml
spring:
devtools:
restart:
enabled: true
additional-paths: src/main/java,src/main/resources
server:
port: 7001
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false #是否向eureka服务端注册自己
fetch-registry: false #false表明自己为注册中心
service-url: #监控页面
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
4、新建启动类
5、测试访问http://localhost:7001/
6、注册服务到eurekaserver
- 在springcloud-provider-dept-8001的pom.xml中添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
- 在springcloud-provider-dept-8001的application.yml中添加注册配置信息
#eureka的配置,服务注册到哪里
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka/
-
在springcloud-provider-dept-8001的启动类上添加@EnableEurekaClient
-
启动springcloud-provider-dept-8001,再次访问http://localhost:7001/, 显示服务已经注册到eureka中
-
可以通过如下配置修改页面上Status下的显示信息
eureka:
instance:
instance-id: springcloud-provider-dept-8001
-
配置info信息(有错误信息,很不友好)我们可以自定义配置显示信息
操作步骤在springcloud-provider-dept-8001的pom.xml中添加依赖
<!--完善监控信息--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
在springcloud-provider-dept-8001的application.yml中添加监控配置信息
#info信息 info: app.name: 这是app的名字,可以自定义 company.name: 这是公司的名字,同样可以自定义
重启springcloud-provider-dept-8001,再次点击
7、服务发现DiscoveryClient
- 在springcloud-provider-dept-8001中的DeptController添加
@Autowired
private DiscoveryClient discoveryClient;
@GetMapping("/discovery")
public DiscoveryClient discovery(){
System.out.println("==========================================");
//获取微服务列表的清单
discoveryClient.getServices().forEach(System.out::println);
System.out.println("==========================================");
//得到具体的微服务信息,通过具体的微服务id
List<ServiceInstance> instances = discoveryClient.getInstances("SPRINGCLOUD-PROVIDER-DEPT");
for (ServiceInstance instance : instances) {
System.out.println(
instance.getHost() + "\t" +
instance.getPort() + "\t" +
instance.getUri() + "\t" +
instance.getServiceId() + "\t"
);
}
return this.discoveryClient;
}
- 在springcloud-provider-dept-8001的启动类添加注解@EnableDiscoveryClient(好像不加也可以)
- 访问http://localhost:8001/dept/discovery
同时后台打印出如下信息
8、eureka集群(三台机器)
由于之前有一台,所以现在新建两台即可。
-
修改hosts文件,为了演示三台集群
-
修改三台机器的application.yml
-
访问http://eureka7001.com:7001/ ,显示如下代表集群搭建成功(访问三台的任意一个都可以看到另外两台)
9、在eureka集群注册服务
-
在springcloud-provider-dept-8001的application.yml修改如下配置
-
访问http://eureka7001.com:7001/ ,可以看到如下信息