news 2026/3/15 0:21:23

Nacos+OpenFeign-----帮助解决单体项目拆分成微服务项目的关键技术

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nacos+OpenFeign-----帮助解决单体项目拆分成微服务项目的关键技术

目录

为什么需要这么个东西,他解决了什么痛点?

方法一 RestTemplate:

引入概念:注册中心:

方法二 nacos服务:

其他


为什么需要这么个东西,他解决了什么痛点?

我们在初始学习微服务时候,会拆分单体项目。会遇到这么一个问题:“远程调用问题:我这个微服务,要用到另一个微服务的一个service,在单体项目中,直接注入一个service用就可以。但微服务代码数据库都是分开的,在微服务中有没有什么好方法?”

方法一RestTemplate

RestTemplate,由spring提供,可以方便的发送Http请求。

用法:创一个RestTemplate并注入容器,用的时候注入,并调用其exchange方法。(还有很多其他方法,可以查阅了解,不做详细介绍)
缺点:服务的治理问题:url是写死的。如果A想调用B的某个接口,但B有多个服务部署了,不是道调用哪一个。而且如果一个B服务挂掉了,或者新的B服务启动了,A都不知道,没法处理。

引入概念:注册中心:

既然有这个缺点,我们能不能找个中间人?就像找家政一样,我们就让A不要去直接找B,而是找“家政中心”,有啥事你去找“家政中心”,他里面管理了B的各个服务的信息。(也就是注册中心)

当A找上门来,注册中心就去看看那个阿姨有空。安排给你提供服务。(也就是负载均衡)

当B某个服务新增或者挂掉了,能及时反映给“家政中心”。(也就是心跳续约)

方法二 nacos服务:

注册nacos服务:

1: 数据库中创建nacos表,方便存储。

2:docker部署nacos容器。

服务治理:

  • 服务注册:引入nacos discovery依赖,配置Nacos地址。
  • 服务发现:引入nacos discovery依赖,配置Nacos地址。然后调用,传入参数(手写负 载均衡)。

问题:服务发现手写比较麻烦。

OpenFeign:

  • 引入依赖,OpenFeign和SpringCloudLoadBalancer。
  • 通过@EnableFeiClients,开启OpenFeign功能。
  • 编写FeignClient。@FeignClient("item-service"):声明服务名称@GetMapping:声明请求方式@GetMapping("/items"):声明请求路径@RequestParam("ids") Collection<Long> ids:声明请求参数List<ItemDTO>:返回值类型
@FeignClient("item-service") public interface ItemClient { @GetMapping("/items") List<ItemDTO> queryItemByIds(@RequestParam("ids") Collection<Long> ids); }
  • 使用FeignClient。注入对应的client类,然后调用对应的方法。

其他

日志配置:省略。

开启连接池:

  • 引入连接池依赖
  • feign: okhttp: enabled: true # 开启OKHttp功能

client类实现在A中,不合理,代码重复率高,两种抽取思路:

  • 思路1:抽取到微服务之外的公共module

  • 思路2:每个微服务自己抽取一个module

  • 实现:1.引入对应的依赖坐标。2. @EnableFeignClient扫描到对应的包。com.hmall.api.client

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 10:24:32

【完整源码+数据集+部署教程】人脸检测检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

一、背景意义 随着人工智能技术的迅猛发展&#xff0c;计算机视觉领域的研究日益受到关注&#xff0c;尤其是人脸检测技术在安全监控、智能家居、社交媒体等多个应用场景中发挥着越来越重要的作用。人脸检测作为计算机视觉中的一个关键任务&#xff0c;旨在从图像或视频中自动…

作者头像 李华
网站建设 2026/3/13 11:49:59

如何提升银包铜的抗氧化性?

“真正的抗氧化不只是‘靠银’&#xff0c;而是靠&#xff1a;铜粉选择 包覆技术 后处理体系三重工程。”如果你做过银包铜材料&#xff0c;一定遇到过这句话&#xff1a;“银包铜最大的痛点&#xff0c;就是氧化。”但当我们把银包铜粉放进 150℃ 老化 1 小时——颜色几乎没…

作者头像 李华
网站建设 2026/3/11 20:11:39

UVa 10208 Liar or Not Liar that is the ...

题目描述 Macintosh\texttt{Macintosh}Macintosh 先生是一位地主&#xff0c;他拥有的所有土地都是直角三角形&#xff0c;并且两条直角边的长度都是整数。他雇佣了一名员工来记录所有土地的信息&#xff0c;但报告只包含每块土地最长边&#xff08;斜边&#xff09;的平方值。…

作者头像 李华
网站建设 2026/3/12 22:50:46

网易有道开源多音色情感TTS引擎EmotiVoice

网易有道开源多音色情感TTS引擎EmotiVoice 你有没有想过&#xff0c;机器发出的声音也能“笑”&#xff1f;能“哭”&#xff1f;甚至在讲述一段故事时&#xff0c;语气随着情节起伏而颤抖或激昂&#xff1f;这不再是科幻电影里的桥段——网易有道推出的 EmotiVoice&#xff0…

作者头像 李华
网站建设 2026/3/13 15:29:55

LobeChat能否分析用户评论?产品改进依据来源

LobeChat能否分析用户评论&#xff1f;产品改进依据来源 在当今产品迭代速度日益加快的背景下&#xff0c;企业越来越依赖真实、即时的用户反馈来驱动决策。传统的问卷调查和客服工单系统虽然有效&#xff0c;但往往存在响应滞后、信息碎片化、分类依赖人工等问题。有没有一种方…

作者头像 李华
网站建设 2026/3/4 18:29:35

无需前端基础!三步完成LobeChat可视化界面搭建

无需前端基础&#xff01;三步完成LobeChat可视化界面搭建 在大模型技术席卷各行各业的今天&#xff0c;越来越多的人希望将强大的AI能力融入自己的工作流——但问题也随之而来&#xff1a;如何让非技术人员也能轻松使用这些“聪明”的模型&#xff1f; OpenAI、Ollama、通义千…

作者头像 李华