黑马程序员技术交流社区
标题:
服务治理:Eureka 服务注册与发现
[打印本页]
作者:
624694683
时间:
2018-12-17 09:25
标题:
服务治理:Eureka 服务注册与发现
服务中心的搭建
添加依赖
<!--eureka-server服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
配置 application.yaml
server:
port: 7003
eureka:
instance:
#eureka 服务端的实例名称
hostname: eurekaserver7003
client:
#false代表不向注册中心注册自己
register-with-eureka: false
#表示自己就是一个注册中心,职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
#设置与EurekaServer 交互的地址查询服务和注册中心的地址----单机版
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
在启动类上添加注解
@EnableEurekaServer
@SpringBootApplication
public class EurekaServer_7002 {
public static void main(String[] args) {
SpringApplication.run(EurekaServer_7002.class);
}
}
服务注册
添加依赖
<!-- 将微服务provider侧注册进eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
添加注册地址
#将客户端注册进Eureka_7001服务列表中
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka/
在启动类上添加注解
@SpringBootApplication
@EnableEurekaClient
public class Provider_Dept_8001 {
public static void main(String[] args) {
SpringApplication.run(Provider_Dept_8001.class);
}
}
给客户端也就是服务端设置别名和显示ip信息
eureka:
instance:
instance-id: providerdept8001
prefer-ip-address: true #访问路径可以显示IP地址
info 信息的构建
<build>
<finalName>SpringCloudParent</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimit>$</delimit>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
info:
app.name: microservicecloud
company.name: microservicecloud
build.artifactId: $project.artifactId$
build.version: $project.version$
服务发现
在Controller中注入
/**
* 服务发现
*/
@Autowired
@Qualifier("discoveryClient")
private DiscoveryClient client;
@RequestMapping(value = "/dept/discovery", method = RequestMethod.GET)
public Object discovery()
{
List<String> list = client.getServices();
System.out.println("**********" + list);
List<ServiceInstance> srvList = client.getInstances("PROVIDERDEPT_8001");
for (ServiceInstance element : srvList) {
System.out.println(element.getServiceId() + "\t" + element.getHost() + "\t" + element.getPort() + "\t"
+ element.getUri());
}
return this.client;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2