SpringCloud03—服务治理:SpringCloud Eureka

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
spring-boot-starter-parent

2.5.1

org.springframework.cloud

spring-cloud-starter-eureka

1.4.7.RELEASE

org.springframework.cloud

spring-cloud-dependencies

2020.0.2

pom

import

接着创建一个接口HelloController

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class HelloController {

private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

@RequestMapping(value = “/hello”, method = RequestMethod.GET)

public String index() {

return “Hello SpringCloud”;

}

}

然后,在主类中通过加上@EnableDiscoveryClient 注解,激活 Eureka中的DiscoveryClient实现(自动化配置,创建DiscoveryClient接口针对Eureka客户端的EurekaDiscoveryClient实例),才能实现上述Controller中对服务信息的输出。

@EnableDiscoveryClient

@SpringBootApplication

public class HelloServiceApplication {

public static void main(String[] args) {

SpringApplication.run(HelloServiceApplication.class, args);

}

}

最后,我们需要在 application.properties 配置文件中,通过spring.application.name属性来为服务命名,比如命名为hello-service。

再通过eureka.client.serviceUrl.defaultzone属性来指定服务注册中心的地址,这里我们指定为之前构建的服务注册中心地址,完整配置如下所示:

spring.application.name=hello-service

注册服务的时候使用服务的ip地址

eureka.instance.prefer-ip-address=true

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

通过访问Eureka的信息面板,在Instances currently registered with Eureka一栏中看到服务的注册信息。

SpringCloud03—服务治理:SpringCloud Eureka_第1张图片

3.5 高可用注册中心


在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对于微服务如此,对于服务注册中心也一样。但是到本节为止,我们一直都在使用单节点的服务注册中心,这在生产环境中显然并不合适,我们需要构建高可用的服务注册中心以增强系统的可用性。

Eureka Server的设计一开始就考虑了高可用问题,在 Eureka的服务治理设计中,所有节点即是服务提供方,也是服务消费方,服务注册中心也不例外。在单节点的配置中,我们设置过下面这两个参数,让服务注册中心不注册自己:

是否向注册中心注册自己

eureka.client.register-with-eureka=false

是否从Eureka上获取服务的注册信息,自己就是注册中心,

本身职责就是维护服务实例,并不需要去检索服务

eureka.client.fetch-registry=false

Eureka Server 的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。下面我们就来尝试搭建高可用服务注册中心的集群。可以在本章第3.3节中实现的服务注册中心的基础之上进行扩展,构建一个双节点的服务注册中心集群。

server.port=1111

spring.application.name=eureka-server

#

你可能感兴趣的:(程序员,spring,cloud,eureka,java)