news 2026/8/13 16:20:51

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/8/12 11:47:03

Java毕设项目推荐-基于Java语言的茶叶销售系统的前端设计与实现基于SpringBoot+Vue茶叶销售系统的设计与实现【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/8/12 10:52:19

大数据生态核心组件语法与原理详解

Wan2.2-T2V-5B 轻量级文本生成视频模型深度解析 在短视频内容爆发式增长的今天&#xff0c;从广告创意到社交平台运营&#xff0c;对高效、低成本动态内容生产的需求前所未有地强烈。传统视频制作流程耗时耗力&#xff0c;而AIGC技术的崛起正在重塑这一领域。其中&#xff0c;W…

作者头像 李华
网站建设 2026/8/12 10:52:18

UVa 11617 An Odd Love

题目描述 春天到了&#xff0c;我们的朋友佩皮托&#xff08;Pepito\texttt{Pepito}Pepito&#xff09; 坠入了爱河。但他不确定她是否也爱他&#xff0c;于是他决定询问雏菊。他摘下一朵雏菊&#xff0c;交替说着“她爱我”和“她不爱我”&#xff0c;每说一句话就摘下一片花…

作者头像 李华
网站建设 2026/8/12 11:56:59

LobeChat能否对接Slack?团队协作平台集成方案

LobeChat 与 Slack 集成&#xff1a;构建团队智能协作中枢 在现代企业中&#xff0c;沟通工具早已不只是“聊天软件”——它们是信息流转的核心枢纽。Slack 每天承载着成千上万条项目讨论、任务分配和决策记录&#xff0c;而这些数据如果能被 AI 实时理解并参与其中&#xff0c…

作者头像 李华
网站建设 2026/8/12 22:13:42

集团宽带是什么意思?企业如何选择合适的宽带方案?

在当今这个信息爆炸的时代&#xff0c;企业对于网络的需求日益增长。而提到“集团宽带”&#xff0c;不少企业管理者或许会感到困惑&#xff1a;这到底是个什么概念?简单来说&#xff0c;集团宽带是指为满足大型企业或集团内部多个办公地点之间高效互联需求而设计的一种宽带服…

作者头像 李华
网站建设 2026/8/12 11:02:52

运维外包的公司靠谱吗?企业真能省心?

你有没有经历过这样的早晨&#xff1a;全员刚开工&#xff0c;邮件系统突然卡死&#xff0c;视频会议连不上&#xff0c;前台智能屏黑着&#xff0c;IT小哥满头大汗却查不出根源?这时候&#xff0c;一个念头冒出来&#xff1a;要不要把运维外包出去?这不是个别现象。如今写字…

作者头像 李华