网站首页 > 博客文章 正文
Eureka
服务注册中心
入门主要流程
1 搭建 eureka server
2 搭建 服务提供者 向eureka server注册
2 搭建 服务消费者 向 eureka server获取 提供者地址 然后发起调用
1 创建maven父工程
Pom依赖如下:
<dependencyManagement>
<dependencies>
<!-- springcloud依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!-- springboot的父依赖 不放在pom中的parent标签中 子项目按需使用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.1.5.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
2 搭建eureka server
2.1 在父工程下创建module, pom依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
2.2 创建启动类,添加注解
2.3 配置application.yml文件
server:
port: 20000
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: eureka-server
2.4 启动项目,启动成功,根据自己配置的端口,可以访问项目
3 搭建 服务提供者
3.1 创建module, pom依赖如下
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3.2 创建启动类,添加注解
3.3 配置application.yml
server:
port: 30001
eureka:
client:
service-url:
defaultZone: http://localhost:20000/eureka/
spring:
application:
name: eureka-client
3.4 写个测试接口
3.5 启动项目,成功后,在eureka server页面可以看到注册成功
4 搭建服务消费者
4.1 创建module, pom依赖如下
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
4.2 创建启动类 添加注解
4.3 配置application.yml
server:
port: 30002
eureka:
client:
service-url:
defaultZone: http://localhost:20000/eureka/
spring:
application:
name: eureka-consumer
4.4 写个controller,调用服务提供者的接口
这里获取服务提供者的地址,可以用
org.springframework.cloud.client.loadbalancer.LoadBalancerClient(这个有负载均衡)
或者
org.springframework.cloud.client.discovery.DiscoveryClient
4.5启动项目
可以在eureka server上看见注册信息
同时 访问localhost:30002/hello,成功访问
5 想法
5.1 Eureka的逻辑:
1 服务提供者 向其注册,主要的信息时ip和端口
2 服务消费者 向其获取相关服务提供者的地址(ip+port)
3 服务消费者获取到地址后 就发起http调用
注册中心还是很有必要的,它统一管理 服务的注册,续约,下线等等
让消费者不用关心服务提供者的情况,需要调用时直接向注册中心拿提供者地址就行。
5.2 原理
5.2.1 eureka server
项目启动时 会加载该配置类 进行eureka server的各种配置并启动
但该配置类生效有个条件
要存在org.springframework.cloud.netflix.eureka.server.EurekaServerMarkerConfiguration.Marker的实例
@EnableEurekaServer 注解 就能配置该类的实例
因此启动类上加上该注解 就能实现eureka server
5.2.2 eureka client
项目启动后,这些配置类都会被加载,然后eureka client进行配置并启动
猜你喜欢
- 2024-09-20 Spring cloud Ribbon 客户端负载均衡详解(二)负载均衡器
- 2024-09-20 springcloud(十三):注册中心 Consul 使用详解
- 2024-09-20 SpringCloud系列——11Spring Cloud 源码分析之Gateway网关
- 2024-09-20 FeignClient注解配置url属性实现指定服务方
- 2024-09-20 SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(2)
- 2024-09-20 我放弃了okhttp、httpClient,选了这个神仙工具
- 2024-09-20 还没有秃头吗?你真的需要大牛来教你如何深入解析Ribbon源码了
- 2024-09-20 Spring GateWay : 网关的转发细节
- 2024-09-20 深入理解SpringCloud之Gateway,小白都能看懂的保姆级教学
- 2024-09-20 微服务架构进阶:Hystrix 如何解决灾难性雪崩及隔离问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)