当前位置: 首页 > news >正文

使用 feign 调用时对微服务实例进行选择

1.概述

在 微服务 调用的时候,我们会需要将微服务实例进行分组的情况,我们有订单和库存服务,订单服务 和库存服务 分别 为 A,B两组服务实例。 A 服务分组服务A用户,B服务分组服务B用户,这样就可以实现 一组服务对应一个用户,实现用户的应用服务隔离。本篇解决的是,订单A服务调用库存A服务,订单B服务调用库存B服务.

2.实现原理

2.1. 在服务启动的时候,指定一个服务分组

我现在有订单服务和库存服务,配置环境变量。

spring:application:name: order-serviceprofiles:active: devcloud:nacos:username: nacospassword: nacosdiscovery:server-addr: localhost:8848namespace:  localmetadata:group: ${group:A}

我们给每个微服务定义一个 group 的元数据,在启动的的时候指定这个数据。
启动程序命令 java -jar orderdemo-0.0.1-SNAPSHOT.jar --server.port=9902 --group=B

image

2.1. 在使用FEIGN访问服务的时候,选择服务实例

具体是根据当前的服务实例的分组,选择目标服务的服务实例。

3. 在我们的产品中实现代码如下

3.1 引入jar包

<dependency><groupId>com.redxun</groupId><artifactId>ac-core-loadbalance</artifactId><version>7.4-SNAPSHOT</version></dependency>

3.2 增加组选择器配置

@Configuration
public class FeignConfig {@Bean@Primarypublic IServiceSelector groupSelector() {return  new GroupServiceSelector();}
}

如果用户有其他的需求,可以实现IServiceSelector 接口后进行配置。

接口定义如下:

public interface IServiceSelector {List<ServiceInstance> getServices(List<ServiceInstance> var1, Environment var2);
}
http://www.hskmm.com/?act=detail&tid=14530

相关文章:

  • EI目录今年第3次更新!55本中国期刊被收录,附完整版下载
  • 程序员的未来:从技术岗位到全栈思维的进化之路 - 实践
  • envoy和nginx的区别
  • 基于自适应差分进化算法的MATLAB实现
  • 【SPIE出版、主题宽泛、快速检索】2025年可持续发展与数字化转型国际学术会议(SDDT 2025)
  • langfuse使用的postgresql异机备份和恢复(docker)并进行langfuse版本升级
  • 国产化Excel处理组件Spire.XLS教程:Java在 Excel 表格中轻松添加下标
  • tips图解复杂数组、指针声明
  • 通过perl或awk实现剪切功能
  • java列队多种实现方式,
  • Ashampoo Music Studio 12.0.3 音频编辑处理
  • Gitee:本土化代码托管平台如何重塑中国开发者协作生态
  • WEB项目引入druid监控配置
  • Computer Graphics Tutorial
  • CF1874(CF Round 901) 总结
  • 2. Spring AI 快速入门使用 - Rainbow
  • PyCharm 2025.1安装包下载与安装教程
  • 阿里将发布多模态模型 Qwen3-Omni,主打多语言与复杂推理;DeepvBrowser 上线 AI 语音浏览器丨日报
  • Word文档内容批量替换脚本 - wanghongwei
  • VMware ESXi 磁盘置备类型详解
  • EF 数据迁移生成sql脚本
  • HWiNFO 硬件信息检测工具下载与安装教程
  • 第七章 手写数字识别V1
  • 西电PCB设计指南1~2章学习笔记
  • 1. 大模型的选择详细分析 - Rainbow
  • 云计算实践部署笔记
  • [eJOI 2024] 奶酪交易 / Cheese
  • 逆向分析之switch语句
  • 批量查询设计桩号方法及文件格式
  • 搭建Python的运行开发环境