2026/5/21 18:30:01
网站建设
项目流程
诏安县城乡规划建设局网站,计算机网站设计,电商网红排行榜,网站栏目设计目录 为什么需要这么个东西#xff0c;他解决了什么痛点#xff1f;
方法一 RestTemplate#xff1a;
引入概念#xff1a;注册中心#xff1a;
方法二 nacos服务#xff1a;
其他 为什么需要这么个东西#xff0c;他解决了什么痛点#xff1f;
我们在初始学…目录为什么需要这么个东西他解决了什么痛点方法一 RestTemplate引入概念注册中心方法二 nacos服务其他为什么需要这么个东西他解决了什么痛点我们在初始学习微服务时候会拆分单体项目。会遇到这么一个问题“远程调用问题我这个微服务要用到另一个微服务的一个service在单体项目中直接注入一个service用就可以。但微服务代码数据库都是分开的在微服务中有没有什么好方法”方法一RestTemplateRestTemplate,由spring提供可以方便的发送Http请求。用法创一个RestTemplate并注入容器用的时候注入并调用其exchange方法。还有很多其他方法可以查阅了解不做详细介绍缺点服务的治理问题url是写死的。如果A想调用B的某个接口但B有多个服务部署了不是道调用哪一个。而且如果一个B服务挂掉了或者新的B服务启动了A都不知道没法处理。引入概念注册中心既然有这个缺点我们能不能找个中间人就像找家政一样我们就让A不要去直接找B而是找“家政中心”有啥事你去找“家政中心”他里面管理了B的各个服务的信息。也就是注册中心当A找上门来注册中心就去看看那个阿姨有空。安排给你提供服务。也就是负载均衡当B某个服务新增或者挂掉了能及时反映给“家政中心”。也就是心跳续约方法二 nacos服务注册nacos服务1 数据库中创建nacos表方便存储。2docker部署nacos容器。服务治理服务注册引入nacos discovery依赖配置Nacos地址。服务发现引入nacos discovery依赖配置Nacos地址。然后调用传入参数手写负 载均衡。问题服务发现手写比较麻烦。OpenFeign:引入依赖OpenFeign和SpringCloudLoadBalancer。通过EnableFeiClients,开启OpenFeign功能。编写FeignClient。FeignClient(item-service)声明服务名称GetMapping声明请求方式GetMapping(/items)声明请求路径RequestParam(ids) CollectionLong ids声明请求参数ListItemDTO返回值类型FeignClient(item-service) public interface ItemClient { GetMapping(/items) ListItemDTO queryItemByIds(RequestParam(ids) CollectionLong ids); }使用FeignClient。注入对应的client类然后调用对应的方法。其他日志配置省略。开启连接池引入连接池依赖feign: okhttp: enabled: true # 开启OKHttp功能client类实现在A中不合理代码重复率高两种抽取思路思路1抽取到微服务之外的公共module思路2每个微服务自己抽取一个module实现1.引入对应的依赖坐标。2. EnableFeignClient扫描到对应的包。com.hmall.api.client