失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Spring Cloud入门 -- Eureka服务注册与发现(Hoxton.SR5版)

Spring Cloud入门 -- Eureka服务注册与发现(Hoxton.SR5版)

时间:2022-08-24 14:50:59

相关推荐

Spring Cloud入门 -- Eureka服务注册与发现(Hoxton.SR5版)

什么是Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

来自百度百科声明

Eureka简介

Eureka 目前是 2.x 版本,并且官方已经宣布不再维护更新。不过其实 Eureka 已经很稳定了,当做注册中心完全没有问题。Spring Cloud 集成了 Eureka ,并做了完善的封装。方便我们使用 Spring boot 开发的时候简单配置就可以使用。

微服务框架中有三类角色,分别是注册中心、服务提供者、服务消费者,注册中心就是今天要说的主角 Eureka,这篇文章简单说明 Spring Cloud Eureka 的使用,模拟实现单点和高可用注册中心,并简单介绍服务提供者和服务消费者如何使用 Eureka 提供的服务注册和发现功能。

注册中心产品比较

本图片来自于网图

微服务版本

SpringBoot:2.2.8.RELEASE

SpringCloud:Hoxton.SR5

搭建主工程:springcloud

创建springcloud主工程,用来放其他模块服务(子项目)。

步骤:File --> New --> Project --> Maven --> Next --> 填写包路径,项目名称 --> Next --> 修改pom.xml文件

创建Eureka服务端模块

创建Eureka服务端模块eureka-server,并将它放在刚刚上面创建的主工程之下

步骤:点击主工程springcloud --> 右键New -->Module -->Spring Initializer --> Next -->填写Group 和 Artifact --> Next --> 选择Spring Cloud Discovery中的Eureka Server组件(也可不选,进行手动在pom.xml文件里添加)-->在启动类上添加@EnableEurekaServer注解来启用Euerka注册中心功能 -->在配置文件application.yml(application.properties)中添加Eureka注册中心的配置

手动创建Eureka Server组件

步骤:在eureka-server服务的 pom.xml文件--> 找到对应的 <dependencies> (依赖关系)标签 --> 在标签内添加

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>

在启动类上添加@EnableEurekaServer注解来启用Euerka注册中心功能

在配置文件application.yml(等价于application.properties)中添加Eureka注册中心的配置

PS:application.properties 文件和application.yml 文件有什么区别呢?

1、yml文件的好处,树状结构,便于阅读,本质上跟properties功能是一样的。

2、加载顺序比较。application.properties优先于pplication.yml,两个文件同事存在取application.properties

server:# 设置端口号port: 8101spring:application:# 设置服务名称name: eureka-servereureka:instance:# 设置主机地址hostname: localhostclient:# 指定是否从注册中心获取服务(注册中心不需要开启)fetch-registry: false# 指定是否将服务注册到注册中心(注册中心不需要开启)register-with-eureka: false

运行Eureka服务

方式一

右键选中启动类(EurekaServerApplication) --> run

方式二

按照下图一图二顺序执行 1 --> 2 --> 3 --> 4 (步骤四名字可以自取)

图一

图二

运行完成后访问地址http://localhost:8101/可以看到Eureka注册中心的界面

搭建Eureka集群

为什么要搭建Eureka注册中心集群?

因为以后我们所有服务都将会注册到注册中心去,假如eureka宕机了,则会导致无法服务之间的相互调用,导致系统大面积瘫痪,所以需要搭建eureka集群模式。

搭建三个Eureka注册中心

第一个Eureka注册中心的配置文件

server:# 设置端口号port: 8101spring:application:# 设置服务名称name: eureka-servereureka:instance:# 设置主机地址 (设置Active profiles)#(由于defaultZone使用了域名,所以还需在本机的host文件中配置一下;C:\Windows\System32\drivers\etc)# 127.0.0.1 cluster1# 127.0.0.1 cluster2# 127.0.0.1 cluster3hostname: cluster1client:# 指定是否从注册中心获取服务(注册中心如果是集群则开启)fetch-registry: false# 指定是否将服务注册到注册中心(注册中心如果是集群则开启)register-with-eureka: trueservice-url:# 两两相互注册defaultZone: http://cluster2:8102/eureka/,http://cluster3:8103/eureka/server:# 关闭自我保护模式enable-self-preservation: true# 清理服务间隔4s,默认60*10000eviction-interval-timer-in-ms: 4000

第二个Eureka注册中心的配置文件

server:# 设置端口号port: 8102spring:application:# 设置服务名称name: eureka-servereureka:instance:# 设置主机地址hostname: cluster2client:# 指定是否从注册中心获取服务(注册中心不需要开启)fetch-registry: false# 指定是否将服务注册到注册中心(注册中心不需要开启)register-with-eureka: trueservice-url:# 两两相互注册defaultZone: http://cluster1:8101/eureka/,http://cluster3:8103/eureka/server:# 关闭自我保护模式 (设置为true则在eureka界面上不显示:THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.)enable-self-preservation: false# 清理服务间隔4s,默认60*10000eviction-interval-timer-in-ms: 4000

第三个Eureka注册中心的配置文件

server:# 设置端口号port: 8103spring:application:# 设置服务名称name: eureka-servereureka:instance:# 设置主机地址hostname: cluster3client:# 指定是否从注册中心获取服务(注册中心如果是集群则开启)fetch-registry: false# 指定是否将服务注册到注册中心(注册中心如果是集群则开启) 默认为trueregister-with-eureka: trueservice-url:defaultZone: http://cluster1:8101/eureka/,http://cluster2:8102/eureka/server:# 关闭自我保护模式enable-self-preservation: false# 清理服务间隔4s,默认60*10000eviction-interval-timer-in-ms: 4000

由于以上以上的三个注册中心相互注册中的defaultZone使用的域名,所以我们还需要在本机的host文件中配置如下设置

使用管理员模式修改host文件,host文件目录:C:\Windows\System32\drivers\etc。添加以下配置,然后保存退出

127.0.0.1 cluster1127.0.0.1 cluster2127.0.0.1 cluster3

运行Eureka集群

方式一:创建三份启动配置文件,并将active profiles修改对应的值

方式二:从原本的启动文件拷贝三份,并修改对应的active profiles

分别启动三个eureka-server

访问以下三个连接

http://replica1:8101/

http://replica1:8102/

http://replica1:8103/

结束语

如有什么写不好的地方,还请大家多多包涵,并给予指出,谢谢

如果觉得《Spring Cloud入门 -- Eureka服务注册与发现(Hoxton.SR5版)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。