0


Spring Cloud Eureka 服务注册和服务发现超详细(附加--源码实现案例--及实现逻辑图)

文章目录

Eureka

这篇文章先讲述一下Eureka的应用场景、代码实现案例,多个服务模块注册到Euraka中,服务之间的调用实现我会再下一篇文章中进行讲解!

Eureka组件可以实现哪些功能

Eureka主要是做:

  1. 注册发现中心
  2. 服务注册与发现的组件

什么是CAP原则?

说到Eureka不得不提到了CAP,那么什么是CAP原则呢,下面一起来看下!

CAP 原则:

又称 CAP 定理,指的是在一个分布式系统中。

CAP原则三大特性

一致性 (Consistency):

在集群中,三个机器的数据是一致的。

可用性I(Availability):

当有一个节点挂掉了整个集群可以继续对外提供服务。

分区容错性 (Partition tolerance):

由于机房网络或者分区等原因会导致各个机器中的数据短暂不一致。
(这个特性是不可避免的)CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

说到这里再提一下

Eureka

Zookeeper

的区别?

Zookeeper:

遵循CP原则

Eureka:

AP原则:注重AP高可用

服务注册代码实战

整体核心实现图
在这里插入图片描述

搭建注册中心

下面我来通过代码的方式详细的看下如何来快速实现Eureka的使用
在这里插入图片描述
只需要建我标记红色框的项目,其它的不需要建,我这边是之前做的服务注册中心集群所以会有好几个注册中心

首先把目录结构给建起来,Maven项目

注意:新增项目的时候选择Java8

按照我图上的这个建,新建项目流程这边我不一一去说了,不明白的可以私信我!
第一步
先去新建注册中心

01-eureka-server

在这里插入图片描述
第二步
修改

EurekaServerApplication

启动类,添加

@EnableEurekaServer

注解,意思是开启Eureka的注册中心的,启动类里面只需要修改一个地方

添加开启Eureka注解

功能。
源码如下:

packagecom.powernode;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication@EnableEurekaServer//开启Eureka的注册中心的功能publicclassEurekaServerApplication{publicstaticvoidmain(String[] args){SpringApplication.run(EurekaServerApplication.class, args);}}

第三步
修改yml文件(配置文件)
源码如下:
每一个配置代表什么意思我都一一添加了注释,先按照我这种方式去改。

#单机
server:
    port:8761 # eureka的默认端口
spring:
    application:
      name: eureka-server # 应用名称 不要使用特殊字符
eureka: #Eureka的配置分三类 server client 实例的  eureka-server既是服务端又是客户端
    server: #服务端每间隔多少毫秒定期删除的操作(默认是30000(30秒))
      eviction-interval-timer-in-ms:10000
      renewal-percent-threshold:0.85 # 续约百分比 超过85的应用没有和你续约 那么erueka不会踢除任何应用
    instance: # 实例的配置
      instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}} # 主机名称 : 应用名称 : 端口号
#      hostname: localhost # 主机名称 或者 服务的IP
#      prefer-ip-address:true #以IP的形式显示具体的服务信息
#      lease-renewal-interval-in-seconds:5 # 服务实例的续约的时间间隔

第四步
修改pom文件

注意:

01-eureka-server的pom文件

,因为这块要去指定spring Cloud以及spring Boot版本。
按照我标红色的框去修改
在这里插入图片描述
在这里插入图片描述

服务A搭建

服务A对应的项目名称是:

02-eureka-client-a

,千万不要改错地方哈!
第一步
先去修改yml配置文件。
源码如下:
每一个配置代表什么意思我都一一添加了注释,先按照我这种方式去改。

server:
  port:8702 # 客户端端口没有要求
spring:
  application:
    name: eureka-client-a
# 注册 发送信息
eureka:
  client:
    service-url: # 指定注册地址
      defaultZone: http://localhost:8761/eureka
    register-with-eureka:true # 可以不往eureka-server注册
    fetch-registry:true # 应用是否去拉取服务列表到本地
    # 每个10秒中去注册中心重新进行拉取 时间越短脏毒越少 性能消耗大
    registry-fetch-interval-seconds:10 # 为了缓解服务列表的脏毒问题
  instance:
    hostname: localhost # 应用的主机名称 最好谢主机ip
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    prefer-ip-address:true # 显示ip
    lease-renewal-interval-in-seconds:10 # 实例续约的时间

第二步
修改pom文件,按图修改
1
在这里插入图片描述

服务B搭建

服务A对应的项目名称是:

02-eureka-client-b

,千万不要改错地方哈!
和服务A类似
第一步
先去修改yml配置文件。
源码如下:
每一个配置代表什么意思我都一一添加了注释,先按照我这种方式去改。

server:
  port:8703 # 客户端端口没有要求
spring:
  application:
    name: eureka-client-b
# 注册 发送信息
eureka:
  client:
    service-url: # 指定注册地址
      defaultZone: http://localhost:8761/eureka

第二步
修改pom文件,按图修改
在这里插入图片描述
在这里插入图片描述

启动服务

启动注册中心

先启动注册中心

01-eureka-server

,在启动

服用A和服务B


启动方式:点击启动文件,然后点击绿色的三角选择运行模式或者调试模式都可以
在这里插入图片描述
看到下图这个,说明就已经启动成功了,返回状态码为204。

注意:重点来了非常重点

,在浏览器地址栏中直接输入

http://localhost:8761/

在这里插入图片描述
如果你输入完

http://localhost:8761/

给你返回的是这个页面,

恭喜你Eureka注册中心启动成功!

,接着再去启动服务。
在这里插入图片描述

启动服务A

还是这种方式去启动,运行模式和调试模式都可以。
在这里插入图片描述
启动成功后会显示如下图所示,状态显示204。
在这里插入图片描述

注意:重点来了非常重点

,在浏览器地址栏中直接输入

http://localhost:8761/

,或者是刚才已经打开这个地址了,直接F5刷新页面。
可以清除的看到在注册中心上方有一个应用名称为:

EUREKA-CLIENT-A

的服务注册进来了,很好,继续启动服务B。
在这里插入图片描述

启动服务B

服务B还是按照服务A的方式去启动,我们可以清楚的看到目前有

三个服务正在运行

,分别是注册中心、服务A和服务B,回到浏览器,还是那个网址下,F5刷新。
在这里插入图片描述

很好

,可以看到服务B也注册进来了。

在这里插入图片描述

结束语

至此就完成了一个注册中心和两个服务模块的注册功能的实现,按照我的这种方式去搭建项目和代码实现,不明白的博主私信,大家可以看到我还有其他的组件
这是常用的

Spring Cloud组件

,还有第二张图的各个组件的服务,nacos文件配置中心搭建、手写网关、熔断器等等,都是源码,有需要的博主可以私信我,不收取任何费用,如果你有不明白的地方我还会免费为你进行解答,希望能帮助到大家!
本期分享就到这里咯,下期分享rabbon实现远程调用。
在这里插入图片描述
在这里插入图片描述


本文转载自: https://blog.csdn.net/xiaohua616/article/details/132000558
版权归原作者 夏小花花 所有, 如有侵权,请联系我们删除。

“Spring Cloud Eureka 服务注册和服务发现超详细(附加--源码实现案例--及实现逻辑图)”的评论:

还没有评论