Myike 的个人博客 Myike 的个人博客

记录精彩的程序人生

目录
Eureka入门
/  

Eureka入门

作为Spring-cloud微服务家族中的一部分,Eureka基于Netflix Eureka做了二次封装,主要的功能则是服务治理;下面先入个门吧。

Step1: 搭建服务注册中心

依赖:

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

紧接着就是在启动类上加上相应的注解@EnableEurekaServer,标识开始eureka功能,下面做一些配置

server.port=1111

eureka.instance.hostname=localhost

eureka.client.service-url.defaultZone=http://localhost:1111/eureka/

#关闭eureka自己作为客户端向自己注册

eureka.client.register-with-eureka=false

eureka.client.fetch-registry=false

#关闭注册中心保护机制

eureka.server.enable-self-preservation=false

启动并访问http://localhost:1111/,便可看到eureka的管理页面,eureka配置完成,接下来需要测试一下能否想eureka中注册服务,如下:

Step2:新建一个模块作为服务注册进eureka

#首先引入eureka客户端的依赖

  1. 在pom中配置:
<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  1. 配置application.properties

spring.application.name=boot-web

server.port=8081

eureka.client.register-with-eureka=true #将自身注册进eureka

eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/ #eureka注册中心的地址

  1. 配置启用服务注册与发现

在项目启动类上加入相应注解@EnableDiscoveryClient即可,启动后便可在eureka管理页面看到注册的应用列表

  1. 提供对外的接口,供消费端使用

Step3: 服务的消费--新建消费模块

#同样也是首先引入eureka客户端的依赖

  1. 在pom中配置:
<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
  1. 配置application.properties

spring.application.name=ribbon-consumer

server.port=9000

eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/ #eureka注册中心的地址

  1. 配置启用服务注册与发现

在项目启动类上加入相应注解@EnableDiscoveryClient即可,启动后便可在eureka管理页面看到注册的应用列表

  1. 远程服务的调用

eureka的远程服务调用需要用到Ribbon提供的api,所以需要注入相应的工具类,如下:

@Bean

@LoadBalanced

RestTemplate restTemplate() {

return new RestTemplate();

}

这样便可以使用ribbon提供的功能,@LoadBalanced表明ribbon会自动对客户端进行负载均衡,下面就是在具体的地方调用远程的服务了

@Autowired

RestTemplate restTemplate;

#服务的调用

public String helloService() {

return restTemplate.getForEntity("http://boot-web/hello/tuzhiwu", String.class).getBody();

}

那么eureka的工作原理是什么呢:


标题:Eureka入门
作者:Myike
地址:https://www.tzwyun.top/articles/2020/04/11/1586590325055.html