服务注册与发现 | 上手实践Spring Cloud Eureka 和 Feign(二)

  • Post author:
  • Post category:其他

theme: scrolls-light

这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

上一篇文章《上手实践Spring Cloud Eureka 和 Feign(一)》讲到了服务注册与发现的简单概念,这篇文章直接上手实践Eureka,启动一个服务注册中心,以及将业务服务注册到这个中心上。

二、Eureka

Eureka作为Spring Cloud的服务注册中心,我们需要引入Spring Cloud相关的依赖,其次我们需要启动一个Eureka注册服务中心,最后为了验证服务注册的功能,需要启动一个web 服务注册到注册中心。

2.1 Eureka的Spring Cloud 依赖

首先,我们将创建一个新的 Maven pom 项目模块,并将Spring Cloud的的依赖放入,这个依赖将决定Spring Cloud 相关组件Starter的版本。

“`maven

2020.0.1

org.springframework.cloud

spring-cloud-dependencies

${version.spring-cloud}

pom

import

“` Spring Cloud 依赖的版本我用的比较新,根据实际工程选择合适的即可。

2.2 注册中心

我们新建一个子模块管理Eureka的注册中心服务,在这里要引入Eureka的Server依赖包。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> 然后写一个启动类Launcher,目的是把服务启动起来,包含的内容如下。 “`java @SpringBootApplication @EnableEurekaServer public class Launcher {

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

} `application.yml`的配置信息如下。 properties server.port=8761 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false “ 此时启动服务,浏览器上访问URLhttp://{yourhost}:8761`,如下图所示,表示服务注册中心启动成功,能提供服务注册和发现的功能。

screenshot-127-0-0-1-8761-1636959093343.png

2.3 服务提供方

在有了服务注册中心后,我们可以启动一个服务去注册到服务注册中心,这些服务都统统成为Eureka Client,所以要引入Client相关的依赖。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> 我们提供一个简单的greeting api接口。 “`java public interface GreetingController {

@GetMapping("/greeting")
String greeting();

} 然后在启动类`Launcher`去实现这个接口。 java @SpringBootApplication @RestController public class Launcher implements GreetingController {

@Autowired
@Lazy
private EurekaClient eurekaClient;

@Value("${spring.application.name}")
private String appName;

@Override
public String greeting() {
    return String.format(
        "Hello from '%s'!", eurekaClient.getApplication(appName).getName());
}

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

} “ 配置文件application.yml`的内容如下。

“`yml spring: application: name: spring-cloud-eureka-client

server: port: 0 eureka: client: serviceUrl: defaultZone: ${EUREKA_URI:http://localhost:8761/eureka} instance: preferIpAddress: true “` 然后启动这个服务,观察Eureka的服务管理页面,可以看到有服务注册成功。

screenshot-127-0-0-1-8761-1636959488655.png 此时,服务的提供方也准备好了,接下来就需要去消费这个服务了。


少年,没看够?点击石头的主页,随便点点看看,说不定有惊喜呢?欢迎支持点赞/关注/评论,有你们的支持是我更文最大的动力,多谢啦!


版权声明:本文为DynmicResource原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。