SpringCloud之Eureka服务调用

实现Spring Cloud中的服务调用和发现:使用Feign和Eureka 在微服务架构中,服务调用和发现是非常重要的组成部分。Spring Cloud提供了Feign和Eureka这两个强大的组件,用于实现服务调用和发现的功能。本文将介绍如何在Spring Cloud中使用Feign和Eureka实现服务调用和发现的过程。 阅读详情

上篇博客介绍了服务注册到服务中心,服务注册后,其他服务怎么调用呢?总感觉SpringCloud的编程思路时面向切面编程,我的面向对象编程呢???
整体思路:
1:新建一个SpringBoot服务用来消费,以下简称“user服务”,新建方法见SpringCloud之Eureka概念及使用(一)
2:user服务通过定义接口或实现类,访问服务提供者的server层或controller层
3:user服务的controller层引用定义的接口或实现类,将值返回到页面;
创建user服务有两种方法;1:RestTemplate(robbin)相当于工具类;2:FeigClient相当于远程接口调用。个人感觉FeigClient比较好用,实现方式如下
一:RestTemplate实现

  1. pom.xml中追加jar包定义
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>eurekaUser</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>eurekaUser</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
		<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-openfeign</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
		</repository>
	</repositories>

</project>

2.配置application.properties

server.port: 8090
spring.application.name=eurekaUser
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
  1. 新建RestTemplateConfig.java
@Configuration
public class RestTemplateConfig  {

	@Bean
	@LoadBalanced // 启用ribbon工具
	public RestTemplate createTemplate() {
		return new RestTemplate();
	}
  1. 注入RestTemplate对象调用服务
@RestController
public class UserController {
	@Autowired
	private  RestTemplate  template;
	
	@RequestMapping(value="/select",method=RequestMethod.GET)
    public String viewDept(){
        //url=http://注册服务名/@RequestMapping地址
        String url1 = "http://eurekaServer:8080/findAll/";
        String s2 = template.getForObject(url1, String.class);
        System.out.println("RestTemplate模式:"+s2);
        return s2;
    }

依次启动服务中心、服务提供者、服务消费者三项服务,访问服务消费者的mapping看到服务提供者的数据,代表成功。如有问题请留言或者私信
二:FeigClient调用

  1. pom.xml中追加jar包定义,和上面的pom.xml文件jar包一样,为了方便我整合到一块了主要差别为
 <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

2.配置application.properties

server.port: 8090
spring.application.name=eurekaUser
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
  1. 定义远程调用接口
@FeignClient("eurekaServer")//服务提供者向服务中心注册的服务名
public interface DeptRemote {
	 @RequestMapping("/findAll")//服务提供者的url
	  public String findAll();
}
  1. 给使用者注入 远程调用接口对象
@RestController
public class findUserController {
	@Resource
	private DeptRemote deptRemote;
	
	@RequestMapping("findUser")
	public String findUser() {
		String str = deptRemote.findAll();
		return str;
	}
  1. 给注入口类追加标记
@SpringBootApplication
@EnableDiscoveryClient//服务注册和查找都需要
@EnableFeignClients//feign调用模式需要的
public class EurekaUserApplication {

	public static void main(String[] args) {
		SpringApplication.run(EurekaUserApplication.class, args);
	}

}

依次启动服务中心、服务提供者、服务消费者三项服务,访问服务消费者的mapping看到服务提供者的数据,代表成功。如有问题请留言或者私信

注意事项:

  1. 对于底层原理不太熟悉的同学,千万不要尝试自己去配置jar和SpringBoot和SpringCloud的版本,很容易出现不兼容情况,导致无法注入或者jar包下载失败等一系列未知问题
  2. 想服务中心注册时,名字千万千万不要写下划线,错误写法:user_id;正确写法:userId或者user-id。个人建议:写userId或许看起来比较顺眼吧。
    以上问题都是本人搭建时遇到的坑,均是折磨本人超过半个小时以上的,千万注意!!!

服务中心/服务提供者/服务消费者搭建的源码及数据库

Shopee商品详情页反爬实战:手把手逆向x-sap-Ri和x-sap-Sec参数(附完整调试过程) 本文详细解析了Shopee商品详情页反爬机制中的x-sap-Ri和x-sap-Sec参数逆向过程。通过JS逆向技术,从环境数据采集到多层哈希运算,完整拆解了这两个关键参数的生成逻辑,并提供了实战技巧和Node.js实现方案,帮助开发者应对Shopee的动态加密挑战。 阅读详情

相关推荐

opencv读取海康威视摄像头相关配置

1、开发环境 海康威视的网络摄像头使用: 开发工具:vs2015 C++ 海康SDK 2、相关操作 下载海康威视SDK:网址:http://www.hikvision.com/cn/download_61.html • 1:对照自己的开发平台可以下载设备网络SDK_Win32设备网络SDK_Win64,解压到本地文件下: • 2:VS配置 、Opencv配置。参考址 http://blog.youkuaiyun.com/poem_qianmo/article/details/19809337 (建议自己创

HMJ115的博客 984

SpringCloud 三种服务调用方式,你学会了吗?

搭建服务测试环境测试中,服务发现层采用Netflix的Eureka搭建。主要步骤如下:1.引入Eureka所需依赖<!--eureka服务端-->&nbsp;&nbsp;<dependency>&nbsp;&nbsp;&nbsp;&nbsp;<groupId>org.springframework.cloud</groupId>&nbsp;&nbsp;&nbsp;&nbsp;&lt

知识分享官 960

【电力电子控制】基于强化学习的单相逆变器并网电流控制

本文将尝试以 DQN(Deep Q-Network)为例,设计并训练一个面向单相逆变器的智能控制器,实现对并网电流的精准调节。

weixin_62596197的博客 463

SpringCloud-3-Eureka实现服务间调用

Hi,大家好。 目标:3个SpringBoot的项目,一个作为EurekaServer,另外2个作为客户端,客户端A用四种方式调用客户端B来实现通信。 知识点: Eureka的基本配置 界面查看服务注册情况及判断是否真正注册成功 三种方式实现服务间调用 服务名 作用 简称 EurekaServer Eureka服务器 ParamsValidation 客户端 客户端B EurekaClient2 客户端 客户端A 注册效果: 客户端分别使用: @DiscoveryClie

起舞的日子 2702

手把手教你用S7-PLCSIM Advanced V3.0搭建PLC仿真测试环境(含WinPcap避坑指南)

本文详细介绍了如何使用西门子S7-PLCSIM Advanced V3.0搭建PLC仿真测试环境,包括WinPcap 4.1.3驱动的安装避坑指南。从环境准备、软件安装到配置调试,提供了一套完整的解决方案,帮助工程师和教学人员快速构建可靠的PLC仿真环境,解决常见的报错问题。

weixin_30879169的博客 641

K230开发板实战:5步搞定YOLOv8模型部署(附常见报错解决方案)

本文提供了一份详细的K230开发板部署YOLOv8模型的实战教程。内容涵盖从环境准备、模型转换到代码编写的完整流程,并重点解析了使用AICube工具链时常见的“生成部署文件异常”等报错解决方案,旨在帮助开发者高效完成嵌入式AI模型部署。

weixin_29053073的博客 784

springCloud学习四之通过Eureka实现服务调用

1.实现Eureke Server <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd

codingToMaster的博客 915

保姆级教程:SAP ABAPer如何为VF01销售发票和MIRO发票校验配置凭证替代(含AC_DOCUMENT BADI完整代码示例)

本文详细解析了SAP ABAP中通过AC_DOCUMENT BADI实现VF01销售发票和MIRO发票校验的凭证替代技术。从技术选型到BADI实施步骤,再到核心逻辑代码示例,为ABAP开发者提供了一套完整的解决方案,帮助应对财务部门复杂的业务需求。

weixin_30421809的博客 349

springcloud之服务提供与负载均衡调用 Eureka

服务提供者Service Provider 本质上是一个 Eureka Client,它在服务启动时,会调用服务注册方法,向 Eureka Server注册接口服务信息,包括地址、端口、服务名、入参、返回值等。4:服务提供方,作为一个 Eureka Client,向 Eureka Server 做服务注册、续约和下线等操作,注册的主要数据包括服务名、机器 ip、端口号、域名等。提供一个基于Eurka的服务注册中心,两个服务提供者之后分别使用Ribbon、Fegin方式进行调用,测试负载均衡。

优快云_LiMingfly的博客 1097

第1部分 基础算法(提高篇)--第2章 二分与三分1439:【SCOI2010】传送带

1439:【SCOI2010】传送带 时间限制: 2000 ms 内存限制: 65536 KB 提交数: 372 通过数: 212 【题目描述】 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间。 【输入】 输入数据第一行是4个整数,表示A和B的坐标,分别为Ax,Ay,Bx,By 第二行是4个整

zqhf123的博客 837

2025年7月5日全国青少年信息素养大赛Python编程初中组复赛真题+答案解析

2025年7月5日全国青少年信息素养大赛Python编程初中组复赛真题+答案解析

伶俐角少儿编程 464

eureka服务调用

eureka服务调用

weixin_42145727的博客 366

uniapp - 实现APP后台持续定位+手机息屏后能持续上传位置信息数据,详解后台保活持续运行+手机锁屏保证后台持续/实时定位的解决方案及示例源码(完美兼容安卓android与苹果ios系统手机)

使用uniapp开发app实现后台保活定位能力,uniapp实时定位保活 息屏定位后台运行,uniapp APP实时定位高德 后台运行 支持锁屏息屏运行,持续获取定位信息,uniapp App端后台间隔时间发送定位功能实现,UniApp实现手机应用常活,固定时间内上传手机位置信息,后台(或锁屏)持续/实时定位的实现方案,uni-app后台持续定位,锁屏后能持续上传位置信息,实现后台定位持续无限制定位高德定位,百度定位,UniApp后台持续定位保如何在APP退到后台时保持定位服务,uniapp 切换app仍能

🏆 前端领域优质创作者 1万+

eureka 调用服务_SpringCloud技术指南系列(三)服务注册发现之Eureka服务调用

SpringCloud技术指南系列(三)服务注册发现之Eureka服务调用SpringCloud所谓的服务注册与发现,流程大致是: 将Springboot微服务客户端项目的地址等信息,通过网络发送到注册中心,由注册中心保存下来。 另一个客户端B访问已经注册到注册中心的服务A,通过注册中心提供的域名解析方式,解析出服务A的地址等信息。 如果提供服务A的客户端有多个,就按照某个策略(比如轮询、负载均衡...

weixin_39719078的博客 308

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

springcloud 入门系列(二)-eureka服务调用

​ 上篇文章我们了解了如何搭建springcloud 高可用注册中心(eureka注册中心高可用),本篇我们来了解,如何进行服务的调用。 首先,我们先来创建我们的服务提供者: pom依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>...

ethan的专栏 367

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

springboot整合springcloud的eureka、配置中心、服务调用、Hystrix、Zuul网关

前言:springboot整合springcloud的eureka、配置中心、服务调用、Hystrix、Zuul网关

weixin_45865428的博客 1259

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringCloud技术指南系列(三)服务注册发现之Eureka服务调用

SpringCloud技术指南系列(三)服务注册发现之Eureka服务调用 SpringCloud所谓的服务注册与发现,流程大致是: 将Springboot微服务客户端项目的地址等信息,通过网络发送到注册中心,由注册中心保存下来。 另一个客户端B访问已经注册到注册中心的服务A,通过注册中心提供的域名解析方式,解析出服务A的地址等信息。 如果提供服务A的客户端有多个,就按照某个策略(比如...

feiyangtianyao的专栏 334

Spring Cloud 、OpenFeign 服务调用、Eureka注册中心搭建

Spring Cloud,OpenFeign 实现服务调用Eureka注册中心部分ApplicationService服务提供者ApplicationClient消费者部分 Eureka注册中心部分 maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch

gtali的博客 661

SpringCloud学习day03——Eureka注册中心+OpenFeign服务调用

在B站学习的springcloud的学习记录,第二天,最难不过坚持。本文章只用于学习和分享,欢迎大家的建议,讨论和指点。

weixin_52896580的博客 1114

springcloud隔一段时间再次访问就慢_走进Spring Cloud之四 eureka ribbon(负载均衡服务调用者)...

Spring Cloud Ribbon在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯都是HTTP RESTful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。它是一个基于HTTP和TCP的客户端负载均衡器。它可...

weixin_39716800的博客 755

走进Spring Cloud之四 eureka ribbon(负载均衡服务调用者)(Greenwich版本)

灵动的艺术的博客 3008

Spring Cloud的Eureka实现服务发现注册和Feign实现服务调用

本篇博客主要讲解Eureka组件实现服务注册与发现和Feign组件实现服务间的调用的理论以及实际操作。 Eureka Eureka是Spring Cloud Netfix微服务套件中的一部分,可以和SpringBoot构建的微服务很容易的整合。SpringCloud将它集成在自己的子项目 spring-cloud-netflix中,实现SpringCloud的服务发现功能。 Eureka包含两...

小宋的博客 8406

SpringCloud 中Eureka中RestTemplate进行服务调用

项目结构如下图所示: 在服务治理当中,没有固定的提供方和消费方,只是以上述为例 让yyc-demo 去注册中心调用yyc-test提供的服务。 这次将上两次学习进行整理: 首先是服务注册中心,服务提供者可以将服务注册到注册中心供服务调用方获取. 注册中心中进行安全认证需要引入jar包 <!--设置登录密码需要用到SpringSecurity--> <...

一起记录GIS学习 3254
上一篇: SpringCloud之Eureka注册中心
下一篇: @GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping、@RequestMapping详解
只会debug
博客等级 码龄9年 69粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值