SpringCloud注册中心-Eureka

本文介绍了Spring Cloud Eureka作为服务注册与发现的组件,对比了它与Zookeeper的区别,重点在于Eureka遵循CAP中的AP原则,确保高可用性。搭建Eureka注册中心的步骤包括配置pom.xml、application.properties以及创建启动类。完成配置后,通过浏览器可以访问Eureka服务器的界面查看服务状态。

一.SpringCloudEureka简介

Spring-Cloud Euraka是Spring Cloud系列中一个组件,它是对Netflix中的开源框架Euraka的集成,用于服务注册和发现。类似 Zookeeper、Consul等。

Eureka由多个instance(服务实例)组成,实例大体分为:Eureka Server和Eureka Client。

在实际项目中Eureka Clienth可细分为Service Provider(服务提供者)和Service Consumer(服务消费者)。

  • Eureka Server 提供服务注册和发现
  • Service Provider 服务提供方,将自身服务注册到Eureka,提供服务。
  • Service Consumer服务消费方,从Eureka获取注册服务列表,消费服务。
1.Eureka与zk的区别

在谈二者区别前先要了解CAP理论,详细可参考:http://www.ruanyifeng.com/blog/2018/07/cap.html

这里简单介绍下,CAP是一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance 类似于多机备份)

  • zk是CP,突出分布式一致性,对zk每次的请求都保证一致性的结果,但无法保证可用性,当zk正在选举时,zk不可提供服务。
  • Eureka 是AP,突出高可用可伸缩服务,可保证服务可提供服务,但无法保证每次请求的数据返回一致。

二.搭建Eureka注册中心

1.配置pom.xml
<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <!--   2.3.8版本boot支持cloud Hoxton.x 版本,更高的boot需要cloud Hoxton 以上才可  -->
   <version>2.3.8.RELEASE</version>
   <relativePath/>
</parent>

<dependencies>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    <version>2.2.8.RELEASE</version>
  </dependency>
</dependencies>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <!--   2.3.8版本boot支持cloud Hoxton.x 版本,更高的boot需要cloud Hoxton 以上才可 ,详情参考spring.io -->
      <version>Hoxton.SR11</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<build>
  <!--  jar或war包名称  -->
  <finalName>springcloud-eureka-server</finalName>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <!--   指定主入口   -->
        <mainClass>com.example.springcloud.eureka.EurekaServerApplication</mainClass>
      </configuration>
    </plugin>
  </plugins>
</build>
2.配置application.properties
# 应用名称
spring.application.name=eureka-server
# 配置动态切换
spring.profiles.active=dev
# 服务端口
server.port=8901
# eureka的主机名称
eureka.instance.hostname=eureka1
# 注册中心实例ID
eureka.instance.instance-id=${spring.application.name}:${eureka.instance.hostname}:${server.port}
# 客户端配置-注册中心访问地址, eureka1是在Hosts配置的映射,替代域名的作用。
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
# 客户端配置-是否将自身注册到eureka服务
eureka.client.register-with-eureka=true
3.添加Eureka启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer // 启用Eureka注册中心
@SpringBootApplication // springboot 核心配置
public class EurekaServerApplication {

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

}

三、启动测试

浏览器访问:http://eureka1:8901/ 显示如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值