1.eureka是干什么的?

上篇说了,微服务之间需要互相之间通信,那么通信就需要各种网络信息,我们可以通过使用硬编码的方式来进行通信,但是这种方式显然不合适,不可能说一个微服务的地址发生变动,那么整个系统的所有微服务都要重新部署,显然是不合适的,那么我们需要一个服务发现机制,服务消费者通过这种机制来获取服务提供者的网络信息,并且服务提供者的网络信息即使变化,服务消费者也不必改变配置。Eureka提供的就是这样一种服务注册与发现的功能,也就是所有的服务在启动的时候都需要把自己的网络信息告诉Eureka以供所有服务使用

服务提供者、服务消费者、Eureka三者之间的关系

(1)服务提供者在启动的时候,将自己的网络信息注册到Eureka,Eureka存贮这些信息

(2)服务提供者与Eureka之间定时的发送心跳告诉Eureka我还在,如果长时间没有发送心跳,那么就表示该服务已经停止,就会注销该服务

(3)服务消费者可以通过Eureka查询服务提供者的网络地址,通过该地址查询调用服务提供者的接口

2.编写Eureka server

我们都用maven来管理依赖

1.创建maven工程并添加依

我用的全是最新的版本,对于不同springcloud版本和SpringBoot的兼容不同,详细看5

  1 <!--添加eureka-server依赖-->
  2         <dependency>
  3             <groupId>org.springframework.cloud</groupId>
  4             <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  5         </dependency><!--添加eureka-client依赖,这个依赖在这里可以不用加,如果但是如果是多个Eureka server 需要添加,因为Eureka之间需要互相注册-->
  6         <dependency>
  7             <groupId>org.springframework.cloud</groupId>
  8             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  9        </dependency>
 10     <!--引入SpringCloud的依赖-->
 11     <dependencyManagement>
 12         <dependencies>
 13             <dependency>
 14                 <groupId>org.springframework.cloud</groupId>
 15                 <artifactId>spring-cloud-dependencies</artifactId>
 16                 <version>Finchley.SR1</version>
 17                 <type>pom</type>
 18                 <scope>import</scope>
 19             </dependency>
 20         </dependencies>
 21     </dependencyManagement>
 22
 23     <!-- 注意: 这里必须要添加,否则各种依赖有问题 推测问题在于目前部分依赖没有上传到中央仓库 -->
 24     <repositories>
 25         <repository>
 26             <id>spring-milestones</id>
 27             <name>Spring Milestones</name>
 28             <url>http://repo.spring.io/milestone</url>
 29             <snapshots>
 30                 <enabled>false</enabled>
 31             </snapshots>
 32         </repository>
 33     </repositories>

点击查看代码

2.编写配置

  1 server:
  2   port: 8080
  3   tomcat:
  4     uri-encoding: utf-8
  5 eureka:
  6   client:
  7     #是否将自己注册到Eureka Server,默认为true,由于当前应用就是Eureka,所以设置成false
  8     register-with-eureka: false
  9     #表示是否从Eueka Server获取注册信息,默认为true,由于当前是单节点的Eureka Server,没有其他Eureka Server ,故而设置为false
 10     fetch-registry: false
 11     service-url:
 12       #这里是交互的地址,所有的服务注册与查询服务都需要通过这个地址,这里可以设置多个地址,用逗号隔开
 13       defaultZone: http://localhost:8080/eureka/
 14   server:
 15     enableSelfPreservation: false     #关闭做我保护模式
 16 

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的可以直接忽略,但是注册的时候主要用到的就是这个包

  1         <!--添加eureka-server依赖-->
  2         <dependency>
  3             <groupId>org.springframework.cloud</groupId>
  4             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  5         </dependency>

点击查看代码

5.2修改配置文件

  1 server:
  2   port: 8081
  3   tomcat:
  4     uri-encoding: utf-8
  5
  6
  7 spring:
  8   application:
  9     name: Tourist-user-server   #注册到Eureka server 上的应用名称
 10
 11
 12 eureka:
 13   client:
 14     service-url:
 15       defaultZone: http://localhost:8080/eureka/    #Eureka server  注册地址
 16   instance:
 17     prefer-ip-address: true  #表示将自己的IP注册到Eureka server ,该配置默认false,表示将所在计算机系统的hostname注册到Eureka server

关于配置或者代码里面细节的东西我都直接写在代码注释里了,毕竟方便看嘛

5.3 编写启动类

  1 @SpringBootApplication
  2 @EnableEurekaClient
  3 public class TouristuserserviceApplication {
  4
  5     public static void main(String[] args) {
  6         SpringApplication.run(TouristuserserviceApplication.class,args);
  7     }
  8 }
  9 

在这里就是把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

然后就成了。。。。。。。。

这纯属自己学习,如果有什么不对的地方请大神们多多指教,小弟万分感谢

转载于:https://www.cnblogs.com/SunArmy/p/9556619.html

SpringCloud(二) 服务注册与发现Eureka相关推荐

  1. springcloud 之服务注册与发现 Eureka Client

    在上一篇文章中我们已经成功的搭建了一个基于springcloud eureka的服务发现与注册中心,但是我们并没有向其中注入任何服务实例,接下来我将教大家如何将现有的服务注册到我们自己的eureka注 ...

  2. springcloud 之服务注册与发现Eureka Server

    我们在做分布式服务的时候总免不了听到"注册中心"这些词,那时候的我们总感觉这些东西很神秘很高大上,其实等我们正在去了解的时候发现其实他就是一个用来登记服务实例的一个容器而已,例如学 ...

  3. 《深入理解 Spring Cloud 与微服务构建》第六章 服务注册和发现 Eureka

    <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 Eureka 文章目录 <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 ...

  4. spring cloud 学习之 服务注册和发现(Eureka)

    一:服务注册和发现(Eureka) 1:采用Eureka作为服务注册和发现组件 2:Eureka 项目中 主要在启动类加上 注解@EnableEurekaServer @SpringBootAppli ...

  5. SpringCloud - 2. 服务注册 和 发现

    SpringCloud 的服务注册和发现是由Eureka来完成. 1.eureka server 1.1 依赖 <dependency><groupId>org.springf ...

  6. 微服务之服务注册与发现--Eureka(附代码)

    微服务之服务注册与发现--Eureka(附代码) 该贴为入门贴,看完可快速知道服务注册与发现是什么?怎么用?至于深入的内容不在此篇文章所述之内,请自行百度. 内容来自:https://blog.csd ...

  7. SpringCloud 从菜鸟到大牛之二 服务注册与发现 Sping Cloud Eureka

    继承上一篇文章 ,本文 就专门来介绍一下 服务与注册组件 服务注册与发现 Sping Cloud Eureka ,作为各个微服务的注册中心,维持心跳连接 注册中心 : Eureka Server ,E ...

  8. SpringCloud学习笔记:服务注册与发现Eureka(2)

    1. Eureka简介 Eureka是一个用于服务注册和发现的组件,分为Eureka Server和Eureka Client,Eureka Server为Eureka服务注册中心,Eureka Cl ...

  9. SpringCloud--Eureka服务注册与发现 Eureka 集群搭建 详细案例!!!

    SpringCloud组件--Eureka 完整笔记 一.Eureka基础知识 1.1.什么是服务治理 ? 1.2. 什么是服务注册与发现? 1.3.Eureka两组件:Eureka Server和E ...

最新文章

  1. 数据蒋堂 | 数据库的封闭性
  2. 重磅!韩国学者发布最新《人工智能元宇宙》综述论文
  3. did双重差分法_互助问答第252期:双重差分平行趋势检验等问题
  4. 手把手教你玩转ARP包(一)
  5. Java 字符串操作的总结1(转载)
  6. android设置大小能用小数,Android中关于保留小数点位数的处理
  7. Android播放器之SurfaceView与GLSurfaceView
  8. 飞秋2010下载又用什么样的技术
  9. git缓冲区查看_git原理学习记录:从基本指令到背后原理,实现一个简单的git
  10. windows下sublime2 clojure环境配置
  11. Python之路--Django--auth认证系统
  12. vb.net mysql 实例教程_VB.NET数据库编程基础教程(转载
  13. 质变的小米:从铁人三项到AIoT
  14. CT图像重建中的伪影
  15. Java入门,最全面最简单的Java基础教程
  16. 基于BCNN的汽车车型识别研究
  17. javax.faces.FacesException: Unable to find CDI BeanManager的解决方法
  18. 图像注意力机制汇总学习
  19. 使用ps优化图片,减少图片内存大小
  20. Mxnet训练自己的数据集并测试

热门文章

  1. 每日一题(4)—— (a ^ b 2)
  2. Python导包、模块报错的问题
  3. Linux命令行调用动态库,Linux动态链接库的使用
  4. python 查询sqlserver 视图_SQL Server查看视图定义总结
  5. 1+X web中级 Laravel学习笔记——视图和模型
  6. LeetCode 1153. 字符串转化(哈希)
  7. LeetCode 513. 找树左下角的值(按层遍历 queue)
  8. LeetCode 1. 两数之和(哈希)
  9. vue弹出alert_vue+webpack 实现简单的弹窗(alert)组件
  10. qr分解求线性方程组_计算方法/数值分析第三章 线性方程组的数值解法