当前位置 博文首页 > KEN DO EVERTHING:「 从0到1学习微服务SpringCloud 」02 Eureka

    KEN DO EVERTHING:「 从0到1学习微服务SpringCloud 」02 Eureka

    作者:[db:作者] 时间:2021-07-27 21:07

    系列文章(更新ing):

    「 从0到1学习微服务SpringCloud 」01 一起来学呀!

    Spring Cloud Eureka

    • 基于Netflix Eureka做了二次封装(Spring Cloud Eureka并不是从零开始做出来的,而是对Netflix Eureka做了二次封装)

    • 两个组件组成

    • Eureka Server:Eureka服务器,注册中心

    • Eureka Client:Eureka客户端,各个微服务作为客户端,向Eureka服务器进行注册

    Eureka Server的使用

    1.使用IDE快速新建Eureka Server项目

    image

    image

    2.启动类加上@EnableEurekaServer注解,说明自己是Eureka服务器

    image

    3.Eureka配置

    server:
      port: 8761
    eureka:
      client:
        #表示是否将自己注册到Eureka Server, 默认为true
        #由于当前应用就是Eureka Server, 因此设为 false
        register-with-eureka: false
        #表示是否从Eureka Server获取注册信息,默认为true。
        #如果这是一个单点的 Eureka Server,不需要同步其他节点的数据,可以设为false。
        fetch-registry: false
        #注册中心地址
        service-url:
          defaultZone: http://localhost:8761/eureka/
    spring:
      application:
        #服务名称
        name: eureka-server
    

    注意:
    这两个配置需要设置为false,否则会报一下错误

    register-with-eureka:?falsefetch-registry:?false
    

    如下图:

    image

    4.打开图形界面,http://localhost:8761/ Eureka服务器启动完毕

    image

    Eureka Client的使用

    Eureka注册中心启动完了,这时就需要将服务注册到上面了
    1.使用IDE快速新建Eureka Client项目

    image

    image

    2.启动类加上@EnableEurekaClient注解,说明自己是Eureka客户端

    image

    3.Eureka配置

    server:
      port: 8861
    eureka:
        client:
            #注册中心地址
            service-url:
                defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
    spring:
        application:
            name: eureka-client
    

    4.启动该程序,同时启动上面的Eureka Server程序
    在Eureka注册中心上,可以看到,eureka-client已经被注册上去了

    image

    Eureka高可用

    现在Eureka是个单点的,但是服务器可能会挂掉,这是很危险的,所以需要实现Eureka高可用,新增Eureka Server,现在就来新增一个Eureka Server
    1.配置中fetch-registry: false的配置去掉或注释掉
    因为现在不是单节点了,是多节点,需要同步其他节点的数据

    去掉或注释掉#fetch-registry:?false
    

    2.idea中复制应用

    image

    并分别设置分别设置应用名EurekaServerApplication1,默认端口8761

    -Dserver.port=8761
    

    另一个应用名EurekaServerApplication2,默认端口8762

    -Dserver.port=8762
    

    3.配置server1,并启动程序EurekaServerApplication1

    #启动端口可注释掉,VM参数中已配置
    #server:
    #  port: 8761
    eureka:
      client:
        #表示是否将自己注册到Eureka Server, 默认为true
        #由于当前应用就是Eureka Server, 因此设为 false
        register-with-eureka: false
        #注册中心地址
        service-url:
          #设置成server2的端口号,相互注册
          defaultZone: http://localhost:8762/eureka/
    spring:
      application:
        #服务名称
        name: eureka-server1
    

    4.配置server2,并启动程序EurekaServerApplication2

    #启动端口可注释掉,VM参数中已配置
    #server:
    #  port: 8761
    eureka:
      client:
        #表示是否将自己注册到Eureka Server, 默认为true
        #由于当前应用就是Eureka Server, 因此设为 false
        register-with-eureka: false
        #注册中心地址
        service-url:
          #设置成server2的端口号,相互注册
          defaultZone: http://localhost:8761/eureka/
    spring:
      application:
        #服务名称
        name: eureka-server2
    

    5.配置Eureka Client的注册中心地址

    service-url:
        #这里同时向两个注册中心注册
        defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
    

    6.分别打开两个Eureka Server的图形界面 http://localhost:8761http://localhost:8762,可以发现,Eureka Client已同时注册到两个注册中心上面

    image

    image

    此时,已实现了高可用,无论哪一个Eureka Server挂掉了,服务都可用。

    3个Eureka Server也是同理,两两相互注册即可,如下图

    image

    建议:实际开发中,建议使用至少2个Eureka Server以实现高可用

    分享给你的朋友!

    image

    image

    THANDKS

    • End -

    一个立志成大腿而每天努力奋斗的年轻人

    伴学习伴成长,成长之路你并不孤单!

    扫描二维码,关注公众号

    cs