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我获取;

相关推荐
憧憬成为java架构高手的小白5 小时前
黑马八股--spring框架学习
java·学习·spring
Nuanyt8 小时前
SSM 学习记录 第二部分 Spring整合Mybatis&Junit AOP核心概念 Spring事务管理 SpringMVC 请求与响应 Rest风格
java·spring·junit·mybatis·restful
米码收割机9 小时前
【SSM】Spring MVC_MyBatis SSM商城系统(源码+论文)【独一无二】
spring·mvc·mybatis
用户3126874877209 小时前
@Autowired 注入的是代理对象?Spring AOP 代理选择原理一次讲透
java·spring
小罗水10 小时前
第3章 从单体项目到 Spring Cloud 微服务
spring·spring cloud·微服务
Bug收容所11 小时前
12305项目学习day5
java·spring boot·redis·mysql·spring·rocketmq
lichuangcsdn11 小时前
【Spring AI 学习(三)】实现简单的对话
java·人工智能·学习·spring·spring ai
长不胖的路人甲11 小时前
Spring Bean 完整生命周期
java·spring·rpc
辰海Coding11 小时前
MiniSpring框架学习笔记-拦截器 :如何在方法前后进行拦截?
java·笔记·学习·spring·minispring
qq_185198691 天前
(Spring Bean + delegateExpression)实现http服务 的完整可运行项目
spring