SpringCloud 集成 Eureka服务,本机测试

ops/2024/12/18 19:41:58/

Eureka是一款开源的服务注册与发现组件,分EurekaServer和EurekaClient。
Eureka作用过程:
Eureka Client(服务提供者)启动向Eureka Server(http-api)注册,另一个Eureka Client(服务消费者)从EurekaServer拉取服务信息,从而调用 服务提供者的服务。

在IDEA中创建SpringCloud项目集成Eureka服务

1.创建SpringCloud项目,在pom.xml添加Eureka服务依赖包

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

2.在application的main方法类上添加@EnableEurekaServer注解

@SpringBootApplication
@EnableEurekaServer
public class SpringcloudEurekaApplication {public static void main(String[] args) {SpringApplication.run(SpringcloudEurekaApplication.class, args);}}

3.在application.properties配置文件添加Eureka服务的配置


#指定注册中心名称
spring.application.name=eureka-peer
#端口号
server.port=8761#spring.freemarker.prefer-file-system-access=false#当前实例
eureka.instance.hostname=dev
eureka.instance.instance-id=dev
#eureka.instance.ip-address=true#client
#是否向Eureka注册中心拉取信息
eureka.client.fetch-registry=false
#是否将自己注册到Eureka中心
eureka.client.register-with-eureka=false
#Eureka注册中心的地址;defaultZone 注册服务区域
eureka.client.service-url.defaultZone = http://localhost:8761/eureka#server 同步数据等待时间
eureka.server.wait-time-in-ms-when-sync-empty = 0
#自我保护机制
eureka.server.enable-self-preservation=true
# 多长时间同步数据
eureka.server.peer-eureka-nodes-update-interval-ms=1000000

4.运行项目

image.png

在浏览器访问 http://localhost:8761,出现Eureka服务的管理页面:
image.png

如果发现项目运行后报错或者Eureka的管理页面打不开,可能是端口没有添加到tomcat的server.xml中:

image.png
Eureka 服务提供者,即EurekaClient。

创建一个SpringCloud项目作为服务提供者one
1.创建SpringCloud服务提供者one项目,在pom.xml添加Eureka服务依赖包

<!--提供web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
<!--  eureka-client      --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>

2.在application的main方法类上添加@EnableEurekaClient注解

@SpringBootApplication
@EnableEurekaClient
public class SpirngcloudEurekaClientOneApplication {public static void main(String[] args) {SpringApplication.run(SpirngcloudEurekaClientOneApplication.class, args);}
}

3.在application.properties配置文件添加Eureka服务提供者的配置

#指定注册中心服务提供者名称
spring.application.name=client-one
#端口号
server.port=8081#client
#是否向Eureka注册中心拉取信息
eureka.client.fetch-registry=true
#是否将自己注册到Eureka中心
eureka.client.register-with-eureka=true
#Eureka注册中心的地址
eureka.client.service-url.defaultZone = http://localhost:8761/eureka

4.服务提供者

//服务提供者
@RestController
public class ClientController {@GetMapping("/client1")public Object index(){String str = "服务提供者 client one 提供信息";return new String(str);}
}

服务消费者

//
@RestController
public class CustomerController {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/getdata")public Object getIndex(){//http://client-two/client2  :client-two是调用服务者的注册服务名称return restTemplate.getForObject("http://client-two/client2",String.class,"");}
}
//RestTemplate  配置
@Configuration
public class Config {@Bean@LoadBalancedpublic RestTemplate restTemplate(RestTemplateBuilder builder) {return builder.build();}
}

5.运行服务提供者one项目


image.png

在Eureka控制页面可以看到Application下有服务提供者的名字:


image.png

同理创建一个SpringCloud项目作为服务提供者two的项目
把配置文件里的服务提供者的名字和端口改下:

#指定注册中心服务提供者名称
spring.application.name=client-two
#端口号
server.port=8082#spring.freemarker.prefer-file-system-access=false#client
#是否向Eureka注册中心拉取信息
eureka.client.fetch-registry=true
#是否将自己注册到Eureka中心
eureka.client.register-with-eureka=true
#Eureka注册中心的地址
eureka.client.service-url.defaultZone = http://localhost:8761/eureka

服务的提供和消费者

//提供者
@RestController
public class ClientTwoController {@GetMapping("/client2")public Object index(){String str = "服务提供者 client two 2 提供信息";return new String(str);}
}
//消费者
@RestController
public class CustomerController {@AutowiredRestTemplate restTemplate;@GetMapping("/getdata")public Object getData(){//http://client-one/client2  :client-one是调用服务者的注册服务名称return restTemplate.getForEntity("http://client-one/clientone",String.class,"");}
}

运行服务提供two项目:


在浏览器中输入

http://localhost:8081/clientone
//服务提供者1获取服务提供者2的信息
http://localhost:8081/getdata
http://localhost:8082/client2
//服务提供者2获取服务提供者1的信息
http://localhost:8082/getdata
image.png
image.png

服务提供者1和服务提供者2 即是信息提供者也是消费者。

最后编辑于:2024-12-10 21:05:42


喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.ppmy.cn/ops/142986.html

相关文章

Node.js 文件系统

Node.js 的文件系统模块&#xff08;fs 模块&#xff09;提供了丰富的 API&#xff0c;用于读取、写入、删除文件以及执行其他文件系统操作。 fs 模块既支持同步方法也支持异步方法&#xff0c;使得开发者可以根据具体需求选择合适的方式来处理文件操作。 导入 fs 模块 首先…

在centos 7.9上面安装mingw交叉编译工具

1.说明 为了在centos上面编译windows的程序&#xff0c;需要安装mingw工具&#xff0c;mingw工具是可以编译windows程序的一些工具链&#xff0c;使用方式和linux一致 2.下载脚本 使用脚本方式编译&#xff0c;github的脚本位置&#xff1a;https://github.com/Zeranoe/ming…

Roslyn 是什么?

Roslyn 是什么&#xff1f; Roslyn 是 .NET 平台的开源编译器平台&#xff0c;支持 C# 和 Visual Basic (VB) 两种编程语言。它不仅是一个传统的编译器&#xff0c;还提供了丰富的 API&#xff0c;供开发者对代码进行分析、生成、重构等操作。其全名为 “.NET Compiler Platfo…

DeepSeek-V2的多头潜在注意力机制及其在开源Mixture-of-Experts (MoE)语言模型中的应用

DeepSeek-V2的多头潜在注意力机制及其在开源Mixture-of-Experts (MoE)语言模型中的应用 DeepSeek-V2的架构及其优势 DeepSeek-V2的架构及其优势可以从几个关键方面进行深入探讨&#xff1a; 1. 架构设计 DeepSeek-V2是一个基于Mixture-of-Experts&#xff08;MoE&#xff0…

OpenIPC开源FPV之Adaptive-Link天空端代码解析

OpenIPC开源FPV之Adaptive-Link天空端代码解析 1. 源由2. 框架代码3. 报文处理3.1 special报文3.2 普通报文 4. 工作流程4.1 Profile 竞选4.2 Profile 研判4.3 Profile 应用 5. 总结6. 参考资料7. 补充资料7.1 RSSI 和 SNR 的物理含义7.2 信号质量加权的理论依据7.3 实际应用中…

计算机网络 | 3.数据链路层

1.数据链路层的基本概念及三个基本问题 &#xff08;1&#xff09;基本概念 <1>数据链路层使用的信道主要有以下两种类型&#xff1a; 点对点信道。 这种信道使用一对一的点对点通信方式。广播信道。 这种信道使用一对多的广播通信方式&#xff0c;因此过程比较复杂。…

深入详解人工智能机器学习常见算法中的K-means聚类

目录 引言 1. K-means聚类的基本概念 1.1 K-means聚类的定义 1.2 K-means聚类的核心思想 1.3 K-means聚类的目标函数 2. K-means聚类的核心原理 2.1 初始化 2.2 分配 2.3 更新 2.4 迭代 3. K-means聚类的具体实现 3.1 K-means聚类的算法流程 3.2 K-means聚类的Pyt…

React状态管理常见面试题目(二)

为什么 Redux 能做到局部渲染? Redux能做到局部渲染&#xff0c;主要是因为它采用了单向数据流和状态管理机制。在Redux中&#xff0c;整个应用的状态被存储在一个单一的store中&#xff0c;当状态发生变化时&#xff0c;Redux通过分发action来更新state&#xff0c;并通过re…