环境说明
SpringBoot 2.2.11.RELEASE
SpringCloud Hoxton.SR8
构建工具maven
该教程为SpringCloud服务发现Eureka客户端示例,如果想看所有合集请关注公众号 「一个java菜鸟程序员」,然后通过菜单栏中的 「java -> SpringCloud」 查看所有教程。
user项目构建
该项目为服务发现的客户端,通过将自己注册到Eureka服务端和从Eureka获取服务。
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ys</artifactId>
<groupId>com.yishu.ms</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>user</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
启动类
@SpringBootApplication
@EnableEurekaClient
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class,args);
}
}
与Eureka作为服务端不一样的是,我们这里是作为客户端,所以增加 「@EnableEurekaClient」注解即可。
配置文件
spring:
application:
name: user-server
eureka:
client:
service-url:
defaultZone: http://root:root@eureka-1:8761/eureka/,http://root:root@eureka-2:8762/eureka/,http://root:root@eureka-3:8763/eureka/
server:
port: 8000
因为之前的Eureka服务端有设置账号和密码,所以Eureka的注册地址中需要增加 「root:root@」 相关配置,其配置格式为 「http://{user}:{password}@{hostname}:{port}/eureka/」
启动服务
启动Eureka的注册中心服务,然后再启动user项目。通过 「http://eureka-1:8761/」 我们进入Eureka的管理页面可以看到如下图的内容:
从控制面板中我们可以看到有两个服务,一个是Eureka的服务注册中心,另一个是我们的USER-SERVER服务。同样我们可以通过编码的方式查看服务列表:
@RestController
@RequestMapping("discovery")
public class DiscoveryClientController {
@Autowired
private DiscoveryClient discoveryClient;
/**
* 获取服务列表
* @return
*/
@GetMapping("services")
public Object get(){
return discoveryClient.getServices();
}
}
访问 「http://user-1:8000/discovery/services」 我们可以看到如下内容:
["eureka-server","user-server"]
需要注意的是,这里的 「DiscoveryClient」 该类是SpringCloudCloud抽象的服务发现类,类的全名为:「org.springframework.cloud.client.discovery.DiscoveryClient」 。它是SpringCloud对服务发现的一个抽象接口,而我们的Eureka只是不过是服务发现的一种实现,例如我们还可以使用Alibaba Nacos 作为服务注册中心。
对于SpringCloud的理解并不能把它当做就是SpringCloud Netflix 或者是SpringCloud Alibaba,SpringCloud提供的微服务的一种抽象,它定义了服务发现和注册,网关等等一系列接口,然后其他厂商提供了实现,很类似java EE中的各种规范,然后其他厂商实现一样。
工程代码地址
可以通过下面方式下载本章节示例代码:
git clone -b eureka-client https://gitee.com/zengchao_workspace/ys.git
欢迎关注公号:「一个java菜鸟程序员」 ,本公众号会不定期更新各类文章,欢迎订阅观看谢谢!
原文始发于微信公众号(一只菜鸟程序员):SpringCloud-Eureka服务发现-H版
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73131.html