转载

Spring Cloud学习笔记(4)- 构建一个Eureka集群

在上一章中讲到,Eureka很多的服务器配置项都来自于AWS。其中非常重要的:

  • Region表示AWS中的地理位置,例如us-east-1、us-east-2、eu-west-1等,注意这些都是服务器集群;
  • 每个Region都有多个Availability Zone,彼此内网打通;
  • 各个Region之间完全隔离,彼此内网不打通;
  • AWS通过这种方式实现了最大的容错和稳定性
  • 在其他云环境中部署时,可以认为Region表示一个服务器集群,Zone表示服务器集群中的具体某一台服务器
  • Spring Cloud中,默认使用的Region是us-east-1

2.Eureka Instance

Eureka实例是一个基础对象,它提供了诸如网络通信、数据同步,心跳等基本的网络通信方法。无论是Eureka Server还是Eureka Client,其都是一个Eureka Instance。

3.Eureka Client与Eureka Server

Eureka Client提供了服务注册、服务更新、服务地址等相关信息,并通过相关配置将当前服务注册至指定的Eureka Server上。 Eureka Server提供了服务注册表以及相关管理服务注册表的API,Eureka Server也是一个Eureka Client,通过这种方式Eureka Server可以将当前服务注册至其他的Eureka Server中去。两个Eureka Server通过增量更新的方式更新服务注册表。

3.编写一个示例来演示Eureka Server集群的配置方式

1.Windows系统修改Hosts文件如下:

127.0.0.1 peer1
127.0.0.1 peer2
复制代码

Hosts文件主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。修改Hosts文件是为了模拟两台服务器,一台名为:peer1,一台名为:peer2。主机对应的IP地址都是本地网卡回环地址。

*** Tips: ***

  • 为什么需要配置Hosts文件?因为我们需要在同一台机器模拟多个Eureka Server。
  • **Eureka Server对端口不敏感,区分同一名称的服务仅仅依赖主机名。**由于我们需要在同一台机器上模拟多个Eureka Server,所以无法使用IP地址作为主机名,只能通过修改Hosts文件的方式模拟不同的主机名称。

2.修改上一章中新键的EurekaDemoServer项目中的配置文件application.yml:

spring:
  application:
    name: bruce-eureka-demo-server
---
spring:
  profiles: peer1                                 # 指定profile=peer1
server:
  port: 8761
eureka:
  instance:
    hostname: peer1                               # 指定当profile=peer1时,主机名是peer1
  client:
    serviceUrl:
      defaultZone: http://peer2:8762/eureka/      # 将自己注册到peer2这个Eureka上面去
---
spring:
  profiles: peer2
server:
  port: 8762
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/
复制代码

*** Tips: ***

  • 以上配置中具有两个单独的运行配置,配置名称分别为peer1、peer2。
  • Peer1配置中配置了当前Eureka Server作为一个Eureka Client需要注册的服务发现地址。

3.Maven clean-->Maven Install,编译为Jar

4.运行Jar包:

java -jar EurekaDemoServer-1.0-SNAPSHOT.jar --spring.profiles.active=peer2
复制代码

首先运行Peer2配置,即运行服务发现的根服务器。

再运行peer1配置:

java -jar EurekaDemoServer-1.0-SNAPSHOT.jar --spring.profiles.active=peer1
复制代码
原文  https://juejin.im/post/5f0344d35188252e7c21bebc
正文到此结束
Loading...