这是我参与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的版本。
<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依赖包。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
复制代码
然后写一个启动类Launcher
,目的是把服务启动起来,包含的内容如下。
@SpringBootApplication
@EnableEurekaServer
public class Launcher {
public static void main(String[] args) {
SpringApplication.run(Launcher.class,args);
}
}
复制代码
application.yml
的配置信息如下。
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
复制代码
此时启动服务,浏览器上访问URLhttp://{yourhost}:8761
,如下图所示,表示服务注册中心启动成功,能提供服务注册和发现的功能。
2.3 服务提供方
在有了服务注册中心后,我们可以启动一个服务去注册到服务注册中心,这些服务都统统成为Eureka Client,所以要引入Client相关的依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
复制代码
我们提供一个简单的greeting
api接口。
public interface GreetingController {
@GetMapping("/greeting")
String greeting();
}
复制代码
然后在启动类Launcher
去实现这个接口。
@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
的内容如下。
spring:
application:
name: spring-cloud-eureka-client
server:
port: 0
eureka:
client:
serviceUrl:
defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
instance:
preferIpAddress: true
复制代码
然后启动这个服务,观察Eureka的服务管理页面,可以看到有服务注册成功。
此时,服务的提供方也准备好了,接下来就需要去消费这个服务了。
少年,没看够?点击石头的主页,随便点点看看,说不定有惊喜呢?欢迎支持点赞/关注/评论,有你们的支持是我更文最大的动力,多谢啦!