一、SpringCloud之Eureka注册中心

本文详细介绍了Spring Cloud Eureka作为服务注册中心的使用,包括版本对应、服务端与客户端配置、集群搭建,以及Eureka的自我保护机制。同时,讨论了Eureka 2.0停更的情况,并提出了Zookeeper、Consul和Nacos作为替代方案,提供了相应的集成与配置指导。
摘要由CSDN通过智能技术生成

   

目录

Spring Cloud版本

Eureka的准备工作

 安装Eureka服务端

 注册Provider到Eureka

 注册Consumer到Eureka

  Eureka集群

 配置Provider的集群

Eureka的其他说明

      Eureka中Web-UI显示信息完善

        DiscoveryClient对象的使用

          @EnableDiscoveryClient注解的使用

Eureka的自我保护

Eureka2.0停更

替代方案1:Zookeeper

       改写Provider

       改写Consumer

替代方案2:Consul

替代方案3:Nacos


 

 

 

   SpringCloud很多的组件都已经停止更新或者进入维护阶段了,所以是时候应该学习一下这些逐渐的替代方案了。

    今天从先从Eureka开始学习,用Eureka服务注册中心替代方案。

Spring Cloud版本

        Spring Cloud 和Spring Boot 的版本对应情况:https://spring.io/projects/spring-cloud#overview

        更具体的对应情况说明:https://start.spring.io/actuator/info (JSON数据)

Eureka的准备工作

         Eureka是一个Java编写的注册中心,设计原则是AP(高可用、网络),这就意味着舍弃了数据的一致性,所以

         Eureka适用于需要高度响应的分布式环境,并不适用于数据严格一致的分布式环境。

         有关于CAP的文章,可以查看阮老师的文章:点击查看

         在开始Eureka之前,先做一个RestTemplate的准备工作,首先建立一个Provider项目,就是简单的SpringMVC项目,

         暴露一个接口就可以的,例如:

@Value("${server.port}")
private Stirng serverPort;

@GetMapping("payInfo")
public String payInfo(){
    return "返回一个信息!" + serverPort;
}

         紧接着用另外一个项目(Consumer)去访问这个接口,例如:

@Resource
private RestTemplate restTemplate;

/**
 *   这里要指向提供者接口
 */
private  static final String BASE_URL = "http://localhost:8001";

@GetMapping("pay")
public String payInfo(){
    return restTemplate.getForObject("BASE_URL" + "/payInfo",String.class);
}

        配置RestTemplate如下:

@Bean
public RestTemplate restTemplate(){
    return new RestTemplate();
}

       然后访问Consumer,就可以通过Consumer来访问到Provider,但是这有个缺点就是Provider的地址是固定写死的,使用

       注册中心可以解决这个问题。

 安装Eureka服务端

       Eureka不需要专门去安装软件,直接在项目中创建一个项目,导入Eureka的包就可以使用Eureka。

<dependency>
    <groudId>org.springframework.cloud</groudId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

       这个包就是Eureka的服务端,导入包之后,需要对Eureka进行一些配置:

server: 
  port: 7001
eureka:
  instance:
    hostname: localhost
  client:
    # 不把自己注册到Eureka中
    register-with-eureka: false
    # 不去注册中心检索服务
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

      上面两个设置false的参数作用就是用来说明,当前是服务端,不需要将自己作为服务注册到注册中心,也不需要去检索注册

      中心里面用拥有的服务。

      紧接着些一个启动类,就可以完美的启动Eureka的服务端了。

@SpringBootApplicaiton
@EnableEurekaServer
public class EurekApplication{

    public static void main(String[] args){
        SpringApplication.run(EurekaApplication.class,args);
    }
}

        @EnableEurekaServer的作用就是启用Eureka的服务端,启动这个main方法就可以启动Eureka服务了。

        启动之后可以直接访问http://localhost:7001就可以看到Eureka的服务界面了,他是一个web-UI

       Eureka启动成功

        可以看到当前是没有实例可用的,也就是没有服务注册到Eureka上面,接下来就让之前编写的Provider注册上来。

        !关于这个页面的具体的一些细节,以及Eureka的一些扩充内容,后面再记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值