springcloud之服务集群注册与发现 Eureka

前言

1:对于能提供完整领域服务接口功能的RPC而言,例如;gRPC、Thrift、Dubbo等,服务的注册与发现都是核心功能中非常重要的一环,使得微服务得到统一管理。

2:在分布式领域中有个著名的CAP理论;一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),这三个要素在分布式系统中,最多满足两个,不可能三者兼顾。

3:通常我们在使用dubbo时zookeeper作为注册中心以选主配置为核心,保证CP特性,即任何时刻对 Zookeeper 的访问请求能得到一致的数据结果,同时系统对网络分割具备容错性,但是它不能保证每次服务请求的可用性。

4:而 Spring Cloud Netflix 在设计 Eureka 时遵守的就是 AP 原则,因为对于服务发现而言,可用性比数据一致性显得尤为重要。
案例说明

案列使用版本如下

1:jdk 1.8

2:Spring Boot 2.0.6.RELEASE

3:Spring Cloud Finchley.SR2
新建应用启动类

EurekaServerApplication.java | 三组node代码一致,只需要一个普通的springboot添加@EnableEurekaServer即可启动

java 复制代码
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

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

}

application.yml | node1 指向另外两台服务,registerWithEureka、fetchRegistry和单实例不同需要配置为true

yaml 复制代码
spring:
  application:
    name: demo-eureka-server

server:
  port: 8081

eureka:
  instance:
    hostname: node01
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://node02:8082/eureka/,http://node03:8083/eureka/

application.yml | node2 指向另外两台服务

yaml 复制代码
spring:
  application:
    name: demo-eureka-server

server:
  port: 8082

eureka:
  instance:
    hostname: node02
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://node03:8083/eureka/,http://node01:8081/eureka/

application.yml | node3 指向另外两台服务

yaml 复制代码
spring:
  application:
    name: demo-eureka-server

server:
  port: 8083

eureka:
  instance:
    hostname: node03
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://node01:8081/eureka/,http://node02:8082/eureka/

测试验证

1:配置host;127.0.0.1 node01 node02 node03

2:分别启动node1、node2、node3

3:访问;http://localhost:8081/

好了到这里就结束了一偏概述告诉你SpringCloud是什么的学习,大家一定要跟着动手操作起来。需要源码的 可si我获取;

相关推荐
SuniaWang3 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
代码栈上的思考4 小时前
消息队列:内存与磁盘数据中心设计与实现
后端·spring
椎4956 小时前
Redis day02-应用-实战-黑马点评-短信登录
数据库·redis·spring
左左右右左右摇晃10 小时前
Java并发——死锁
java·开发语言·spring
一路向北·重庆分伦10 小时前
03:流量控制与熔断降级Sentinel+Hystrix
spring cloud
Memory_荒年10 小时前
当餐厅后厨也懂分布式:SpringBoot中的重试、限流、熔断与幂等的“四重奏”
java·后端·spring
一殊酒10 小时前
【Docker】常用命令大全及解析
docker·容器·eureka
心勤则明11 小时前
用 SpringAIAlibab 让高频问题实现毫秒级响应
java·人工智能·spring
gechunlian8811 小时前
Spring Security 官网文档学习
java·学习·spring
小江的记录本11 小时前
【Bean】JavaBean(原生规范)/ Spring Bean 【重点】/ 企业级Bean(EJB/Jakarta Bean)
java·数据库·spring boot·后端·spring·spring cloud·mybatis