Spring Boot 之四:使用Feign实现微服务间的交互

news2024/11/26 20:45:21

  系列目录(持续更新。。。)

Spring Cloud:什么是微服务

Spring Cloud之一:注册与发现-Eureka工程的创建

Spring Cloud之二:服务提供者注册到Eureka Server

Spring Cloud之三:Eureka Server添加认证

Spring Cloud 之四:使用Feign实现微服务间的交互

Spring Cloud 之五:Feign使用Hystrix


目录

准备工作

接入Feign

总结


准备工作

先看看我们已经构建好的两个项目

项目端口
eureka-pass
7200服务发现与注册中心
user7101微服务:用户模块

因为现在要演示微服务与微服务之间的交互,而目前只有一个user微服务注册到eureka-pass,所以我们至少要再建一个微服务来进行演示。

新建项目的过程就不再演示了,跟建立user微服务类似,需要了解的可以翻看之前的文章。

下面只贴出application.yml的代码

application.yml

server:
  port: 7102 # 端口
spring:
  application:
    name: order   # 注册到Eureka Server显示的应用名称

eureka:
  client:
    serviceUrl:
      defaultZone: http://admin:admin135@localhost:7200/eureka/
  instance:
    prefer-ip-address: true  #将自己的IP注册到Eureka Server
    instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} #:${random.long(1,100)}

新建成功后项目列表如下:

项目端口
eureka-pass
7200服务发现与注册中心
user7101微服务:用户模块
order7102微服务:订单模块

依次启动eureka-pass、user、order  3个项目,启动成功后,访问:http://localhost:7200,输入账号密码(账号:admin    密码:admin135   上一节设置的),出现如下页面:

 列表里面出现user和order两个微服务,表示两个微服务已经成功注册到eureka!一切准备就绪,我们可以开始接入Feign了!

接入Feign

假设有这样的场景:订单模块(order)需要获取某个订单中用户的详细信息,这时候订单模块(order)就必须请求用户模块(user)中的接口。

针对上述场景,实现方式之一就是把Feign整合进 订单模块(order),步骤如下:

1、用户模块(user)增加一个控制器,并编写一个接口,以供订单模块调用

2、订单模块(order)的pom中增加Feign依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

3、订单模块(order)新增一个接口,并添加@FeignClient注解,如图

代码中value的值是指向用户模块(user)的路径,method表示请求方式 

4、订单模块(order)启动类增加 @EnableFeignClients注解,如下图

 

5、订单模块(order)增加一个控制器,并 编写一个接口,接口调用User模块的方法,代码如下:

package cn.laocheng.user.controller;

import cn.laocheng.user.feignClient.IUserFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @Autowired
    IUserFeignClient userFeignClient;

    @GetMapping("/getInfo")
    public String getInfo(){

        String Str= userFeignClient.getInfo();
        return "调用User模块的接口:"+Str;
    }
}

6、测试

访问:http://localhost:7102/getInfo

浏览器显示:

总结

以上实现了feign的基本使用过程,我们在order微服务里使用feign调用了user微服务一个无参数的GET请求。

后续将在本篇文章继续阐述:使用feign调用带参数的GET或POST请求的方法,并提供源代码。

(未完待续。。。。。。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/423842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Talk预告 | 清华大学交叉信息研究院助理教授赵行:基于视觉感知的自动驾驶运动预测

本期为TechBeat人工智能社区第481期线上Talk&#xff01; 北京时间3月15日(周三)20:00&#xff0c;清华大学交叉信息研究院助理教授——赵行的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “基于视觉感知的自动驾驶运动预测”&#xff0c;届时将…

Dish - TS:减轻时间序列预测中分布偏移的一般范式

摘要 时间序列预测中的分布偏移&#xff08;TSF&#xff09;指的是序列分布随时间发生变化&#xff0c;这很大程度上阻碍了TSF模型的性能。现有针对时间序列中分布偏移的研究主要限于分布的量化&#xff0c;更重要的是忽略了回视窗口和预测窗口&#xff08;horizon windows&am…

Cross Attentional Audio-Visual Fusion for Dimensional Emotion Recognition阅读笔记

Abstract 摘要——多模态分析最近引起了人们对情感计算的极大兴趣&#xff0c;因为它可以提高情感识别相对于孤立的单模态方法的整体准确性。 最有效的多模态情绪识别技术有效地利用各种免费的信息源&#xff0c;例如面部、声音和生理模式&#xff0c;以提供全面的特征表示。 …

谷歌云服务器centos9的docker部署chat-web,实现自己的ChatGPT

谷歌云服务器centos9的docker部署chat-web&#xff0c;实现自己的ChatGPT 前提条件&#xff1a;准备一个境外服务器和chatgpt的key。&#xff08;网上教程很多&#xff09; 1.更新yum yum update2.下载docker-ce的repo curl https://download.docker.com/linux/centos/dock…

IDEA Eval Reset 使用方法

IDEA Eval Reset 使用方法 idea eval reset 使用方法安装插件 离线安装方式 1、下载插件 下载地址&#xff1a;https://plugins.zhile.io/files/ide-eval-resetter-2.1.6.zip2、安装插件直接下载插件 zip 包&#xff08;macOS 可能会自动解压&#xff0c;然后把 zip 包丢进回收…

文旅+虚拟数字人,开启数字文旅发展新方向

随着元宇宙概念爆发&#xff0c;对接虚拟与现实的虚拟数字人正成为国内数字文旅发展的新突破口&#xff01;无论是当地文旅机构、文旅品牌还是政府部门来说&#xff0c;虚拟数字人具有独特的可塑性和创新性&#xff0c;利用文旅虚拟数字人广泛的应用场景&#xff0c;把文旅虚拟…

第十九章 案例TodoList之组件拆分

光说不练假把式&#xff0c;接下来我们将练习一个案例TodoList&#xff0c;让我们熟悉react。 以上是该案例的静态示例&#xff0c;其功能有&#xff1a; 在输入框输入任务&#xff0c;按回车键新增一个任务项鼠标移动在单个任务项上面&#xff0c;出现删除按钮点击删除按钮&a…

密度聚类算法(DBSCAN)实验案例

密度聚类算法&#xff08;DBSCAN&#xff09;实验案例 描述 DBSCAN是一种强大的基于密度的聚类算法&#xff0c;从直观效果上看&#xff0c;DBSCAN算法可以找到样本点的全部密集区域&#xff0c;并把这些密集区域当做一个一个的聚类簇。DBSCAN的一个巨大优势是可以对任意形状…

SpringSecurity 学习笔记 下(微服务权限方案)

SpringSecurity 微服务权限方案 一、 什么是微服务 1.1 微服务由来 微服务最早由 Martin Fowler 与 James Lewis 于 2014 年共同提出&#xff0c;微服务架构风格是一种使用一套小服务来开发单个应用的方式途径&#xff0c;每个服务运行在自己的进程中&#xff0c;并使用轻量级…

使用Swagger生成在线文档

目录 1&#xff1a;Swagger介绍 2&#xff1a;使用 2.1&#xff1a;swaager集成boot依赖 2.2&#xff1a;配置文件中配置相关信息 2.3&#xff1a;在启动类中加入相关注解 2.4&#xff1a;测试 3&#xff1a;swagger常用注解 1&#xff1a;Swagger介绍 在前后端分离开发…

GET和POST方式请求API接口数据返回

区别&#xff1a; GET在浏览器回退时是无害的&#xff0c;而POST会再次提交请求。 GET产生的URL地址可以被Bookmark&#xff0c;而POST不可以。 GET请求会被浏览器主动cache&#xff0c;而POST不会&#xff0c;除非手动设置。 GET请求只能进行url编码&#xff0c;而POST支持…

DETR【论文阅读】

End-to-End Object Detection with Transformers 1. Introduction 发表&#xff1a;ECCV 2020影响&#xff1a;在目标检测上使用了一种全新的架构&#xff0c;是里程碑式的工作。简单优雅统一的结构&#xff0c;不再依赖于人的先验知识&#xff08;anchor生成&#xff0c;nms…

二叉树_详解

目录 1. 树型结构 1.1 概念 1.2 概念 1.3 树的表示形式 1.4 树的应用 2. 二叉树 2.1 概念 2.2 两种特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储 2.5 二叉树的基本操作 2.5.1 前置说明 2.5.2 二叉树的遍历 2.5.3 二叉树的基本操作 1. 树型结构 1.1 概念 …

k8s集群上安装Velero,用Velero备份K8S的数据

前提条件&#xff1a; 需要有一个K8S集群&#xff01; 一、概述 Velero是一个开源工具&#xff0c;可以安全地备份和还原&#xff0c;执行灾难恢复以及迁移Kubernetes集群资源和持久卷。 二、docker安装minio mkdir -p /home/minio docker run -p 9000:9000 -p 9090:9090 …

Win11去掉桌面图标快捷方式(2)----Dism++

1.Dism介绍 Dism&#xff0c;也许是最强的实用工具全球第一款基于 CBS 的 Dism GUI 实现。 兼容 Windows Vista/7/8/8.1/10 Dism可以说是一个Dism的GUI版&#xff0c;但是并不依赖Dism&#xff0c;直接基于更底层的CBS&#xff08;Component Based Servicing Reference&…

第1章 如何听起来像数据科学家

第1章 如何听起来像数据科学家 文章目录第1章 如何听起来像数据科学家1.1.1 基本的专业术语1.1.3 案例&#xff1a;西格玛公司1.2.3 为什么是Python1.4.2 案例&#xff1a;市场营销费用1.4.3 案例&#xff1a;数据科学家的岗位描述我们拥有如此多的数据&#xff0c;而且正在生产…

山西省税务汇总申报流程

1、国家税务总局山西省电子税务局 企业登录&#xff1a;填写社会信用代码、密码、手机号、获取验证码&#xff0c;即可登录成功。 2、登录成功后&#xff0c;按下图 第一步进行数据更新、第二步点击“我要办税”->税费申报及缴纳 3、先填写报表->增值税及附加税 4、…

每日学术速递4.11

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.InstantBooth: Personalized Text-to-Image Generation without Test-Time Finetuning 标题&#xff1a;InstantBooth&#xff1a;无需测试时间微调的个性化文本到图像生成 作者&a…

九耶丨钛伦特-用深度学习实现垃圾图像分类(一)

在这个项目中我们将结合我们的日常生活&#xff0c;让计算机帮助我们进行垃圾分类。比如让计算机能够正确将如下三张包含不同垃圾的图像进行分类。 我们希望计算机能够识别出三张图像依次是玻璃&#xff08;玻璃瓶&#xff09;&#xff0c;纸张&#xff08;信封&#xff09;和塑…

Kafka学习记录

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。希望互相进步谢谢&#xff01;&#xff01; 文章目录阅读前请看一下&#xff1a;我是一…