首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【微服务】165:Feign的最佳使用方式

【微服务】165:Feign的最佳使用方式

作者头像
刘小爱
发布2020-09-28 10:17:37
5540
发布2020-09-28 10:17:37
举报
文章被收录于专栏:零基础自学Java零基础自学Java

在此之前做一个强调

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

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

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

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

学习计划安排如下:

  • 昨天在商品微服务中整合了搜索需要的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客户端调用对应的方法查询数据,并导入到索引库中即可。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 刘小爱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、feign客户端的使用
  • 二、feign客户端的优化
  • 三、创建索引库
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档