Eureka作为SpringCloud的常用组件,主要负责服务的注册、发现、负载、熔断、降级等。SpringCloud中,任何一个服务都不能直接调用,而是通过注册中心Eureka来调用。Eureka采用了C/S的架构模式,微服务通过Eureka的客户端向Eureka服务器注册服务,并维持心跳。Eureka的组成包括了Eureka Client和Eureka Server。
下面通过案例描述Eureka的使用方式。
1.新建SpringBoot项目命名为springcloudeureka,并导入相关依赖。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> </dependency> </dependencies> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
<!-- springcloud依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.该项目下新建module,命名为01eureka,pom文件中导入相关依赖,该模块负责Eureka Server。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>
接下来在resource文件夹下创建application.yml配置文件,设置eureka server端口,服务注册地址等。
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
创建SpringbootEurekaApplication启动类,并添加@EnableEureka注解。
@SpringBootApplication @EnableEurekaServer public class SpringBootEurekaApplication { public static void main(String[] args) { SpringApplication.run(SpringBootEurekaApplication.class,args); } }
启动后浏览器中输入地址:http://localhost:8761/即可访问到Eureka Server。
2.新建module命名为02client,添加eureka client依赖。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies>
创建application.yml配置文件,该服务命名为client。
eureka: client: service-url: defaultZone: http://localhost:8761/eureka spring: application: name: client
接下来创建启动类,加上@EnableEurekaClient注解。
@SpringBootApplication @EnableEurekaClientpublic class ClientApplication { public static void main(String[] args) { SpringApplication.run(ClientApplication.class,args); } }
启动该模块,通过访问eureka server即可看到已注册服务。
原文:https://www.cnblogs.com/menbo/p/13380795.html