• spring cloud系列教程第六篇-Eureka集群版


    spring cloud系列教程第六篇-Eureka集群版

    本文主要内容:

    本文来源:本文由凯哥Java(kaigejava)发布在博客园博客的。转载请注明

    1:Eureka执行步骤理解

    2:集群原理

    3:Eureka集群搭建

    4:修改payment和order项目注册到集群中

    本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列教程》教程的总第六篇:《spring cloud系列教程第六篇-Eureka集群版》。

    本文是几个维度中的第一个维度:注册与发现维度配置中心管理之Eureka相关教程第三篇。

    一:eureka注册与发现步骤

    服务注册:将服务信息注册到注册中心

    服务发现:从注册中心上获取到服务信息

    其实质就是:key-value形式的。Key:服务的名字 value:服务调用地址

    执行步骤:

    1:先启动eureka注册中心

    2:启动服务提供者(我们这里的服务提供者就是payment支付服务)

    3:服务提供者在启动后会把自身的信息(如服务地址,以别名方式注册到)注册到eureka中

    4:消费者(我们这里是order服务)在需要调用接口的时候,使用服务别名去注册中心获取到实际的RPC远程调用地址

    5:消费者获取到调用地址后,底层实际是利用HttpClient技术实现远程调用的

    6:消费者获得服务地址后会缓存在本地的JVM内存中,默认每隔30秒更新移除服务调用地址。

    问题:微服务RPC远程调用最核心的是什么?

    高可用。试想下,如果你的注册中心有且仅有一个 only One.那么,如果注册中心故障了,那就呵呵了,会导致整个服务的不可用。后果可是很严重的。所以,解决办法就是:搭建Eureka注册中心集群。实现负载均衡+故障容错(其实从上图中也可以看出,eureka server是多个,provider也是多个)

    二:Eureka集群原理:

    互相注册,相互守望

    什么意思呢?集群的话,肯定是多个。比如我们现在单台的eureka端口是7001,假设还有一台服务是7002.那么7001的注册地址应该是7002,7002的注册地址是7001.这样就相互注册了。7001会每30s给7002同步一次心跳,同理7002也会的。所以就相互守望了。

    简单的示意图如下:

    三:Eureka集群搭建

    3.1:新建cloud-eureka-server7002项目。作为第二台eureka服务

    3.2:修改pom.将7001的pom中相关依赖复制到7002中

    3.3:修改hosts文件。添加两个映射:

    修改后的hosts:

    3.4:修改yml文件。

    在修改yml文件的时候,需要注意:现在是多台eureka server。需要互相注册和相互守望。这个的写法和单机版的不一样了。我们先来看看单机版yml配置文件。

    单机版yml文件配置:

    集群的时候,因为要互相注册,相互守望。所以yml文件有些不同。

    7001服务的yml不同地方:

    7002的yml:

    我们可以看到hostname和defaultZone不同了

    配置完成之后,启动7001和7002,访问两个连接查看有什么不同

    我们可以看到,DS Replicas的不同。

    当我们访问7001的时候,可以看到ds列表是eureka7002说明我们集群配置已建成成功了。

    本文教程相关代码版本号:v0.0.9-20200504

    接下来,我们就要修改payment和order这两个微服务,将这两个微服务注册到eureka集群中。欢迎大家和凯哥(凯哥Java:kaigejava)继续一起学习。

    四:将payment和order这两个服务注册到集群中

    4.1:payment修改

    只需要修改payment8001的yml文件中,和eureka相关的配置即可。

    我们开看看单机版的时候配置:

    Eureka.client.service-url.defaultZone是localhost的。如下图:

    进行修改:

    Order80的修改一样。

    配置完成之后,启动服务进行测试。

    启动顺序:

    先启动注册中心服务:eurekaSever 7001/7002服务

    再启动服务提供者:payment8001服务

    再启动服务提供者:payment8001服务

    访问根据订单id获取连接,查看返回信息

    查看7001上注册的eureka客户端:

    查看7002上客户端:

    我们发现这两个注册中心都有order server和payment server服务。说明我们服务已经成功注册到集群中了。

    查看访问效果:

    可以正常访问。说明集群搭建及服务注册到集群中成功。

  • 相关阅读:
    hdu 2544 单源最短路问题 dijkstra+堆优化模板
    CImg、libjpeg--介绍、配置(操作JPEG)
    【Android归纳】开发中应该注意的事项
    iOS測试——置换測试: Mock, Stub 和其它
    <html>
    系统吞吐量、TPS(QPS)、用户并发量、性能測试概念和公式
    hdu 1038 Biker&#39;s Trip Odometer(水题)
    java泛型
    从头认识Spring-2.1 自己主动装配(2)-byType(2)
    11.2.0.3 RAC(VCS)节点crash以及hang的问题分析
  • 原文地址:https://www.cnblogs.com/kaigejava/p/12978821.html
Copyright © 2020-2023  润新知