本发明主要涉及网络技术领域,具体涉及一种跨微服务的模糊搜索方法。
背景技术:
微服务架构由于把各个功能模块拆分成了服务形态,解决了高耦合问题,但同时也带来了跨模块查询困难的问题,比如,员工和组织两个微服务,如果有场景是需要根据员工姓名进行模糊搜索并列表显示改员工的组织属性,这种情况,如果是单体架构很容易实现,只要链表查询即可,但是微服务架构情况下,数据库相互独立,甚至物理隔绝,没有办法联表,如果先查询员工微服务,获取到返回的员工id集合,再查询组织微服务,虽然可以实现这个功能,但是开发和查询效率都较低。
技术实现要素:
本发明目的就是为了弥补已有技术的缺陷,提供一种跨微服务的模糊搜索方法。
本发明是通过以下技术方案实现的:
一种跨微服务的模糊搜索方法,其特征在于包括以下步骤:
(1)将查询功能作为一个单独的微服务部署;
(2)创建一个单独的查询数据库,如果自建,可以采用sphinx或xunsearch,如果基于阿里云,可以采用开发搜索;
(3)配置查询微服务,根据自建或阿里云进行逻辑判断,做条件分支;
(4)配置查询数据库,将需要模糊查询的微服务数据,进行索引创建;
(5)配置sphinx,进行增量索引自动生成的作业脚本构建,若线上阿里云,配置开放搜索的rds同步逻辑;
(6)编写查询微服务的查询接口,提供给对应的模糊搜索功能模块使用;
(7)模糊搜索功能直接调用查询微服务的查询接口进行查询,直接返回全量数据。
本发明的原理是:
本发明利用全文检索功能,如:sphinx、xunsearch,开放搜索完成跨微服务的模糊搜索。
本发明的优点是:
本发明提高了跨服务模糊查询的开发和查询效率,通过实际项目测试,开发效率由1天提升至10分钟,查询效率由500ms提升至100ms。
具体实施方式
一种跨微服务的模糊搜索方法,包括以下步骤:
(1)将查询功能作为一个单独的微服务部署;
(2)创建一个单独的查询数据库,如果自建,可以采用sphinx或xunsearch,如果基于阿里云,可以采用开发搜索;
(3)配置查询微服务,根据自建或阿里云进行逻辑判断,做条件分支;
(4)配置查询数据库,将需要模糊查询的微服务数据,进行索引创建;
(5)配置sphinx,进行增量索引自动生成的作业脚本构建,若线上阿里云,配置开放搜索的rds同步逻辑;
(6)编写查询微服务的查询接口,提供给对应的模糊搜索功能模块使用;
(7)模糊搜索功能直接调用查询微服务的查询接口进行查询,直接返回全量数据。