服务注册与发现 上手实践Spring Cloud Eur

这是我参与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的版本。

1
2
3
4
5
6
7
8
9
10
11
maven复制代码<properties>
<version.spring-cloud>2020.0.1</version.spring-cloud>
</properties>

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${version.spring-cloud}</version>
<type>pom</type>
<scope>import</scope>
</dependency>

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

2.2 注册中心

我们新建一个子模块管理Eureka的注册中心服务,在这里要引入Eureka的Server依赖包。

1
2
3
4
maven复制代码<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

然后写一个启动类Launcher,目的是把服务启动起来,包含的内容如下。

1
2
3
4
5
6
7
8
java复制代码@SpringBootApplication
@EnableEurekaServer
public class Launcher {

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

application.yml的配置信息如下。

1
2
3
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相关的依赖。

1
2
3
4
maven复制代码<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

我们提供一个简单的greeting api接口。

1
2
3
4
5
java复制代码public interface GreetingController {

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

然后在启动类Launcher去实现这个接口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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的内容如下。

1
2
3
4
5
6
7
8
9
10
11
12
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
此时,服务的提供方也准备好了,接下来就需要去消费这个服务了。


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

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%