【Eureka】服务端和客户端

转载:https://www.cnblogs.com/yangchongxing/p/10778357.html

Eureka服务端

1、添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>ycx</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-server</name>
<description>Demo project for Spring Boot</description> <properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties> <dependencies>
<!-- spring boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency> <!-- spring cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!-- other -->
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

2、启用Eureka服务

package ycx.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication { public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
} }

3、配置Eureka

spring:
application:
name: eureka-server
server:
port:
eureka:
instance:
prefer-ip-address: true
client:
register-with-eureka: false
fetch-registry: false
service-url:
default-zone: http://eureka.ycx.com:8761/eureka

Eureka客户端

1、添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>ycx</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>admin-server</artifactId>
<name>admin-server</name>
<description>sc server</description> <properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties> <dependencies>
<!-- spring boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- spring cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- other -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency> </dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

2、启用服务发现,仅仅 Eureka 使用 @EnableEurekaClient,其他的服务发现代理使用 @EnableDiscoveryClient

package ycx.admin;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @EnableEurekaClient
@SpringBootApplication
public class AdminServerApplication { public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
} }

3、配置服务发现

spring:
application:
name: admin-server
server:
port:
eureka:
instance:
prefer-ip-address: true
client:
register-with-eureka: true
fetch-registry: true
service-url:
default-zone: http://eureka.ycx.com:8761/eureka

配置信息,参考:https://www.cnblogs.com/tiancai/p/9593648.html

Eureka Instance配置信息
全部保存在org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean配置类里,实际上它是com.netflix.appinfo.EurekaInstanceConfig的实现类,替代了netflix的com.netflix.appinfo.CloudInstanceConfig的默认实现。

appname = unknown
应用名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。 appGroupName = null
应用组名 instanceEnabledOnit = false
实例注册到Eureka上是,是否立刻开启通讯。有时候应用在准备好服务之前需要一些预处理。 nonSecurePort =
非安全的端口 securePort =
安全端口 nonSecurePortEnabled = true
是否开启非安全端口通讯 securePortEnabled = false
是否开启安全端口通讯 leaseRenewalIntervalInSeconds =
实例续约间隔时间 leaseExpirationDurationInSeconds =
实例超时时间,表示最大leaseExpirationDurationInSeconds秒后没有续约,Server就认为他不可用了,随之就会将其剔除。 virtualHostName = unknown
虚拟主机名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。 instanceId
注册到eureka上的唯一实例ID,不能与相同appname的其他实例重复。 secureVirtualHostName = unknown
安全虚拟主机名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。 metadataMap = new HashMap();
实例元数据,可以供其他实例使用。比如spring-boot-admin在监控时,获取实例的上下文和端口。 dataCenterInfo = new MyDataCenterInfo(DataCenterInfo.Name.MyOwn);
实例部署的数据中心。如AWS、MyOwn。 ipAddress=null
实例的IP地址 statusPageUrlPath = "/actuator/info"
实例状态页相对url statusPageUrl = null
实例状态页绝对URL homePageUrlPath = "/"
实例主页相对URL homePageUrl = null
实例主页绝对URL healthCheckUrlUrlPath = "/actuator/health"
实例健康检查相对URL healthCheckUrl = null
实例健康检查绝对URL secureHealthCheckUrl = null
实例安全的健康检查绝对URL namespace = "eureka"
配置属性的命名空间(Spring Cloud中被忽略) hostname = null
主机名,不配置的时候讲根据操作系统的主机名来获取 preferIpAddress = false
是否优先使用IP地址作为主机名的标识

Eureka Client客户配置信息
配置全部在org.springframework.cloud.netflix.eureka.EurekaClientConfigBean中,实际上它是com.netflix.discovery.EurekaClientConfig的实现类,替代了netxflix的默认实现。

enabled=true
是否启用Eureka client。 registryFetchIntervalSeconds=
定时从Eureka Server拉取服务注册信息的间隔时间 instanceInfoReplicationIntervalSeconds=
定时将实例信息(如果变化了)复制到Eureka Server的间隔时间。(InstanceInfoReplicator线程) initialInstanceInfoReplicationIntervalSeconds=
首次将实例信息复制到Eureka Server的延迟时间。(InstanceInfoReplicator线程) eurekaServiceUrlPollIntervalSeconds=
拉取Eureka Server地址的间隔时间(Eureka Server有可能增减) proxyPort=null
Eureka Server的代理端口 proxyHost=null
Eureka Server的代理主机名 proxyUserName=null
Eureka Server的代理用户名 proxyPassword=null
Eureka Server的代理密码 eurekaServerReadTimeoutSeconds=
从Eureka Server读取信息的超时时间 eurekaServerConnectTimeoutSeconds=
连接Eureka Server的超时时间 backupRegistryImpl=null
Eureka Client第一次启动时获取服务注册信息的调用的回溯实现。Eureka Client启动时首次会检查有没有BackupRegistry的实现类,如果有实现类,则优先从这个实现类里获取服务注册信息。 eurekaServerTotalConnections=
Eureka client连接Eureka Server的链接总数 eurekaServerTotalConnectionsPerHost=
Eureka client连接单台Eureka Server的链接总数 eurekaServerURLContext=null
当Eureka server的列表在DNS中时,Eureka Server的上下文路径。如http://xxxx/eureka。 eurekaServerPort=null
当Eureka server的列表在DNS中时,Eureka Server的端口。 eurekaServerDNSName=null
当Eureka server的列表在DNS中时,且要通过DNSName获取Eureka Server列表时,DNS名字。 region="us-east-1"
实例所属区域。 eurekaConnectionIdleTimeoutSeconds =
Eureka Client和Eureka Server之间的Http连接的空闲超时时间。 heartbeatExecutorThreadPoolSize=
心跳(续约)执行器线程池大小。 heartbeatExecutorExponentialBackOffBound=
心跳执行器在续约过程中超时后的再次执行续约的最大延迟倍数。默认最大延迟时间= * eureka.instance.leaseRenewalIntervalInSeconds cacheRefreshExecutorThreadPoolSize=
cacheRefreshExecutord的线程池大小(获取注册信息) cacheRefreshExecutorExponentialBackOffBound=
cacheRefreshExecutord的再次执行的最大延迟倍数。默认最大延迟时间= *eureka.client.registryFetchIntervalSeconds serviceUrl= new HashMap();serviceUrl.put(DEFAULT_ZONE, DEFAULT_URL);
Eureka Server的分区地址。默认添加了一个defualtZone。也就是最常用的配置eureka.client.service-url.defaultZone=xxx registerWithEureka=true
是否注册到Eureka Server。 preferSameZoneEureka=true
是否使用相同Zone下的Eureka server。 logDeltaDiff=false
是否记录Eureka Server和Eureka Client之间注册信息的差异 disableDelta=false
是否开启增量同步注册信息。 fetchRemoteRegionsRegistry=null
获取注册服务的远程地区,以逗号隔开。 availabilityZones=new HashMap()
可用分区列表。用逗号隔开。 filterOnlyUpInstances = true
是否只拉取UP状态的实例。 fetchRegistry=true
是否拉取注册信息。 shouldUnregisterOnShutdown = true
是否在停止服务的时候向Eureka Server发起Cancel指令。 shouldEnforceRegistrationAtInit = false
是否在初始化过程中注册服务。

Eureka Server注册中心配置信息
Eureka Server注册中心端的配置是对注册中心的特性配置。Eureka Server的配置全部在org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean里,实际上它是com.netflix.eureka.EurekaServerConfig的实现类,替代了netflix的默认实现。

enableSelfPreservation=true
是否开启自我保护 renewalPercentThreshold = 0.85
自我保护续约百分比阀值因子。如果实际续约数小于续约数阀值,则开启自我保护 renewalThresholdUpdateIntervalMs = * *
续约数阀值更新频率。 peerEurekaNodesUpdateIntervalMs = * *
Eureka Server节点更新频率。 enableReplicatedRequestCompression = false
是否启用复制请求压缩。 waitTimeInMsWhenSyncEmpty= * *
当从其他节点同步实例信息为空时等待的时间。 peerNodeConnectTimeoutMs=
节点间连接的超时时间。 peerNodeReadTimeoutMs=
节点间读取信息的超时时间。 peerNodeTotalConnections=
节点间连接总数。 peerNodeTotalConnectionsPerHost = ;
单个节点间连接总数。 peerNodeConnectionIdleTimeoutSeconds = ;
节点间连接空闲超时时间。 retentionTimeInMSInDeltaQueue = * MINUTES;
增量队列的缓存时间。 deltaRetentionTimerIntervalInMs = * ;
清理增量队列中过期的频率。 evictionIntervalTimerInMs = * ;
剔除任务频率。 responseCacheAutoExpirationInSeconds = ;
注册列表缓存超时时间(当注册列表没有变化时) responseCacheUpdateIntervalMs = * ;
注册列表缓存更新频率。 useReadOnlyResponseCache = true;
是否开启注册列表的二级缓存。 disableDelta=false。
是否为client提供增量信息。 maxThreadsForStatusReplication = ;
状态同步的最大线程数。 maxElementsInStatusReplicationPool = ;
状态同步队列的最大容量。 syncWhenTimestampDiffers = true;
当时间差异时是否同步。 registrySyncRetries = ;
注册信息同步重试次数。 registrySyncRetryWaitMs = * ;
注册信息同步重试期间的时间间隔。 maxElementsInPeerReplicationPool = ;
节点间同步事件的最大容量。 minThreadsForPeerReplication = ;
节点间同步的最小线程数。 maxThreadsForPeerReplication = ;
节点间同步的最大线程数。 maxTimeForReplication = ;
节点间同步的最大时间,单位为毫秒。 disableDeltaForRemoteRegions = false;
是否启用远程区域增量。 remoteRegionConnectTimeoutMs = ;
远程区域连接超时时间。 remoteRegionReadTimeoutMs = ;
远程区域读取超时时间。 remoteRegionTotalConnections = ;
远程区域最大连接数 remoteRegionTotalConnectionsPerHost = ;
远程区域单机连接数 remoteRegionConnectionIdleTimeoutSeconds = ;
远程区域连接空闲超时时间。 remoteRegionRegistryFetchInterval = ;
远程区域注册信息拉取频率。 remoteRegionFetchThreadPoolSize = ;
远程区域注册信息线程数。

Eureka Server注册中心仪表盘配置

path="/"
仪表盘访问路径 enabled=true
是否启用仪表盘

【Eureka】服务端和客户端的更多相关文章

  1. eureka服务端和客户端的简单搭建

    本篇博客简单记录一下,eureka 服务端和 客户端的简单搭建. 目标: 1.完成单机 eureka server 和 eureka client 的搭建. 2.完成eureka server 的添加 ...

  2. SpringCloud02 Eureka知识点、Eureka服务端和客户端的创建、Eureka服务端集群、Eureka客户端向集群的Eureka服务端注册

    1 Eureka知识点 按照功能划分: Eureka由Eureka服务端和Eureka客户端组成 按照角色划分: Eureka由Eureka Server.Service Provider.Servi ...

  3. 三、eureka服务端获取服务列表

    所有文章 https://www.cnblogs.com/lay2017/p/11908715.html 正文 eureka服务端维护了一个服务信息的列表,服务端节点之间相互复制服务信息.而作为eur ...

  4. Spring Eureka的使用入门--服务端与客户端

    接上篇: Eureka作为注册中心,连接服务端与客户端: 服务端: 依赖包: apply plugin: 'org.springframework.boot' apply plugin: 'io.sp ...

  5. spring cloud eureka 服务端开启密码认证后,客户端无法接入问题

    Eureka服务端开启密码的认证比较简单 在pom文件中加入: <dependency> <groupId>org.springframework.boot</group ...

  6. Spring Cloud官方文档中文版-服务发现:Eureka服务端

    官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR3/#spring-cloud-eureka-server 文中例子我做了一些 ...

  7. SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端、Eureka 服务信息、Eureka 发现管理、Eureka 安全配置、Eureka-HA(高可用) 机制、Eureka 服务打包部署)

    1.概念:Eureka 服务发现框架 2.具体内容 对于服务发现框架可以简单的理解为服务的注册以及使用操作步骤,例如:在 ZooKeeper 组件,这个组件里面已经明确的描述了一个服务的注册以及发现操 ...

  8. springcloud(三):Eureka服务端

    一. 因为使用一个注册中心服务器端,n个客户端:n个生产者客户端.n消费者客户端....,所有的客户端最好的方式就是通过对象传递参数,因此需要创建一个公共组件项目,为n个客户端传值提供方便 二.创建公 ...

  9. Eureka 客户端连接Eureka服务端时 报Cannot execute request on any known server 解决办法

    报Cannot execute request on any known server 这个错,总的来说就是连接Eureka服务端地址不对. 因为配置eureka.client.serviceUrl. ...

随机推荐

  1. nyoj 169-素数 (打表)

    169-素数 内存限制:64MB 时间限制:3000ms 特判: No 通过数:42 提交数:84 难度:1 题目描述: 走进世博园某信息通信馆,参观者将获得前所未有的尖端互动体验,一场充满创想和喜悦 ...

  2. 力扣(LeetCode)移除元素 个人题解

    给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  3. 目录(cd mkdir rmdir rm pwd ls) 文件(ln touch mv rm cat more head rail) 文件权限(chmod chown chgrp) 文件通配符(* ? [])

    记住Linux目录树的结构是一个称职Linux系统管理员的必备素质! 目录漫游cd   cd - 目录显示pwd 目录管理 mkdir -p a/b/c/1 parent创建多层目录 -m 700   ...

  4. HTML的footer置于页面最底部

    vue项目中,使用element-ui的布局,仍然出现footer不固定页面底部的情况,网上找到的一个管用的 方法是:footer高度固定+绝对定位 <html> <head> ...

  5. goland学习-go常用命令使用

    goland学习-go常用命令使用 1.跨平台编译:env GOOS=linux GOARCH=amd64 go build 2.获取go第三方包:go get -u github.com/go-sq ...

  6. ViewPage+Fragment的使用用法

    一.概述 从前面几篇文章,我们知道,实现ViewPager是要有适配器的,我们前面用的适配器是PagerAdapter,而对于fragment,它所使用的适配器是:FragmentPagerAdapt ...

  7. HTML、CSS基础知识

    前端基础 1. CSS 8 1.1. CSS叫做层叠样式表,用来设置页面中元素的样式.背景颜色.字体颜色.字体大小... 8 1.2. CSS负责结构.表现.行为中的表现 8 1.3. 编写的位置 8 ...

  8. java String比较,“==”和“equal”区别

    public static void main(String[] args){ String str1 = new String("str"); String str2 = new ...

  9. SSO单点登录思路

    SSO (Single Sign On) 什么是单点登录: 在大型的互联网公司中会有多个系统, 多个项目, 虽然这些项目都属于同一家公司, 但是项目本身其实都是独立的, 那多个系统可不可以实现共享同一 ...

  10. PTA 1139 1138 1137 1136

    PAT 1139 1138 1137 1136 一个月不写题,有点生疏..脑子跟不上手速,还可以啦,反正今天很开心. PAT 1139 First Contact 18/30 找个时间再修bug 23 ...