SpringCloud(二) 服务注册与发现Eureka
1.eureka是干什么的?
上篇说了,微服务之间需要互相之间通信,那么通信就需要各种网络信息,我们可以通过使用硬编码的方式来进行通信,但是这种方式显然不合适,不可能说一个微服务的地址发生变动,那么整个系统的所有微服务都要重新部署,显然是不合适的,那么我们需要一个服务发现机制,服务消费者通过这种机制来获取服务提供者的网络信息,并且服务提供者的网络信息即使变化,服务消费者也不必改变配置。Eureka提供的就是这样一种服务注册与发现的功能,也就是所有的服务在启动的时候都需要把自己的网络信息告诉Eureka以供所有服务使用
服务提供者、服务消费者、Eureka三者之间的关系
(1)服务提供者在启动的时候,将自己的网络信息注册到Eureka,Eureka存贮这些信息
(2)服务提供者与Eureka之间定时的发送心跳告诉Eureka我还在,如果长时间没有发送心跳,那么就表示该服务已经停止,就会注销该服务
(3)服务消费者可以通过Eureka查询服务提供者的网络地址,通过该地址查询调用服务提供者的接口
2.编写Eureka server
我们都用maven来管理依赖
1.创建maven工程并添加依
我用的全是最新的版本,对于不同springcloud版本和SpringBoot的兼容不同,详细看5
<!--添加eureka-server依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency><!--添加eureka-client依赖,这个依赖在这里可以不用加,如果但是如果是多个Eureka server 需要添加,因为Eureka之间需要互相注册-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--引入SpringCloud的依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <!-- 注意: 这里必须要添加,否则各种依赖有问题 推测问题在于目前部分依赖没有上传到中央仓库 -->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
点击查看代码
2.编写配置
server:
port: 8080
tomcat:
uri-encoding: utf-8
eureka:
client:
#是否将自己注册到Eureka Server,默认为true,由于当前应用就是Eureka,所以设置成false
register-with-eureka: false
#表示是否从Eueka Server获取注册信息,默认为true,由于当前是单节点的Eureka Server,没有其他Eureka Server ,故而设置为false
fetch-registry: false
service-url:
#这里是交互的地址,所有的服务注册与查询服务都需要通过这个地址,这里可以设置多个地址,用逗号隔开
defaultZone: http://localhost:8080/eureka/
server:
enableSelfPreservation: false #关闭做我保护模式
3.编写启动类
@SpringBootApplication
@EnableEurekaServer //启动一个服务注册中心提供给其他应用进行对话
public class TouristRegisterCenter {
public static void main(String[] args) {
SpringApplication.run(TouristRegisterCenter.class, args);
}
}
整个启动类只是加了一个@EnableEurekaServer 注解
4.启动
然后我们可以看见这样的页面就说明恭喜你成功了
但是注意看instances currently registered with Eureka 这里面是我们注册的服务,这是空的(废话,我还没注册呢
),页面内容英语稍微好一点看看应该就明白了,实在不行就百度翻译吧


现在Eureka server已经有了,那么我们肯定要网上注册一点东西啊,接着我们直接copy上面这个然后做一个修改就OK了。上代码
5.将微服务注册到Eureka server
5.1 上面那个pom里面有这个依赖,如果直接copy的可以直接忽略,但是注册的时候主要用到的就是这个包
<!--添加eureka-server依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
点击查看代码
5.2修改配置文件
server:
port: 8081
tomcat:
uri-encoding: utf-8 spring:
application:
name: Tourist-user-server #注册到Eureka server 上的应用名称 eureka:
client:
service-url:
defaultZone: http://localhost:8080/eureka/ #Eureka server 注册地址
instance:
prefer-ip-address: true #表示将自己的IP注册到Eureka server ,该配置默认false,表示将所在计算机系统的hostname注册到Eureka server
关于配置或者代码里面细节的东西我都直接写在代码注释里了,毕竟方便看嘛
5.3 编写启动类
@SpringBootApplication
@EnableEurekaClient
public class TouristuserserviceApplication { public static void main(String[] args) {
SpringApplication.run(TouristuserserviceApplication.class,args);
}
}
在这里就是把server中的@EnableEurekaServer 改成了@EnableEurekaClient ,声明这是一个Eureka client
6.启动查看
首先启动Eureka server ,启动成功之后再启动Eureka client
两个全部启动之后我们再访问Eureka server 看看是否注册进去了

OK!!!!成功注册上去了,大功告成
7.关于版本
关于springcloud版本

这只是springcloud版本,因为springcloud基于springBoot,所以springcloud与SpringBoot的版本最好对应,详情可以看一下GitHub上springcloud的信息,附上地址https://github.com/spring-projects/spring-cloud/wiki/Spring-Cloud-Finchley-Release-Notes
8.结束
其实关于Eureka server 总结下来就是
1.添加依赖
2.配置
3.在启动类添加注解,声明这是一个Eureka server
Eureka client 也就是微服务,注册的过程也很简单
1.添加依赖
2.增加配置,主要就是注册上去的名称和注册地址
3.在启动类上声明是一个Eureka client
然后就成了。。。。。。。。
这纯属自己学习,如果有什么不对的地方请大神们多多指教,小弟万分感谢
SpringCloud(二) 服务注册与发现Eureka的更多相关文章
- SpringCloud(2) 服务注册和发现Eureka Server
一.简介 EureKa在Spring Cloud全家桶中担任着服务的注册与发现的落地实现.Netflix在设计EureKa时遵循着AP原则,它基于REST的服务,用于定位服务,以实现云端中间层服务发现 ...
- SpringCloud之服务注册与发现Eureka(一)
Eureka是Spring Cloud Netflix微服务套件中的一部分,可以与Springboot构建的微服务很容易的整合起来.Eureka包含了服务器端和客户端组件.服务器端,也被称作是服务注册 ...
- SpringCloud之服务注册与发现Eureka+客户端Feign
前言 SpringCloud 是微服务中的翘楚,最佳的落地方案. Eureka 作为注册中心,是 SpringCloud 体系中最重要最核心的组件之一. Feign 使用接口加注解的方式调用服务,配合 ...
- Spring Cloud(二):服务注册与发现 Eureka【Finchley 版】
Spring Cloud(二):服务注册与发现 Eureka[Finchley 版] 发表于 2018-04-15 | 更新于 2018-05-07 | 上一篇主要介绍了相关理论,这一篇开始我们 ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战
笔记 5.服务注册和发现Eureka Server搭建实战 简介:使用IDEA搭建Eureka服务中心Server端并启动,项目基本骨架介绍 官方文档:http://clou ...
- SpringCloud - 2. 服务注册 和 发现
SpringCloud 的服务注册和发现是由Eureka来完成. 1.eureka server 1.1 依赖 <dependency> <groupId>org.spring ...
- spring cloud 学习之 服务注册和发现(Eureka)
一:服务注册和发现(Eureka) 1:采用Eureka作为服务注册和发现组件 2:Eureka 项目中 主要在启动类加上 注解@EnableEurekaServer @SpringBootAppli ...
- SpringCloud 学习(二) :服务注册与发现Eureka
Spring Cloud应用中可以支持多种的服务治理框架,比如Eureka.Consul.Zookeeper等,现在我们用的是consul,本文以SpringCloud Dalston.SR5版本介绍 ...
- SpringCloud(二)- 服务注册与发现Eureka
离上一篇微服务的基本概念已经过去了几个月,在写那篇博客之前,自己还并未真正的使用微服务架构,很多理解还存在概念上.后面换了公司,新公司既用了SpringCloud也用了Dubbo+Zookeeper, ...
随机推荐
- Java 之jdbc连接mysql数据库
package jdbc; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; ...
- NGINX+PHP-FPM7 FastCGI sent in stderr: “Primary script unknown”
https://www.cnblogs.com/hjqjk/p/5651275.html 一开始是Nginx打开网页显示一直是拒绝访问.查看nginx日志是报错显示我的题目,然后就各种搜索解决啊! 百 ...
- vue03 axios
4. 通过axios实现数据请求 vue.js默认没有提供ajax功能的. 所以使用vue的时候,一般都会使用axios的插件来实现ajax与后端服务器的数据交互. 注意,axios本质上就是java ...
- Ansible 利用playbook批量部署mariadb
环境说一下 192.168.30.21 ansible 192.168.30.25 client1 192.168.30.26 client2 这里我的ansible环境已经部 ...
- 1040 有几个PAT (25 分)
题目链接:1040 有几个PAT (25 分) 做这道题目,遇到了新的困难.解决之后有了新的收获,甚是欣喜! 刚开始我用三个vector数组存储P A T三个字符出现的位置,然后三层for循环,根据字 ...
- python--(十五步代码学会进程)
python--(十五步代码学会进程) 一.进程的创建 import time import os #os.getpid() 获取自己进程的id号 #os.getppid() 获取自己进程的父进程id ...
- 简单的SpringBoot环境搭建
开始搭建前请确认您的计算机中的Maven已正确配置 一:使用IDEA创建一个Maven项目,图中第一个指针请选择自己正在使用的JDK版本,指针二请打勾,选中指针三所指向的类型并点击Next 二:填写G ...
- 【 Educational Codeforces Round 51 (Rated for Div. 2) F】The Shortest Statement
[链接] 我是链接,点我呀:) [题意] [题解] 先处理出来任意一棵树. 然后把不是树上的边处理出来 对于每一条非树边的点(最多21*2个点) 在原图上,做dijkstra 这样就能处理出来这些非树 ...
- qwb与学姐
qwb与学姐 Time Limit: 1 Sec Memory Limit: 128 MB Description qwb打算向学姐表白,可是学姐已经受够了他的骚扰,于是出了一个题想难住他:已知一幅 ...
- 洛谷 P1469 找筷子
题目描述 经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题,筷子!CX ...