SpringCloud 集成 Eureka服务,本机测试

server/2024/12/23 19:57:31/

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/server/152570.html

相关文章

如何通过HTTP API新建Collection

本文介绍如何通过HTTP API创建一个新的Collection。 前提条件 已创建Cluster&#xff1a;创建Cluster。 已获得API-KEY&#xff1a;API-KEY管理。 Method与URL HTTP POST https://{Endpoint}/v1/collections 使用示例 说明 需要使用您的api-key替换示例中的YOUR_API_KEY、…

使用Redis实现限流

使用Redis实现限流的三种方式 目录 概述基于计数器的固定窗口限流 实现原理适用场景实现步骤代码实现缺点 基于滑动窗口的限流 实现原理适用场景实现步骤代码实现优点缺点 基于令牌桶算法的限流 实现原理适用场景实现步骤Lua脚本实现Java实现优点缺点 总结 概述 在分布式系统…

每天40分玩转Django:实操博客应用

实操博客应用 一、内容概述 模块重要程度主要内容项目初始化⭐⭐⭐⭐创建项目和应用模型设计⭐⭐⭐⭐⭐文章、评论、用户模型视图实现⭐⭐⭐⭐⭐增删改查功能模板开发⭐⭐⭐⭐页面布局和样式用户认证⭐⭐⭐⭐⭐用户登录和权限 二、项目结构 blog_project/ ├── blog/ │ …

Linux入侵排查

1.查看有哪些用户登录了服务器 命令&#xff1a;who 如果存在可疑用户&#xff0c;使用kill pid杀死对应进程 2.查看是否新增可疑用户 命令&#xff1a;cat /etc/passwd 3.排查木马 命令&#xff1a;netstat -anp ps -x 查看是否有可疑外联ip或域名&#xff0c;然后根据…

新版国标GB28181设备端Android版EasyGBD支持国标GB28181-2022,支持语音对讲,支持位置上报,开源在Github

经过近3个月的迭代开发&#xff0c;新版本的国标GB28181设备端EasyGBD安卓Android版终于在昨天发布到Github了&#xff0c;最新的EasyGBD支持了国标GB28181-2022版&#xff0c;还支持了语音对讲、位置上报、本地录像等功能&#xff0c;比原有GB28181-2016版的EasyGBD更加高效、…

我的性能优化经验

专业方向&#xff1a;App cpu/memory/gpu/流畅度/响应时间的优化&#xff0c;Anr&#xff0c;Framework CarPowerManagementService模块的&#xff08;STR&#xff09;&#xff0c;从0~1完成性能监控体系搭建&#xff0c;完成3大版本迭代高质量性能交付 响应时间&#xff1a; …

【UE4】角色御剑飞行的蓝图实现

沉沉更鼓急&#xff0c;渐渐人声绝 吹灯窗更明&#xff0c;月照一天雪 UE4简单的实现御剑飞行的功能 契子✨ 所谓的御剑飞行的原理就跟 《御板》 飞行的原理差不多&#xff0c;不过是在人物脚上插把剑在飞行的时候显示出来罢了。简单来讲就是只要渲染做的足够牛&#xff0c;土鸡…

Webrtc音频模块(四) 音频采集

音频的采集还是封装在AudioDeviceWindowsCore中&#xff0c;相关的Core Audio API接口是下面几个&#xff1a; IAudioClient* _ptrClientIn IAudioCaptureClient* _ptrCaptureClient rtc::scoped_refptr<IMediaObject> _dmo rtc::scoped_refptr<IMediaBuffer> _me…