接下来我们就来展开对注册中心的实践,注册中心就好比老师手中的名单,上面记录班上所有同学的名字,在他要点名的时候,就掏出那份名单,那么到了微服务这儿呢,注册中心也是类似的,他记录着所有的信息,状态,应用叫什么名字啊,在哪台服务器上,目前是不是正常工作啊,在微服务架构里面,我们习惯把一个应用称之为一个服务,以后我提到某某应用,或者某某服务,那么你要知道我指的是同一个东西,我们先来看一下Eureka这个单词,我们看到这个单词很有意思,他有两层意思,一个作为感叹词,是有"有了,找到了!"的意思,那么作为名词呢,是美国西北部的一个城市,注册中心他所提供的就是,服务的注册与发现,而注册发现你看,有个找到了的意思,所以非常的吻合,非常合情合理,接下来我就去构建一个注册中心,我们来看一下SpringCloud的官网https://spring.io/这边有一个版本图,上班就是SpringCloud的版本,最左边这一列我们可以看到,它是各种组件,这些都是SpringCloud的组件,比如我们这里有一个config,之后我们会讲到了配置中心,还有其他的gateway,netflix,你可以看到这边有版本对应,我们刚刚用到的Eureka,就是在这个包下,你可以看到这边的版本,上面的采用的是伦敦地铁站的名字,伦敦地铁站的名字还不是随便取的,其实是按照字母的顺序给排列起来的,C,D,E,F,版本是依次的递增,这就是SpringCloud版本命名的一种方式,大家了解一下知道就行,以后你要找对应的版本呢,到官网上来找就好了

你在启动的主类上要加一个注解@EnableEurekaServer,加上这个注解才能说明这个项目有注册中心,Instances currently registered with Eureka当然现在发现是一个都没有的DS Replicas这一栏是注册中心,Server端有哪些应用,有几个应用,目前只有这一个,下面这些就是系统的信息了,General Info可以看到这一栏registered-replicas http://localhost:8761/eureka/是注册地址,默认的是localhost:8761端口,我们起的是8080,由于我们的应用虽然他是server端,但是同时他也是一个client端,他也需要找一个注册中心,给注册上去,我们可以点开这个注解看一下这里还有一个@EnableDiscoveryClient/*** Annotation to activate Eureka Server related configuration {@link EurekaServerAutoConfiguration}** @author Dave Syer* @author Biju Kunjummen**/@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(EurekaServerMarkerConfiguration.class)
public @interface EnableEurekaServer {}他包含了Client,也就是我刚刚说的,既是Server,也是Client,为了使他不报错,我们不妨来配置一下,配置一下他要注册的地址,其实就是往自己身上注册eureka.client.serviceUrl.defaultZone=http://admin:1234@localhost:8761/eureka/*** Map of availability zone to list of fully qualified URLs to communicate with eureka* server. Each value can be a single URL or a comma separated list of alternative* locations.** Typically the eureka server URLs carry protocol,host,port,context and version* information if any. Example:* http://ec2-256-156-243-129.compute-1.amazonaws.com:7001/eureka/** The changes are effective at runtime at the next service url refresh cycle as* specified by eurekaServiceUrlPollIntervalSeconds.*/
private Map<String, String> serviceUrl = new HashMap<>();{this.serviceUrl.put(DEFAULT_ZONE, DEFAULT_URL);
}它会往map里面put内容public static final String DEFAULT_ZONE = "defaultZone";public static final String DEFAULT_URL = "http://localhost:8761" + DEFAULT_PREFIX+ "/";/*** @author Spencer Gibb*/
public interface EurekaConstants {String DEFAULT_PREFIX = "/eureka";}启动的时候仍旧报错,其实这是个正常的问题,因为你服务端既是server,又是client,服务端还没有起好的时候,客户端他自己先去找,那肯定找不到,但是Eureka服务端和客户端采用的是心跳的方式,它会隔一段时间再去检测,你可以看到这边,这个时候他已经注册上去了,Application是UNKOWN,他不知道这个应用叫什么名字,但是上面已经有他的信息了,UNKONW始终让人觉得不爽,怎么改一下呢spring.application.name=eureka他采用心跳的方式它会隔一段时间间隔,再去注册,我们等一会,现在跳出来了,可以看到已经注册上去了,EUREKA名字也已经出来了http://localhost:8761/这就已经注册上来了,但是我们这个应用本身,他就是一个注册中心,所以我们根本不需要让他出现在这个上面,eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false可以看到我们等了一段的时间之后,可以看到这一串日志,跟之前的明显不一样,提示已经注册上去,我们再来界面上看一下,同样的也没有注册上去,这就是我们的注册中心,由于我们后面的应用会有很多,JAVA默认是8080端口,这样子到时不太好管理,我先把端口给改一下,改成8761,同样项目的端口也改一下,8761,注册中心项目相对比较简单,因为他就是一张白纸,供大家往上面注册,往上面写东西的,所以本身东西也不多,以上就是Eureka Server端的内容
<?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><groupId>com.learn.cloud</groupId><artifactId>eureka</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties>  <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId><version>1.4.2.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency></dependencies><!-- 这个插件,可以将应用打包成一个可执行的jar包 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
server.port=8761
#eureka.instance.hostname=eureka1#spring.application.name=eureka
#eureka.server.evictionIntervalTimerInMs=60000
eureka.client.serviceUrl.defaultZone=http://admin:1234@localhost:8761/eureka
#eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false#eureka.server.enableSelfPreservation=truesecurity.basic.enabled=true
security.user.name=admin
security.user.password=1234eureka.datacenter=cloud
eureka.environment=product
package com.learn.cloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}
}

Eureka Server相关推荐

  1. 3、Spring Cloud - Eureka(高可用Eureka Server集群)

    在实际的项目中,可能有几十个或者几百个的微服务实例,这时 Eureka Server 承担了非 常高的负载.由于 Eureka Server 在微服务架构中有着举足重轻的作用,所以需要对 Eureka ...

  2. springboot中关闭eureka server中已注册服务列表自我保护配置

    配置集群服务可以向eureka通知应用是否可以使用 a.在eureka server的application.properties中加入: # 设为false,关闭自我保护 eureka.server ...

  3. Spring Cloud【Finchley】-13 Eureka Server HA高可用 2个/3个节点的搭建及服务注册调用

    文章目录 导读 官方文档 Eureka Server高可用集群概述 2个Eureka Server节点高可用集群搭建步骤 Step1. 新建子模块 microservice-discovery-eur ...

  4. Spring Cloud【Finchley】-03将微服务注册到Eureka Server上 + 为Eureka Server添加用户认证

    文章目录 概述 将用户微服务micorservice-provider-user注册到Eureka Server上 pom中增加 spring-cloud-starter-netflix-eureka ...

  5. Spring Cloud【Finchley】-02服务发现与服务注册Eureka + Eureka Server的搭建

    文章目录 服务发现组件概述 Eureka概述 Eureka原理 Maven父子工程的搭建 Eureka Server的搭建 新建 Maven Module 添加spring-cloud-starter ...

  6. Spring Cloud:Eureka Server控制台

    前言 Spring Cloud:Finchley.RELEASE server.port=12000 ip:localhost Eureka Server控制台 http://localhost:12 ...

  7. 开发Eureka Server

    # 1.创建项目并引入eureka server依赖 <!--引入 eureka server--> <dependency><groupId>org.spring ...

  8. 将微服务注册到Eureka Server上

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  9. Eureka简介与Eureka Server上

    Ereka,它是一个服务发现组件,我们为什么要学习Eureka,在SpringCloud里面,他提供了多种服务发现的支持,我们可以使用ZK,我们可以使用Consul服务发现,为什么我们只讲Eureka ...

最新文章

  1. MongoDB自增主键
  2. kqueue epoll 边界触发模式的网络编程模型
  3. JAVA中File转MultiparFile
  4. C Sharp进行附合水准路线计算中间点高程简易程序
  5. 单层感知器->BP算法详细推导
  6. 人工智能第二章知识表示
  7. 音乐外链php修复版源码
  8. 技术牛人---章文嵩博士---阿里副总裁章文嵩:淘宝基础设施构建实践
  9. 使用Java Swing编写文件操作管理器
  10. win7无法打开计算机共享文件夹,Win7共享文件夹无法访问怎么办?Win7共享文件夹无法访问解决方法...
  11. 微信公众号扫一扫功能vue配置
  12. 无线网络设置的dns服务器,DNS怎么设置才能上网
  13. dreamweaver如何连接mysql_Dreamweaver连接数据库教程(ASP类)
  14. Qt快速转换路径(斜杠与反斜杠转换)
  15. C语言三角分解非奇异矩阵为L、U矩阵
  16. 大数据这么火,什么是大数据呢?-大萝卜博客网
  17. OpenCV4学习笔记(76)——基于ArUco模块+QT实现增强现实(AR)
  18. Qt知识点梳理 —— 国际化 QtLinguist 应用(1)
  19. [翻译] effective go 之 Formatting Commentary
  20. 在英特尔硬件上部署深度学习模型的无代码方法 OpenVINO 深度学习工作台的三部分系列文章 - CPU AI 第一部

热门文章

  1. zigbee ti 附带工具使用方法
  2. 漂亮表格的CSS定义
  3. 把JS里面的Date规范输出为“YYYY-MM-DD HH:mm:SS”的字符串
  4. MY MOBILER v1.23 - 类似SOTI Pocket Controller的免费工具
  5. 应用分类练手项目计划
  6. MySQL- 用Navicat通过隧道连接到远程数据库
  7. python 字典操作
  8. Hadoop HDFS概念学习系列之shell命令使用HDFS的一些其他命令(十九)
  9. HASH暴力破解工具-Hashcat
  10. NIO入门系列之第4章:缓冲区内部细节