今天是刘小爱自学Java的第165天。

在此之前做一个强调

这段时间因为临近国庆,工作上的事情变多,再加上自己国庆要回家,可支配的时间和网络都是一个大问题。

学习效率、学习进度会受到很大的影响,甚至极有可能会断更。

虽然自己之前做了其它方面的准备,存了一些素材,但显然还远远不够。

这种状态会持续到国庆之后,希望自己到时候能早日调整过来而不是一直就这样了…


学习计划安排如下:

  • 昨天在商品微服务中整合了搜索需要的7个业务,今天就在商品微服务中调用这些,使用feign客户端完成。
  • 创建索引库以及数据映射。

一、feign客户端的使用

feign即伪装的意思,使用它后就好像是在处理具体的业务了,但是实际上是在调用别人,也就是我们昨天编写的具体的实现。


  • BrandClient对应了昨天品牌的一个业务:根据id查询品牌。

  • CategoryClient对应昨天商品分类的一个业务:根据商品分类id查询商品分类。

  • GoodsClient对应昨天商品的三个业务:分页查询spu、根据spuId查询sku、根据spuId查询spuDetail。

  • SpecClient对应昨天规格参数的一个业务:规格参数的查询。

关于feign的使用在第135天的笔记中有说明,简单来说就和Controller层代码是非常类似的。

二、feign客户端的优化

一般来说微服务有两类:

需要被调用的微服务

比如说我们写过的商品微服务,它是最核心的一个服务,其有一个特点就是经常需要被其它微服务调用。

不需要被调用的微服务

比如说现在正在实现的搜索微服务,它就不需要被调用,而是调用别人。

一般来说但凡是经常需要被调用的微服务都要优化,优化如下:


①以前的结构

lxa-item-pojo:实体类相关的子工程。

lxa-item-service:业务相关的子工程。

②现在的结构

lxa-item-interface:接口相关的子工程。

也就是说,搜索微服务要调用商品微服务直接调用lxa-item-interface这个子工程就好了。

为什么不调用lxa-item-service?

因为这里面有具体的业务逻辑是如何实现的,如果允许被调用,等于是所有的源码都被其它微服务知道了,出于安全考虑,不会这样做。

而调用lxa-item-interface,别人就只知道调用了什么,至于具体是怎么实现的?不清楚。

三、创建索引库

利用kibana创建一个商品索引库,根据前几天学的知识很简单地就能实现:


索引库中的字段也就是前天分析的数据。

注意:all这个字段当初的理解有点问题,该字段是包含了用户在搜索框中输入的数据,包含标题、分类甚至是品牌这些。

好,索引库创建完毕后,就需要向索引库中导入对应的数据了。

事实上就是去数据库中查询到对应的数据,再将这些数据添加到索引库中。

说来说去都是为了实现这一步。


在搜索微服务中通过上述编写好的四个fegin客户端调用对应的方法查询数据,并导入到索引库中即可。

因为其实现起来比较复杂,代码量太多了,没有做完。

最后

行有不得反求诸己,我是@刘小爱

一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

feign使用_【微服务】165:Feign的最佳使用方式相关推荐

  1. feign扫描_微服务通信之feign的注册、发现过程

    前言 feign 是目前微服务间通信的主流方式,是springCloud中一个非常重要的组件.他涉及到了负载均衡.限流等组件.真正意义上掌握了feign可以说就掌握了微服务. 一.feign的使用 f ...

  2. SpringCloud(第 017 篇)电影微服务接入Feign,添加 fallbackFactory 属性来触发请求进行容灾降级...

    2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 017 篇)电影微服务接入Feign,添加 fallbackFactory 属性来触发请求进行容灾 ...

  3. 微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关

    微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关 1. 微服务简介 1.1 服务架构演变 1.2 SpringCloud ...

  4. input file文件上传_微服务间的文件上传与下载-Feign

    一.文件上传 (1)服务提供者 使用一个MultipartFile接收上传的文件 /** (2)Feign的Client接口 服务门面-feign的接口 pom.xml <dependencie ...

  5. 微服务之Feign远程调用

    微服务之Feign远程调用 1.微服务之间一般都是业务分离,会创建一个独立的模块来存放接口,方便以后调用,以及防止代码的冗余和降低耦合性 2.导入feign的依赖 <dependency> ...

  6. 微服务精通之Feign原理解析

    前言 经过微服务精通之Ribbon原理解析的学习,我们了解到了服务消费者获取服务提供者实例的过程,都是通过RestTemplate来实现的,而且,都是模板化操作.那spring cloud是否有哪个组 ...

  7. go与Java微服务对比_微服务架构对比-Go语言中文社区

    最近使用Docker+SpringCloud来代替Zookper+Dobbo来做微服务,总结如下 现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性.同时,支持微服务的技 ...

  8. hystrix 页面_微服务 | 使用Hystrix实现Spring Cloud的熔断机制

    1. 熔断机制介绍 在介绍熔断机制之前,我们需要了解微服务的雪崩效应.在微服务架构中,微服务是完成一个单一的业务功能,这样做的好处是可以做到解耦,每个微服务可以独立演进.但是,一个应用可能会有多个微服 ...

  9. 两个server 两个数据库 微服务_微服务的数据库设计

    单独的数据库: 微服务设计的一个关键是数据库设计,基本原则是每个服务都有自己单独的数据库,而且只有微服务本身可以访问这个数据库.它是基于下面三个原因. 优化服务接口:微服务之间的接口越小越好,最好只有 ...

  10. svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件

    面临的问题 在分布式微服务架构系统中,业务和系统功能被拆分成了几十甚至上百个服务实例.每个服务实例就是以往单体应用时代的一个独立部署的工程.每个工程都需要自己独立的启动加载和运行时配置文件. 在项目开 ...

最新文章

  1. pythonwhile循环love_input和while循环——Python编程从入门到实践
  2. JAVA只要掌握内部类,多继承和单继承都不是问题
  3. C语言复杂声明解读简明方法
  4. js ---- 对象去重
  5. C# WebService 上传图片
  6. 【数组递归构造二叉树】LeetCode 108. Convert Sorted Array to Binary Search Tree
  7. 动态添加按钮并获取当前点击按钮名字事件
  8. 使用cordova,使html5也能像IOS,Android那样可以 调取手机的相机拍照功能
  9. 第一章ASP程序设计概述
  10. 【数据结构】哈夫曼树及哈夫曼编码实现(C语言)
  11. 微信小程序 下拉刷新 上拉触底分页
  12. 锁相环(PLL)专题一:鉴相器PD
  13. Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
  14. Python XML文件快速排版
  15. Symbolic Graph Reasoning Meets Convolutions 符号图推理与卷积结合的方式
  16. 2020年最强大脑第五期黑白迭代小游戏实现(Java)
  17. 高中计算机教师具备能力,新时代信息技术教师应具备哪些能力和素养
  18. 如何做会议直播,要是卡顿了该怎样解决
  19. 从头开始学51单片机之实例2:用定时中断实现流水灯
  20. Spark读取文件,报错java.lang.ArrayIndexOutOfBoundsException

热门文章

  1. mysql dwith ssl_mysql replication支持ssl(一主一从)
  2. verilog赋多位值_Verilog入门学习笔记——第一弹
  3. mysql openwrt 编译_如何编译OpenWrt
  4. 常见花材的固定的方法有哪些_波峰焊喷嘴的常见故障及处理方法有哪些
  5. 剑指offer面试题[58]-二叉树的下一个结点
  6. 剑指offer面试题[23]-从上往下打印二叉树(按层序打印)
  7. 做了十年的功能测试,下一步该晋升测试开发还是转行软件开发?
  8. 画吧为什么总是显示未连接服务器,画吧APP怎么用 使用方法汇总
  9. java程序片的元素符号_UML 中的 基本画图元素及符号
  10. springboot 上传文件解析入库_springboot上传文件的访问