SpringCloud(二) 服务注册与发现Eureka

      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.启动

     然后我们可以看见这样的页面就说明恭喜你成功了Nyah-Nyah    

     但是注意看instances currently registered with Eureka   这里面是我们注册的服务,这是空的(废话,我还没注册呢Sleepy smile),页面内容英语稍微好一点看看应该就明白了,实在不行就百度翻译吧

 

imageimage

 

现在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 看看是否注册进去了

   image

 

   OK!!!!成功注册上去了,大功告成

 

7.关于版本

    关于springcloud版本

image

  这只是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

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

 

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【剑指offer】面试题56 - II:数组中数字出现的次数 II(Java)

在一个数组 nums 中除一个数字只出现一次之外&#xff0c;其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1&#xff1a; 输入&#xff1a;nums [3,4,3,3] 输出&#xff1a;4 示例 2&#xff1a; 输入&#xff1a;nums [9,1,7,9,7,9,7] 输出&#xff1a;1 限…

Java打印三角形(双层for循环)

Java打印三角形(双层for循环) 1.第一个三角形&#xff1a; 打印样式&#xff1a; 外层for循环控制行数&#xff0c;内层for循环控制“*”的个数 public static void demo01(){//行数&#xff1a;4行for(int i1;i<4;i){/*找规律&#xff1a;第一行&#xff1a;1个*第二行…

深度学习后,图灵奖得主Bengio研究核心是什么?因果表示学习

机器之心报道编辑&#xff1a;魔王、杜伟在近日发表的一篇论文中&#xff0c;图灵奖得主 Yoshua Bengio 等详细介绍了其团队当前的研究重心&#xff1a;将机器学习与因果推理相结合的因果表示学习。研究者不仅全面回顾了因果推理的基础概念&#xff0c;并阐释了其与机器学习的融…

WPF使用Canvas绘制可变矩形

WPF使用Canvas绘制可变矩形 原文:WPF使用Canvas绘制可变矩形版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/WANGYAN9110/article/details/38130661 1、问题以及解决办法 最近因为项目需要&#xff0c;需要实现一个位置校对…

Java中关于自增自减

Java中关于自增和自减 关于自增和自减&#xff0c;一直困扰着我&#xff0c;总是学完了当时明白&#xff0c;过了没多长时间又忘了&#xff0c;学的也不牢固。经过老师这一次的讲解&#xff0c;总结的这篇博客&#xff0c;如有错误还请指正。 第一题&#xff1a; 加上括号好看…

【剑指offer】面试题57:和为s的两个数字(Java)

输入一个递增排序的数组和一个数字s&#xff0c;在数组中查找两个数&#xff0c;使得它们的和正好是s。如果有多对数字的和等于s&#xff0c;则输出任意一对即可。 示例 1&#xff1a; 输入&#xff1a;nums [2,7,11,15], target 9 输出&#xff1a;[2,7] 或者 [7,2] 示例 2…

《麻省理工科技评论》发布2021年“全球十大突破性技术”

全文共计8398字&#xff0c;预计阅读时间10分钟来源 | DeepTech深科技&#xff08;转载请注明来源&#xff09;编辑 | 蒲蒲正如比尔盖茨所说&#xff0c;看过这些突破性技术之后&#xff0c;你会觉得 “美好的未来&#xff0c;值得我们为之奋斗”。日前&#xff0c;《麻省理工科…

@Valid的坑

Valid 只能用来验证 RequestBody 标注的参数&#xff0c;并且要写在 RequestBody 之前 转载于:https://www.cnblogs.com/jichen/p/9561622.html

Java——String类的方法

Java——String类的方法 String str1 “abc” 与String str2 new String(“abc”)有什么区别&#xff1f; 字符串常量存储在字符串常量池&#xff0c;目的是共享字符串非常量对象存储在堆中 String的常用方法 常用方法1&#xff1a; int length()&#xff1a;返回字符串的…

【剑指offer】面试题57 - II:和为s的连续正数序列(Java)

输入一个正整数 target &#xff0c;输出所有和为 target 的连续正整数序列&#xff08;至少含有两个数&#xff09;。 序列内的数字由小到大排列&#xff0c;不同序列按照首个数字从小到大排列。 示例 1&#xff1a; 输入&#xff1a;target 9 输出&#xff1a;[[2,3,4],[4…

OpenAI魔法模型DALL-E论文、代码公布!

来源&#xff1a;AI科技评论编译&#xff1a;AI科技评论OpenAI在1月5日公布DALL-E模型以来&#xff0c;人们都惊艳于模型的语言想象力是如此丰富和细致。如今&#xff0c;我们终于等到了论文的公布&#xff0c;从而得以了解DALL-E天马行空创造力背后的奥秘。值得一提的是&#…

MikroTik RouterOS x86最大内存只能支持2G

这个和授权无关&#xff0c;所以多余的内存将不被使用&#xff0c;并且官方逐步放弃对x86的支持&#xff0c;转投硬件以及chr的支持。而且x86架构对于网卡驱动非常挑剔&#xff0c;一不小心购买的网卡是没有驱动的&#xff0c;只能买一些intel或者博通的高端网卡。 在chr版本中…

Maven项目无法加载jdbc.properties

Maven项目无法加载jdbc.properties(java.sql.SQLException: The server time zone value ‘&#xfffd;й&#xfffd;&#xfffd;&#xfffd;׼ʱ&#xfffd;&#xfffd;’ is unrecog) 1.JdbcUtils.java package com.zxm.utils;import java.io.InputStream; import ja…

【剑指offer】面试题58 - I:翻转单词顺序(Java)

输入一个英文句子&#xff0c;翻转句子中单词的顺序&#xff0c;但单词内字符的顺序不变。为简单起见&#xff0c;标点符号和普通字母一样处理。例如输入字符串"I am a student. "&#xff0c;则输出"student. a am I"。 示例 1&#xff1a; 输入: "…

Hinton:我终于想明白大脑怎么工作了!神经学家花三十年,寻找反向传播的生物机制...

来源&#xff1a;智源社区作者&#xff1a;Anil Ananthaswamy编译&#xff1a;梦佳「有一天晚上&#xff0c;我回家吃饭&#xff0c;激动地说『我终于想明白大脑是怎么工作的了&#xff01;』我15岁的女儿对我说&#xff0c;怎么又来了&#xff0c;老爸。」 …

Mybatis学习笔记(一)——项目搭建、导入依赖、相关配置

Mybatis学习笔记&#xff08;一&#xff09;——项目搭建、导入依赖、相关配置 传送门&#xff1a;Mybatis中文网&#xff08;入门手册&#xff09;Mybatis中文网 一、新建项目 在项目中新建模块&#xff1a; 二、学习Mybatis常用的依赖&#xff1a; <dependencies…

you *might* want to use the less safe log_bin_trust_function_creators variable

MySQL you *might* want to use the less safe log_bin_trust_function_creators variable 刷脚本时&#xff0c;多次遇到这个问题&#xff0c;是因为当前版本的数据库默认关闭了一个配置。执行如下命令可解决该问题&#xff1a; SET GLOBAL log_bin_trust_function_creators …

【剑指offer】面试题58 - II:左旋转字符串(Java)

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如&#xff0c;输入字符串"abcdefg"和数字2&#xff0c;该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1&#xff1a; 输入: s &qu…

数学与工业革命

来源&#xff1a;中科院数学与系统科学研究院作者&#xff1a;黄雷&#xff0c;中科院数学与系统科学研究院数学&#xff0c;无时无刻不散发着它独特的魅力。上到宇宙飞船遨游外太空&#xff0c;下至小商小贩行走菜市间&#xff0c;这门与每个人生活都息息相关的学科一直在默默…

C语言 - strcpy和strncpy的编程实现及总结

一、字符串的strcpy与strncpy函数 1、编程实现strcpy函数&#xff08;笔试很容易考到&#xff09; 要求&#xff1a;  原型&#xff1a;char *stpcpy(char *strDest,char *strSrc); 头文件&#xff1a;#include <string.h> 功能&#xff1a;把src所指由NULL结束的字符…