尚融宝——整合OpenFeign与Sentinel实现兜底方法——验证手机号码是否注册功能
一、整合过程
在项目添加依赖:添加位置

<!--服务调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
在需要的服务中添加启动注解:

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
//@MapperScan("com.atguigu.srb.core.mapper")
@ComponentScan({"com.atguigu.common","com.atguigu.srb.sms","com.atguigu.srb.base"})
@EnableDiscoveryClient
@EnableFeignClients //服务远程调用
public class ServiceSmsApplication {public static void main(String[] args) {SpringApplication.run(ServiceSmsApplication.class,args);}
}
并且在该服务创建远程调用接口:
@FeignClient(value = "service-core") //调用的远程服务名
@RequestMapping("/api/core/userInfo") //该请求路径必须与需要远程调用方法的请求路径一致
public interface CoreUserInfoClient {@GetMapping("isMobileExist/{mobile}")public boolean isMobileExist(@PathVariable String mobile);
}
对比图:

在service-core服务中实现被调用的远程方法:

service层:

/*** <p>* 用户基本信息 服务类* </p>** @author Helen* @since 2023-04-06*/
public interface UserInfoService extends IService<UserInfo> {void register(RegisterVO registerVO);UserInfoVO login(LoginVO loginVO, String ip);boolean isMobileExist(String mobile);
}
serviceImpl层:
/*** <p>* 用户基本信息 服务实现类* </p>** @author Helen* @since 2023-04-06*/
@Service
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {@AutowiredRedisTemplate redisTemplate;@AutowiredUserAccountMapper userAccountMapper;@AutowiredUserLoginRecordMapper userLoginRecordMapper;@Overridepublic boolean isMobileExist(String mobile) {QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();queryWrapper.eq("mobile", mobile);Integer integer = baseMapper.selectCount(queryWrapper);if(integer > 0){return true;}return false;}
}

在service-sms服务中使用远程方法:

@RestController
@RequestMapping("/api/sms")
@CrossOrigin
public class ApiSmsController {@AutowiredSmsService smsService;@AutowiredCoreUserInfoClient coreUserInfoClient;@GetMapping("sendCode/{mobile}")public R sendCode(@PathVariable String mobile){// 先检查手机号是否被注册过// 调用的是远程serviceImpl的isMobileExist的方法boolean mobileExist = coreUserInfoClient.isMobileExist(mobile);// 如果不为false,MOBILE_EXIST_ERROR(207, "手机号已被注册")Assert.isTrue(!mobileExist, ResponseEnum.MOBILE_EXIST_ERROR);smsService.sendCode(mobile);return R.ok();}
}
二、OpenFiegn整合Sentinel实现兜底方法
在guigu-common微服务添加依赖:
<!--服务容错--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>
在service-sms微服务
添加sentinel配置:
spring:profiles:active: dev # 环境设置application:name: service-sms # 服务名cloud:nacos:discovery:server-addr: 127.0.0.1:8848# sentinelsentinel:transport:dashboard: localhost:8080port: 8719
开启被动降级:
feign:client:config:default:connect-timeout: 600000read-timeout: 600000sentinel:enabled: true # OpenFeign整合sentinel,启动被动降级
开启兜底方案fallback
@FeignClient(value = "service-core",fallback = CoreUserInfoClientFallback.class) //调用的远程服务名,fallback是兜底方案
//@RequestMapping("/api/core/userInfo") 不能放这,会报重复出现的异常
public interface CoreUserInfoClient {//该请求路径必须与需要远程调用方法的请求路径一致@GetMapping("/api/core/userInfo/isMobileExist/{mobile}")public boolean isMobileExist(@PathVariable String mobile);
}
实现兜底方法:

@Component
public class CoreUserInfoClientFallback implements CoreUserInfoClient{@Overridepublic boolean isMobileExist(String mobile) {System.out.println("兜底函数,默认返回手机号已经被注册过");return true;}
}
相关文章:
尚融宝——整合OpenFeign与Sentinel实现兜底方法——验证手机号码是否注册功能
一、整合过程 在项目添加依赖:添加位置 <!--服务调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> 在需要的服务中添加启动注…...
几种常见的激活函数
文章目录 常见的激活函数介绍Sigmoid函数ReLU函数LeakyReLU函数Tanh函数Softmax函数总结 常见的激活函数介绍 激活函数是神经网络中的重要组成部分,它决定了神经元的输出。在神经网络的前向传播中,输入数据被传递给神经元,经过加权和和激活函…...
MySQL-数据库,数据表的基本操作
数据库,数据表的基本操作 1 数据库的基本操作1.1 创建数据库1.2 删除数据库 2 数据表的基本操作2.1 创建数据表2.1.1 主键约束2.1.2 外键约束2.1.3 非空约束2.1.4 唯一性约束2.1.5 默认约束2.1.6 自增列 2.2 查看数据表结构2.2.1 查看表基本结构语句DESC2.2.2 查看表…...
IC-14W网络IC卡读写器_银河麒麟桌面操作系统V10适配测试报告
银河麒麟操作系统产品NeoCertify 认证测试报告 系统版本:银河麒麟桌面操作系统V10 厂商名称: 广州荣士电子有限公司 认证产品:IC-14W网络IC卡读写器 测试日期: 2022-11-04 …...
面试常见问题
1.自我介绍 面试官您好,我叫**,在招聘网站上看到了公司的介绍和岗位要求,觉得非常有吸引力,结合自己的过往经历,也感觉自己能够胜任,所以很高兴能有这次面试机会。 参与工作已经5年了,18年毕业于…...
matlab数据归一化与反归一化处理
假如数据实际取值范围为 X i ∈ [ − π π ] , i 1 , 2 , 3 X_i \in [-\pi \ \ \pi], i1,2,3 Xi∈[−π π],i1,2,3,变量服从正态分布 示例如下: %% 数据归一化处理及其概率密度函数 clear clc Mu [0 0 0]; % 均值 Sigma [1 1 1]; % 标准差 C…...
【杂凑算法篇】密码杂凑算法的安全强度
【杂凑算法篇】密码杂凑算法的安全强度 杂凑(哈希)算法安全强度—【蘇小沐】 文章目录 【杂凑算法篇】密码杂凑算法的安全强度(一)安全强度(Security Strength)(二)杂凑算法的安全强度与对比总…...
【RobotFramework自动化测试】
robotframework介绍 RF是一个基于Python语言开发的,可扩展的,是以关键字驱动模式的自动化测试框架。RF最新的版本是2019 年7月份发布,7月份之前只支持python2.7,7月之后支持3.X的版本 robotframework的安装 安装python环境&…...
操作系统原理 —— 什么是中断?(四)
我们先来看看早期的计算机的工作流程: 如上图,在早期的计算机假设有三个程序需要执行,执行顺序是:先执行程序1,等待程序1结束之后,再开始执行程序2,以此类推,所以它们是串行执行的…...
SA168 3BSE003389R1
SA168 3BSE003389R1 远程终端控制系统(RTU)可连接到其他设备。RTU可将设备上的电气信号转换为数字的值,例如一个开关或阀开/关的状态,或是仪器量测到的压力、流量、电压或电流。也可以借由信号转换及传送信号来控制设备࿰…...
基于Java+Springboot+Vue+elememt美食论坛平台设计实现
基于JavaSpringbootVueelememt美食论坛平台设计实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文…...
Go Etcd
基本操作 go get go.etcd.io/etcd/client/v3# 此处使用的 版本是: # go.etcd.io/etcd/client/v3 v3.5.8这里使用的是 "go.etcd.io/etcd/client/v3" 而不是 "go.etcd.io/etcd/clientv3" 我们不使用 etcd/clientv3,因为它与grpc 最新…...
01、Cadence使用记录之新建工程与基础操作(原理图绘制:OrCAD Capture CIS)
01、Cadence使用记录之新建工程与基础操作(原理图绘制:OrCAD Capture CIS) 硕士学电磁场去了,写点博客记录下学习过程。 参考的教程是B站的视频:allegro软件入门视频教程全集100讲 本科的时候就对Cadence有所耳闻&am…...
Redis数据结构与对象-链表和字典
1、链表 其实个人感觉redis的链表内容和其他的差不多。就是一个listNode结构,里面又指向前置节点和后置节点的指针。 然后redis链表可以保存各种不同类型的值。 链表被广泛用于实现redis的各种功能,比如列表键、发布与订阅、慢查询、监视器等。 2、字典…...
学系统集成项目管理工程师(中项)系列08a_合同管理(上)
1. 合同(Contract) 1.1. 契约 1.2. 广义概念 1.2.1. 以确定各种权利与义务为内容的协议,即只要是当事人之间达成的确定权利义务的协议均为合同,不管它涉及哪个法律部门及何种法律关系 1.2.2. 合同除应包括民法中的合同外&…...
【Linux 裸机篇(四)】I.MX6ULL C语言 LED 驱动
文章目录 一、汇编搭建 C 语言环境二、C 语言编写三、编写 Makefile四、链接脚本 一、汇编搭建 C 语言环境 实际工作中是很少用到汇编去写嵌入式驱动的,大部分情况下都是使用 C 语言去编写的。只是在开始部分用汇编来初始化一下 C 语言环境,比如初始化 D…...
我也曾经因安装库而抓狂,直到我遇到了
入门教程、案例源码、学习资料、读者群 请访问: python666.cn 大家好,欢迎来到 Crossin的编程教室 ! 几乎所有的 Python 学习者都遇到过“安装”方面的问题。这些安装问题包括 Python 自身环境的安装、第三方模块的安装、不同版本的切换&…...
DDPG算法详解
DQN算法详解 一.概述 概括来说,RL要解决的问题是:让agent学习在一个环境中的如何行为动作(act), 从而获得最大的奖励值总和(total reward)。 这个奖励值一般与agent定义的任务目标关联。 agent需要的主要学习内容:第一是行为策略…...
继续学c++
由于c里面有很多和c语言很像的东西,这里就来总结一点不像的或者要注意的,或者是我已经快忘记的; 先来一个浮点型也就是实型类型的总结; 知道浮点型有这两个类型:float和double型; 然后float型占四个字节…...
Day949.遗留系统之殇:为什么要对遗留系统进行现代化? -遗留系统现代化实战
遗留系统之殇:为什么要对遗留系统进行现代化? Hi,我是阿昌,今天学习记录是关于遗留系统之殇:为什么要对遗留系统进行现代化?的内容。 不知道你是否跟曾经一样,身处一个遗留系统的漩涡之中&…...
Gated DeltaNet 线性注意力:揭秘大模型算力魔咒的破局之道!
文章深入探讨了线性注意力机制在大模型中的重要性,特别是Gated DeltaNet如何通过改变运算顺序,将Transformer的注意力计算复杂度从平方级降低到线性级,从而打破算力瓶颈。文中对比了阿里Qwen、Kimi Linear等模型的线性架构应用,以…...
解码汽车ECU的“健康档案”:剖析吉利Basetech五大运行周期计数器(OCC)的协同诊断逻辑
1. 汽车ECU的“健康档案”是什么? 当你去医院体检时,医生会查看你的病历记录、化验报告和近期症状,综合判断你的健康状况。汽车ECU(电子控制单元)也有类似的"健康档案",它就是吉利Basetech技术中…...
手把手教你用PyTorch 2.0复现风源AI气象模型(附GitHub源码解读)
手把手教你用PyTorch 2.0复现风源AI气象模型(附GitHub源码解读) 气象预测正经历从传统数值模拟到AI驱动的范式转移。本文将带您深入风源模型的技术内核——一个融合卫星遥感与深度学习的混合架构,通过PyTorch 2.0实现从数据预处理到模型推理的…...
深度解析:相机、LiDAR与IMU紧耦合SLAM技术的最新进展与挑战
1. 为什么需要相机、LiDAR与IMU紧耦合? 想象一下你第一次玩VR游戏时的场景:头显里的画面随着你转头而实时变化,但稍有延迟就会让人头晕目眩。这正是SLAM技术要解决的核心问题——在未知环境中实时确定自身位置并构建地图。而单一传感器就像只…...
Java调用C/C++/Rust的5种方式:FFI vs JNI vs JNA vs JNR vs Panama——2024权威对比评测
第一章:Java外部函数接口概述与技术演进脉络Java外部函数接口(Foreign Function & Memory API),即Project Panama的核心成果,是Java平台为高效、安全地与本地代码(如C/C库)及非堆内存交互而…...
5G RedCap路由器如何选?关键特性解析与典型应用场景指南
1. 5G RedCap路由器选购的核心指标 第一次接触5G RedCap路由器时,我被参数表里密密麻麻的术语搞得头晕眼花。后来在工业现场实测了7款不同型号后,才发现真正影响使用体验的关键指标其实就这几个: 频段支持就像路由器的"语言能力"。…...
Qwen3-4B-Thinking-GGUF开源模型:Apache-2.0协议下合规商用注意事项
Qwen3-4B-Thinking-GGUF开源模型:Apache-2.0协议下合规商用注意事项 1. 引言:当开源模型遇上商业应用 最近,一个名为Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF的模型在开发者圈子里引起了不小的关注。这个模型基于Qwen3-4B-Thinkin…...
3个高效步骤掌握B站视频下载工具:从解析到批量管理的完整方案
3个高效步骤掌握B站视频下载工具:从解析到批量管理的完整方案 【免费下载链接】bilidown 哔哩哔哩视频解析下载工具,支持 8K 视频、Hi-Res 音频、杜比视界下载、批量解析,可扫码登录,常驻托盘。 项目地址: https://gitcode.com/…...
阿里通义Z-Image-Turbo WebUI镜像部署:科哥二次开发版详细使用教程
阿里通义Z-Image-Turbo WebUI镜像部署:科哥二次开发版详细使用教程 1. 镜像概述与核心优势 阿里通义Z-Image-Turbo WebUI是由开发者"科哥"基于阿里通义实验室原版模型二次开发的图像生成工具。这个镜像封装了完整的WebUI界面,让用户无需复杂…...
哈工大深圳LaTeX论文模板:5分钟搞定专业学位论文排版的终极方案
哈工大深圳LaTeX论文模板:5分钟搞定专业学位论文排版的终极方案 【免费下载链接】hitszthesis A dissertation template for Harbin Institute of Technology, ShenZhen (HITSZ), including bachelor, master and doctor dissertations. 项目地址: https://gitcod…...
