注册中心——Eureka
Posted dbc0801
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注册中心——Eureka相关的知识,希望对你有一定的参考价值。
Eureka服务端
Eureka服务端是一个可以通过Spring Boot微服务来实现,引入Eureka相关依赖后,简单的配置yml文件和编写主启动类,通过显示声明Eureka服务端来生成一个服务注册中心。
<dependencies> <!--eureka-server--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies>
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称
client:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
defaultZone: http://localhost:7001/eureka/ # 表示向哪个注册中心注册当前服务,如果只有一个Eureka,填写自己的地址,如果搭建集群,就填写除自己之外的其它Eureka地址。
@EnableEurekaServer # 标识位Eureka服务端 @SpringBootApplication public class EurekaServer { public static void main(String[] args) { SpringApplication.run(EurekaServer.class, args); } }
向Eureka注册服务
导入相关的pom依赖,编写yml配置文件,注册进Eureka,将该服务标识为Eureka客户端。
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> </dependencies>
spring:
application:
name: cloud-consumer-order # 很重要,后期会通过服务名称来作为调用服务的依据。在搭建微服务集群时,相同的微服务的名称保持一致。在标识RestTemplate为LoadBalance之后,即可完成集群搭建并实现负载均衡。
eureka:
client:
#表示是否将自己注册进EurekaServer默认为true。
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
fetchRegistry: true
service-url:
#单机版,若为Eureka集群,仅需要将Eureka的地址全部填写,并以`,`分隔即可。
defaultZone: http://localhost:7001/eureka
@EnableEurekaClient # 标识为Eureka客户端。 @SpringBootApplication public class Payment { public static void main(String[] args) { SpringApplication.run(Payment.class, args); } }
远程调用
可以使用RestTemplate来远程调用微服务。首先向Spring容器中注册RestTemplate。
@Configuration public class MainConfiguration { @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } }
@RestController public class OrderController { private static final String URL = "http://CLOUD-SERVICE-PAYMENT"; # 这里的URL就是之前Provider提供方的服务名称,在yml文件中进行配置。 @Resource private RestTemplate restTemplate; @GetMapping("/consumer/list") public CommonResult list(){ return restTemplate.getForObject(URL+"/order/list", CommonResult.class); } }
以上是关于注册中心——Eureka的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端Eureka 服务信息Eureka 发现管理Eureka 安全配置Eureka-HA(高可用) 机制Eur(代码片段
注册中心 Eureka 源码解析 —— 调试环境搭建(含源码)