SpringCloud学习--Eureka 服务注册与发现
Posted Lyf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud学习--Eureka 服务注册与发现相关的知识,希望对你有一定的参考价值。
目录
为什么选择Eureka,请看上一篇博客 Eureka -- 浅谈Eureka
项目构建
IDEA 选择 New Project 选择 Spring Initializr
填入Group组、Artifice项目名,勾选Type为 Gradle Config(这里是基于gradle实现的)
选择组件:根据自己需要进行选择,这里需要Eureka来做为注册中心,所以我先勾线了Eureka的两个服务依赖
创建完成后 在 bulid.gradle中 使用subprojects统一所有子项目的配置
subprojects{} 作用:使用多模块项目时,不同模块之间有相同的配置,导致重复配置,可以将相同的部分抽取出来,使用配置注入的技术完成子项目的配置。根项目就像一个容器, subprojects 方法遍历这个容器的所有元素并且注入指定的配置。
服务注册与发现
注册中心
首先先创建一个Module模块,操作如下:右键项目 New Module
选择gradle(如果用maven构建请选择maven)
输入模块名称 register-center
完成模块创建,在子模块的bulid.gradle中 添加 eureka 注册服务依赖
dependencies { compile(\'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server\') }
在main里面创建启动类RegisterApplication(注意加入@EnableEurekaServer注解 来表明自己是一个注册中心)
@SpringBootApplication @EnableEurekaServer//表明自己是注册中心 public class RegisterApplication { public static void main(String[] args) { SpringApplication.run(RegisterApplication.class, args); } }
在resources中添加application.yml配置文件
spring:
application:
name: register-center
server:
port: 10000
eureka:
client:
service-url:
defaultZone: http://localhost:10000/eureka#默认地址
register-with-eureka: false#启动时不注册表明自己是一个注册中心
fetch-registry: false
这里自定义了Eureka端口地址
其Eureka默认端口地址为8761
打开Eureka地址 发现 自己(register-center)已经被注册进了,和我们起初只是单让它作为一个注册中心是不匹配的
可以发现现在是没有配置 register-with-eureka: false fetch-registry: false 这两句代码的 Eureka也将自己注册进来,将这两句代码加入配置文件中 再次刷新Eureka发现自己已经不在注册中心了
服务发现
同上再次创建一个Module(order-client) 在其bulid.gradle中添加eureka客户端的依赖
dependencies { compile(\'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client\') }
创建启动类OrderClientApplication(添加@EnableDiscoveryClient //表示自己是eureka客户端)
@SpringBootApplication @EnableEurekaClient //表明自己是eureka客户端 public class OrderClientApplication { public static void main(String[] args) { SpringApplication.run(OrderClientApplication.class,args); } }
添加application.yml配置 这里就不需要在写入 register-with-eureka: false fetch-registry: false
这里在启动时应该注意先将eureka服务端(register-center)启动,再启动客户端(order-client),如不先启动服务端(也可以添加 register-with-eureka: false fetch-registry: false 解决但是这就又成为服务端了,并不是我们想要的),客户端将报如下错误
这里牵扯到Eureka的特点:即是服务端,又是客户端,后续会对Eureka注册过程进行一个分析想学习的,请关注博主o,这里先不做说明
启动服务端再启动客户端,刷新注册中心,发现客户端已经注册进去了
至此,Eureka的服务注册就已经实现了。
以上是关于SpringCloud学习--Eureka 服务注册与发现的主要内容,如果未能解决你的问题,请参考以下文章