配置 Eureka

Eureka 包含两个组件(components): Eureka ClientEureka Server. 如果你的架构使用了 Eureka. 通常意味着你的程序包含两个应用程序。

  • Application Client 它会使用 Eureka Client 向 Application Service 发送请求。
  • Application Service 它会接收 Application Client 发送的请求,然后返回一个响应。

搭建会包含以下部分:

  • Eureka Server
  • Eureka Client for the application client
  • Eureka Client for the application service

Eureka 可以运行在亚马逊云 和 飞亚马逊云 环境中。

如果你运行在云环境下,你将要用 java 命令行 传递属性 -Deureka.datacenter=cloud. 只有这样, Eureka Client/Server 才知道初始化 AWS 云所特有的信息。

配置 Eureka Client

  • JDK 1.8 或在 更高的版本

你有几种方式获取 Eureka client 而镜子文件。最好获取最新的版本,因为最新版会修复更多的bugs.

  • 你可以通过URL 直接下载 Eureka Client 的 二进字文件,传送门

  • 你可以添加 eureka client 的 maven 依赖

<dependency>
  <groupId>com.netflix.eureka</groupId>
  <artifactId>eureka-client</artifactId>
  <version>1.1.16</version>
 </dependency>
  • 你还可以根据说明从源码直接构建,在这里
配置

配置 Eureka client 最简单的方法是使用属性文件(property files). 默认情况下,Eureka client 会在 classpath 下搜索名叫 eureka-client.properties 的属性文件。接着会搜索环境特定覆盖中特定于环境的属性文件。这里的环境通常指 测试环境 或者 生产环境,用命令行参数 -Deureka.environment 指定。 以切换 eureka client. 这个情况下,client 会搜索 eureka-client-test.properties 或者 eureka-client-product.properties.

你可以在这里看一下默认配置的例子。把这些配置拷贝下来,只修改你需要的部分,然后把他们放到你的类路径下面。如果你想改变文件的名称,那就需要使用命令行参数 -Deureka.client.props=xxxxx(不需要带后缀)进行切换。xxxxx 就是你要搜索的文件名称。

  • sample-eureka-client.properties
 
###Eureka Client configuration for Sample Eureka Client

# see the README in eureka-examples to see an overview of the example set up

# note that for a purely client usage (e.g. only used to get information about other services,
# there is no need for registration. This property applies to the singleton DiscoveryClient so
# if you run a server that is both a service provider and also a service consumer,
# then don't set this property to false.
eureka.registration.enabled=false

## configuration related to reaching the eureka servers
eureka.preferSameZone=true
eureka.shouldUseDns=false
eureka.serviceUrl.default=http://localhost:8080/eureka/v2/

eureka.decoderName=JacksonJson
  • sample-eureka-service.properties
 
###Eureka Client configuration for Sample Service that register with Eureka

# see the README in eureka-examples to see an overview of the example set up

## configurations related to self identification for registration.
## There are other properties that can be defined, see eureka-client/../CloudInstanceConfig for full details.
# where am I deployed?
eureka.region=default

# what is my application name? (clients can query on this appName)
eureka.name=sampleRegisteringService

# what is my application virtual ip address? (clients can query on this vipAddress)
eureka.vipAddress=sampleservice.mydomain.net

# what is the port that I serve on? (Change this if port 8001 is already in use in your environment)
eureka.port=8001

## configuration related to reaching the eureka servers
eureka.preferSameZone=true
eureka.shouldUseDns=false
eureka.serviceUrl.default=http://localhost:8080/eureka/v2/

文件中的属性表明了他们是什么,至少需要配置下面这些项:

Application Name (eureka.name)
Application Port (eureka.port)
Virtual HostName (eureka.vipAddress)
Eureka Service Urls (eureka.serviceUrls)

更高级的配置,可以参考 EurekaInstanceConfig.javaEurekaClientConfig.java 的代码。

配置 Eureka Server 端

要求
  • JDK 1.8 或更高的版本
  • Tomcat 6.0.10 或更高的版本。

你可以通过两种放松获取 Eureka server 的 二进字文件。

配置

Eureka Server 有两部分配置

  • 和 Eureka Client 一样的配置,就像上面描述的那样。
  • Eureka Server 配置。

配置 Eureka 服务器的最简单方法是使用类似于上述 Eureka 客户端的属性文件。首先,配置与上面指定的服务器一起运行的 Eureka 客户端。Eureka 服务器本身触发了一个 Eureka 客户端,它用于查找其他 Eureka 服务器。因此,您需要首先为Eureka 服务器配置 Eureka 客户端,就像对连接到 Eureka 服务的任何其他客户端一样。Eureka 服务器将使用其 Eureka 客户端配置来标识具有相同名称 (即) eureka.name

配置 Eureka 客户端后,如果您在 AWS 中运行,则可能需要配置 Eureka 服务器。默认情况下,Eureka 服务器在类路径中搜索属性文件 eureka-server.properties。它进一步搜索环境特定覆盖中特定于环境的属性文件。环境通常是测试或程序,由 -Deureka.environment.环境 java 命令行切换到 eureka 服务器(不带 .properties 后缀)提供。因此,服务器还会搜索 eureka-server-test.properties 或者 eureka-server-prod.properties。

在本地环境上配置

当运行 eureka 服务器进行本地开发时,通常需要等待 3 分钟,直到它完全启动。这是因为默认服务器行为,即搜索对等体以同步,并在找不到可用的对等体时重试。通过设置属性 eureka.numberRegistrySyncRetries=0,可以减少此等待时间。

在 AWS 上配置

如果在 AWS 中运行,则需要其他配置,如此处所述。有关更高级的服务器配置,请参阅此处提供的选项

如果要构建 WAR 存档,则可以在 eureka-server/conf 下编辑文件,并且生成在创建存档之前负责将属性文件放在 WEB-INF/classes。

如果要从 maven 下载存档,则可以自行合并 WEB-INF/类下编辑的属性文件。

运行演示应用程序可以帮助您更好地了解配置。

Client/Server 版本兼容问题

我们使用 eureka 的语义版本控制,并将维护次要版本升级之间的客户端/服务器协议兼容性(即 1.x 版本在客户端和服务器部署之间应具有兼容的协议)。通常,让服务器使用比客户端较新的版本始终更安全。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值