SpringCloud-Eureka服务发现-H版

SpringCloud-Eureka服务发现-H版

环境说明

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的管理页面可以看到如下图的内容:

SpringCloud-Eureka服务发现-H版
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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!