前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现

「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现

作者头像
KEN DO EVERTHING
发布2019-03-15 16:38:58
3890
发布2019-03-15 16:38:58
举报
文章被收录于专栏:KEN DO EVERTHINGKEN DO EVERTHING

系列文章(更新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项目

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

3.Eureka配置

代码语言:javascript
复制
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,否则会报一下错误

代码语言:javascript
复制
register-with-eureka: false
fetch-registry: false

如下图:

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

Eureka Client的使用

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

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

3.Eureka配置

代码语言:javascript
复制
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已经被注册上去了

Eureka高可用

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

代码语言:javascript
复制
去掉或注释掉
#fetch-registry: false

2.idea中复制应用

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

代码语言:javascript
复制
-Dserver.port=8761

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

代码语言:javascript
复制
-Dserver.port=8762

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

代码语言:javascript
复制
#启动端口可注释掉,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

代码语言:javascript
复制
#启动端口可注释掉,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的注册中心地址

代码语言:javascript
复制
service-url:
    #这里同时向两个注册中心注册
    defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java从心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Cloud Eureka
  • Eureka Server的使用
  • Eureka Client的使用
  • Eureka高可用
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档