SpringCloud-day03-服务注册与发现组件Eureka
5.服务注册与发现组件Eureka
5.1Eureka简介:
类似zookeeper,Eureka也是一个服务注册和发现组件,是SpringCloud的一个优秀子项目,不过比较坑的是,Eureka2版本已经停止更新了。但是Eureka1版本还是很稳定,功能足够用,所以还是有必要学习下。
这里有几个常用的服务注册与发现组件比对;

服务注册与发现原理。

5.2搭建Eureka服务注册中心
前面说过eureka是c/s模式的 server服务端就是服务注册中心,其他的都是client客户端,服务端用来管理所有服务,客户端通过注册中心,来调用具体的服务;
我们先来搭建下服务端,也就是服务注册中心;
新建 module microservice-eureka-server-2001



pom.xml文件:
<?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">
<parent>
<artifactId>wfd360-station</artifactId>
<groupId>com.wfd360.station</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>microservice-eureka-server-2001</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!-- 修改后立即生效,热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies> </project>
主要是添加eureka依赖
application.yml配置:
server:
port: 2001
context-path: / eureka:
instance:
hostname: localhost #eureka注册中心实例名称
client:
register-with-eureka: false #false 由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己。
fetch-registry: false #false 由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka注册中心交互的地址,查询服务和注册服务用到
启动类:
EurekaApplication_2001
package com.wfd360; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /**
* Created by 姿势帝-博客园 on 2019/3/28.
* 欢迎添加笔者wx(851298348)共同探讨、学习!
*/
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication_2001 {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication_2001.class, args);
}
}
测试:

最基本的Eureka搭建成功!
5.3Eureka注册服务提供者
我们在原来的服务提供者项目 microservice-ticket-provider-1001 上面直接修改:
首先pom.xml修改,加上eureka客户端依赖:
<!-- eureka 依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
在 microservice-ticket-provider-1001 的 application.yml上加上配置
# eureka 注册中心配置
eureka:
instance:
hostname: localhost #eureka客户端主机实例名称
appname: microservice-ticket #客户端服务名
instance-id: microservice-ticket:1001 #客户端实例名称
prefer-ip-address: true #显示IP
client:
service-url:
defaultZone: http://localhost:2001/eureka #把服务注册到eureka注册中心,要和前面服务注册中心(microservice-eureka-server-2001)的defaultZone暴露地址一致
注意空格
然后在microservice-ticket-provider-1001 的启动类上添加注解 @EnableEurekaClient

测试,先启动服务注册中心,再启动这个服务提供者;
然后运行:http://localhost:2001/ ,结果如下图,说明eureka服务端搞定

这里有个问题点击实例状态:

报错:

这里报错的原因是没有配置实例的相关信息
首先在服务提供者(microservice-ticket-provider-1001 )项目pom.xml里加入actuator监控依赖:
<!-- actuator监控引入 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
然后再父项目(wfd360-station)pom.xml里加上构建插件配置,主要是为了再构建的时候扫描子项目配置文件,解析配置用的。
<!-- 构建的时候 解析 src/main/resources 下的配置文件 其实就是application.yml 解析以$开头和结尾的信息 -->
<build>
<finalName>microservice</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimit>$</delimit>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
在服务提供者(microservice-ticket-provider-1001 )项目application.yml加上info配置
# 服务提供者联系信息
info: version: v2
负责人: 姿势帝 - 博客园
微 信: 851298348
重启,测试,先启动注册中心,在启动的服务提供者,然后访问实例状态,结果如下,则配置完美!

SpringCloud-day03-服务注册与发现组件Eureka的更多相关文章
- 一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka)
本篇文章,很浅显的一步步讲解如何搭建一个能运行的springcloud项目(带所有操作截图).相信!看完本篇之后,你会觉得springcloud搭建如此简单~~~~ 一. Eureka简介: 1.1 ...
- spring boot 2.0.3+spring cloud (Finchley)1、搭建服务注册和发现组件Eureka 以及构建高可用Eureka Server集群
一 .搭建Eureka 编写Eureka Server 由于有多个spring boot项目,采用maven多module的结构,项目结构如下: 新建一个maven主工程,在主maven的pom文件中 ...
- springcloud之服务注册与发现(Eureka)
springcloud服务注册与发现 使用Eureka实现服务治理 作用:实现服务治理(服务注册与发现) 简介: Spring Cloud Eureka是Spring Cloud Netflix项目下 ...
- 【Spring Cloud】服务注册与发现组件——Eureka(二)
一.Eureka原理 1.架构图 首先来看eureka的官方结构图 所有应用作为Eureka Client和Eureka Server交互,服务提供者启动时向Eureka Server注册自己的IP. ...
- 微服务SpringCloud之服务注册与发现
在找.net core 微服务框架时发现了Steeltoe开源项目,它可以基于Spring Cloud实现.net core和.net Framework的微服务.正好之前也有学习过SpringBo ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-06 服务注册和发现之Eureka Client搭建商品服务实战
笔记 6.服务注册和发现之Eureka Client搭建商品服务实战 简介:搭建用商品服务,并将服务注册到注册中心 1.创建一个SpirngBoot应用,增加服务注册和发现依赖 2.模 ...
- SpringCloud - 2. 服务注册 和 发现
SpringCloud 的服务注册和发现是由Eureka来完成. 1.eureka server 1.1 依赖 <dependency> <groupId>org.spring ...
- SpringCloud之服务注册与发现Eureka(一)
Eureka是Spring Cloud Netflix微服务套件中的一部分,可以与Springboot构建的微服务很容易的整合起来.Eureka包含了服务器端和客户端组件.服务器端,也被称作是服务注册 ...
- springcloud干货之服务注册与发现(Eureka)
springcloud系列文章的第一篇 springcloud服务注册与发现 使用Eureka实现服务治理 作用:实现服务治理(服务注册与发现) 简介: Spring Cloud Eureka是Spr ...
随机推荐
- USD词汇表(USD Glossary)
这篇文章是在学习USD的过程中龟速写成的,目的是将USD的核心设计.相关概念的说明.以及配套API整理出来,为后续进行的USD开发工作提供中文资料支持. 实际上也只有充分理解了USD设计中的每一个知识 ...
- js通过查看屏幕大小,更改其他css属性
首先,我们要知道如何得到屏幕的相关数据. <html><head><title>获取当前对象大小以及屏幕分辨率等</title><body> ...
- 内存泄漏学习案例-1-ArrayList
解决 内存泄漏 于是赶快登陆探测服务器,首先是 top free df 三连,结果还真发现了些异常. 我们的探测进程 CPU 占用率特别高,达到了 900%. 我们的 Java 进程,并不做大量 CP ...
- JVM垃圾回收器
JVM堆内存 -Xms和-Xmx:用于设置堆内存的大小 -XX:NewSize和-XX:MaxNewSize :用于设置年轻代的大小,建议设为整个堆大小的1/3或者1/4,两个值设为一样大. -XX: ...
- Linux系统编程——Daemon进程
目录 Daemon进程介绍 前提知识 Daemon进程的编程规则 Daemon进程介绍 Daemon运行在后台也称作"后台服务进程". 它是没有控制终端与之相连的进程.它独立与控制 ...
- 一个故事带你理解if __name__ == '__main__'
如果你刚刚接触python,相信会在看别人的程序的时候会遇到if __name__ == '__main__'酱紫的语法,如果当时没看懂现在也一知半解的话,看下去,本文可以帮你解决这个问题. 大家都知 ...
- 解决WCF“接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致"
最近在工作中新加了一个接口,本地调试的时候,直接抛出“接收对 http://xxx.svc 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定未使用 HTTP 协议造成的.这还可能是由于服务器中 ...
- Python3.6.2安装pip install paramike模块报错
问题描述: 在有几台电脑上pip install paramike报错 报错内容: Could not find a version that satisfies the requirement sq ...
- 1. 通过DHCP服务器动态获取IP地址之后无法上网的解决方法
故障:内网正常,在同一个局域网内的其它PC端通过DHCP获取IP地址并且可以正常上网. 1.通过wireshark抓包,使用ipconfig /renew时,wireshark内出现DHCP请求服务, ...
- 转:Eclipse中web项目部署至Tomcat步骤
原址:http://blog.csdn.net/lucklq/article/details/7621807 Eclipse的web工程至Tomcat默认的部署目录是在工程空间下,本文旨在将部署目录改 ...