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

长沙网站定制公司深圳网站建设推广

长沙网站定制公司,深圳网站建设推广,宁波注册公司需要多少钱,frontpage怎么做网站#x1f4da; 目录 为什么要用OpenFeign#xff1f; 在cart-service中整合OpenFeign 2.1 引入依赖 2.2 启用OpenFeign 2.3 编写Feign客户端 2.4 调用Feign接口 开启连接池#xff0c;优化Feign性能 3.1 引入OkHttp 3.2 配置启用OkHttp连接池 3.3 验证连接池生效 Feign最佳… 目录 为什么要用OpenFeign 在cart-service中整合OpenFeign 2.1 引入依赖 2.2 启用OpenFeign 2.3 编写Feign客户端 2.4 调用Feign接口 开启连接池优化Feign性能 3.1 引入OkHttp 3.2 配置启用OkHttp连接池 3.3 验证连接池生效 Feign最佳实践 —— 客户端抽取 4.1 避免重复编码问题 4.2 抽取公共Feign模块 4.3 配置扫描路径 配置OpenFeign日志输出 总结 1. 为什么要用OpenFeign 在微服务中服务与服务之间频繁调用。传统使用RestTemplate需要自己管理服务发现、负载均衡、URL拼接代码复杂且难以维护。 OpenFeign的优势 声明式接口开发像调用本地方法一样调用远程服务 内置负载均衡支持 Ribbon、LoadBalancer 支持连接池支持超时重试、熔断降级 支持详细日志输出方便排查问题 ✅ 一句话总结OpenFeign让远程调用优雅又高效 2. 在cart-service中整合OpenFeign 以 cart-service 查询我的购物车 为例来演示整合OpenFeign。 2.1 引入依赖 在 cart-service 的 pom.xml 中添加 !-- OpenFeign -- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency!-- 负载均衡器 -- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId /dependency2.2 启用OpenFeign 在 CartApplication 启动类上添加注解 EnableFeignClients表示开启Feign客户端扫描。 2.3 编写Feign客户端 在 com.hmall.cart.client 包下新建接口 ItemClient FeignClient(item-service) public interface ItemClient {GetMapping(/items)ListItemDTO queryItemByIds(RequestParam(ids) CollectionLong ids); }说明 FeignClient(item-service)指向要调用的微服务 GetMapping(/items)对应远程接口路径 RequestParam(ids)请求参数 返回值会自动封装成ListItemDTO 2.4 调用Feign接口 在 CartServiceImpl 中直接注入 ItemClient然后调用即可 Autowired private ItemClient itemClient;// 调用 ListItemDTO items itemClient.queryItemByIds(cartItemIds);✅ 不需要再写 RestTemplate、不需要自己负载均衡调用清晰简单 3. 开启连接池优化Feign性能 默认Feign底层用的是HttpURLConnection不支持连接池不适合高并发。 推荐使用 OkHttp 作为Feign底层提高性能。 3.1 引入OkHttp依赖 在 cart-service 的 pom.xml 中添加 !-- OKHttp -- dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-okhttp/artifactId /dependency3.2 配置启用OkHttp连接池 在 application.yml 中增加配置 feign:okhttp:enabled: true✅ 这样Feign就会自动使用OkHttp作为底层HTTP客户端并且自动使用连接池。 3.3 验证连接池生效 在 FeignBlockingLoadBalancerClient 的 execute 方法打断点调试可以看到底层已经是 OkHttpClient 了说明连接池生效了 4. Feign最佳实践 —— 客户端抽取 未来 trade-service 也需要调用 item-service 的接口重复定义 ItemClient 显然不合理需要做客户端抽取 4.1 避免重复编码问题 思路把公共的Feign客户端抽取出来供各个微服务引用。 4.2 抽取公共Feign模块 在项目下新建 hm-api 模块pom.xml配置 artifactIdhm-api/artifactIddependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependencydependencygroupIdio.swagger/groupIdartifactIdswagger-annotations/artifactIdversion1.6.6/version/dependency /dependencies然后将 ItemDTO、ItemClient 移动到 hm-api 模块中。 4.3 配置扫描路径 在 cart-service、trade-service 的启动类中添加 方式一声明扫描包 EnableFeignClients(basePackages com.hmall.api.client)方式二指定特定FeignClient EnableFeignClients(clients {ItemClient.class})这样就可以正常引用公共模块中的Feign接口了 5. 配置OpenFeign日志输出 默认OpenFeign日志级别是 NONE不会打印请求和响应信息。开发测试时开启详细日志很有必要。 5.1 定义日志配置类 在 hm-api 模块新增配置类 Configuration public class DefaultFeignConfig {Beanpublic Logger.Level feignLogLevel(){return Logger.Level.FULL;} }设置日志级别为 FULL打印完整请求与响应数据。 5.2 配置日志生效方式 局部生效在单个 FeignClient 中指定 FeignClient(value item-service, configuration DefaultFeignConfig.class)全局生效在 EnableFeignClients 中指定 EnableFeignClients(defaultConfiguration DefaultFeignConfig.class)5.3 日志示例 输出示例查询商品接口 [ItemClient#queryItemByIds] --- GET http://item-service/items?ids1001 HTTP/1.1 [ItemClient#queryItemByIds] --- END HTTP (0-byte body) [ItemClient#queryItemByIds] --- HTTP/1.1 200 (127ms) ... {id:1001,name:巴布豆拉拉裤,price:67100,stock:10000,...}✅ 可以清晰看到请求方法、URL、参数、响应内容排查问题非常方便 6. 总结 本篇完整讲解了如何在微服务项目中 引入OpenFeign 实现声明式远程调用 优化连接池性能使用OkHttp 进行Feign客户端抽取复用 配置请求日志方便开发调试 ✅ OpenFeign让我们的微服务调用变得更加优雅、简洁、性能更高。 ✅ 配合OkHttp和合理日志配置是生产级SpringCloud微服务系统必不可少的实践
http://www.pierceye.com/news/86702/

相关文章:

  • 高州网站建设div做网站
  • 做外贸必须建网站吗李沧网站建设公司
  • html5 图片网站网站建设案例价格
  • 电商网站建设目的网站开发的体会
  • 大昌建设集团有限公司网站手机网站首页布局设计
  • 梁山做网站价格建网站多少费用
  • 网站购物车作用企业管理咨询服务机构
  • 手机网站的建设高端网站建设浩森宇特
  • 中国那个公司的网站做的最好看企业网站的功能可分为前台和后台两个部分
  • 直播网站开发方案ppt建筑八大员
  • 杭州高端网站建设抚顺市城市建设档案馆网站
  • 如何做公司网站网页四川省采购一体化平台
  • 服务器怎么设置ip做网站产品软文是什么
  • 数据库做图书管理系统网站网络运营seo是什么
  • 卖水果做哪个网站好沧州泊头纯设计网站制作
  • 南京网站建设中企动力十大免费自学app
  • 增城门户网站制作一个简单网站的代码
  • 网站编程 外包类型网站开发后的经验总结
  • vps 网站能打开html编辑器汉化版apk
  • 广州开发网站设计深圳学校网站建设哪家好
  • 长沙哪里可以做网站建设网站都需要准备什么材料
  • 网站开发法律生活中好的设计产品
  • 移动网站开发认证考试东莞网页设计与制作教程
  • 怎么查询网站是哪家公司做的做衣服的网站推荐
  • 汇邦团建网站谁做的仿站能被百度收录吗
  • 做大型网站需要多少钱设计医院网站建设
  • 加强部门网站建设成都建设局官网
  • 做教学的视频网站网站推广外链
  • 网站手机网站怎么建立关于建设学校网站的报告书
  • 做网站工作描述网络怎么推广