欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

注册服务提供者

程序员文章站 2022-06-13 20:22:16
...

在完成了服务注册中心的搭建之后,接下来我们尝试将个既有的 Spring Boot 应用加 入 Emeka 的服务治理体系中去。可以使用上一章中实现的快速入门工程来进行改造, 将其作为一个微服务应用向服务 注册中心发布自己。 首先, 修改 pom.xml, 增加 Spring Cloud Eureka 模块的依赖, 具体代 码如下所示:

<modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-core</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

接着, 改造/hello 请求处理接口, 通过注入 DiscoveryClient对象, 在日志中打印出服务的相关内容。

@RestController 
public class HelloController { 
    private final Logger logger = Logger.getLogger(getClass());
    @Autowired 
    private DiscoveryClient client;
    @RequestMapping(value = "/hello", method= RequestMethod.GET) 
    public String index() { 
        Service Instance instance = client.getLocalServiceinstance(); 
        logger.info("/hello, host:" + instance.getHost() + 
        ", service id:" +instance.getServiceid());
        return "Hello World";
    }
}

 

然后, 在主类中通过加上 @EnableDiscoveryClient 注解, ** Eureka 中的 DiscoveryClient 实现(自动化配置, 创建 DiscoveryClient 接口针对 Eureka 客户 端的 EurekaDiscoveryClient 实例), 才能实现上述 Controller 中对服务信息的输出。

@EnableDiscoveryClient 
@SpringBootApplication 
public class HelloApplication { 

    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }
}

最后 ,我们需要在 application.yml配置文件中,通 过 spring. application.name属性来为 服 务命名,比如命名 为 hello-service。 再通过 eureka.client. serviceUrl.defaultZone属性来指定服务注册中心的地址, 这里 我们指定为之前构建的服务注册中心地址, 完整配置如下所示:

spring.application.name=hello-service 
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

下面我们分别启 动服务注册中心以及这里改造后的hello-service 服务。 在hello-service服务控制台中,Tomcat启动之后,com.netflix.中scovery.DiscoveryClient 对象打印了该服务的注册信息 ,表示服务注册成功。

注册服务提供者

而此时在服务注册中心的控制台中,可以看到类似下面的输出,名为hello-service 的服务被注册成功了。

注册服务提供者

 

注册服务提供者

 

此版本比较旧只做学习参考

 

相关标签: 注册服务提供者