• 统一搜索


    微服务架构在云服务中应用的越来越广泛,常常会涉及到数据查询需要调用多个微服务的场景。如在组织结构服务中,执行对用户授权的业务操作,就需要调取用户中心服务的用户数据。

    传统的数据库关系模型大致如下图:

    「技术干货」统一搜索

     

    但是在微服务应用架构下,管理员对该组织下人员授权,组织服务先从用户中心获取员工数据,再到权限中心对用户进行授权,调用关系如下:

    「技术干货」统一搜索

    在云服务中,随着业务发展,微服务数量和数据量会持续增加,一些问题会逐步的暴露:如核心应用的强依赖问题,数据孤岛问题,数据库性能问题等等。

    1、服务的强依赖问题,微服务会解决单点问题,但是服务依赖是一个持久存在的问题:数据消费方需要向数据提供方获取数据,尽管这些数据只是辅助作用。如果这些服务之间出现网络抖动或者故障,会导致整个依赖链的服务出现不稳定甚至不可用。

    「技术干货」统一搜索

     

    2、数据孤岛问题,各个微服务的数据往往各自为政,但是又要相互协同,这使得服务层在处理业务逻辑的时候,数据访问层不仅仅针对数据库,还需要调用其他微服务来获取数据,数据孤岛使得各个微服务应用变得复杂而且相互依赖。

     

    3、随着业务发展,模型复杂度的增加,数据量的增加,关系表模型变得越来越复杂,数据库性能也逐渐吃紧,数据量增加和模型复杂化使得数据库索引不再是解决查询性能问题的银弹。

    「技术干货」统一搜索

    统一搜索服务是一个数据托管服务,支持数据结构的自由定制,可以解决多个微服务之间的基础数据调用模型复杂、数据关联模型复杂、数据检索效率慢的问题,主要有以下几大基础功能:

    ·基础数据共享,解决数据孤岛问题;

    ·复杂网状模型扁平化,简化关系模型;

    ·数据安全,能够根据角色进行精确到字段级别的授权;

    ·数据近实时同步

    ·提供快速、多样的检索能力

    统一搜索服务不同于简单的Solr Cloud或者Elasticsearch Cluster,相对比而言,有以下几大优势:

    1、数据模型自由定制:

    数据结构计算模式有两种。

    ·同构数据,数据结构的计算由应用负责,数据结构托管到数据仓库。

    ·异构数据,应用自定义数据结构,数据结构计算由数据仓库负责,生成新的数据结构并提供检索能力。

    「技术干货」统一搜索

     

    2、复杂网状模型扁平化,简化关系模型

    对于复杂关系模型的数据,通过数据仓库的分析计算,将网状模型转换为扁平模型,简化关系模型的同时,增加数据可读性,为数据可视化,数据分析做好基础。

    「技术干货」统一搜索

    3、数据共享、数据安全

    统一搜索服务收集各个微服务的基础数据,提供数据共享服务,解决了数据孤岛问题;同时,基于RBAC模型,精确到字段级别的权限控制,实现对数据调用的权限控制。数据授权使得各个微服务的数据数据能够做到安全可靠有选择性的共享。

    4、海量数据场景下快速、丰富的数据检索服务

    统一搜索服务使用索引检索技术,基于Lucene,提供快速、丰富的的数据检索能力。

    数据搜索能力包括但不限于:

    分词类型说明模糊分词类似于数据库的全模糊搜索,如果字段包含任何查询条件的内容,将返回该条记录前缀匹配类似于数据库的右模糊搜索,基于查询条件的前缀匹配拼音分词支持简拼,全拼的模糊匹配分词基于自然语义的中文分词基于IK分词,适用于文章等内容检索英文分词基于英文模型的分词,能够根据标点符号,大小写,以及标签(#,@)来智能的分词英文去词根分词在英文分词的基础上,将复词转换为词根,如SF‘s,分词之后成为SF

    统一搜索服务在各个应用数据隔离的场景下,提供了统一的数据托管服务,根据数据模型定义,对关系型复杂的数据进行简化处理,降低了应用获取数据的复杂度,提供了快速的检索服务。

    使用案例

    友户通

    背景

    友户通是用友云的用户中心,有着海量的用户数据。友户通不仅仅承担这整个用友云的用户鉴权职责,更有数不清的应用向友户通查询着用户的基础数据。调用方往往希望通过模糊查询来获取相关的用户数据,这使得友户通的数据库压力很大,而且响应时间很慢。

    方案

    友户通使用了统一搜索服务有选择性的托管了他们海量的用户数据,屏蔽了一些关键信息,在对外提供数据查询接口响应时间上有了大幅度的提升,由原来的5s左右缩短到了到了300ms以内。

    应用中心

    背景

    应用中心是用友云应用的管理中心,有着复杂的关系模型。在对应用进行授权的时候,往往需要根据组织模型,获取人员编码,再从用户中心拉取人员数据,才能对某个组织下的资源进行授权,用友云海量的组织数据、人员数据、资源数据使得应用中心授权变得缓慢。

    方案

    应用中心使用了统一搜索服务简化了他们的数据模型,用户中心选择性的开放了一些用户辅助字段,联同应用中心的组织模型,资源模型,权限模型等,由统一搜索服务进行模型计算,并负责数据变更的同步,简化了应用中心的数据调用步骤,由原先的数据库关系查询+微服务调用的模式转换为调用统一搜索服务,大大减少了数据获取的响应时间。

    玩事App

    背景

    玩事App是友文化团推出的一款工作交流软件,在人员检索的场景下,他们面临着响应时间快速、检索形式多样话的挑战,由原先的姓名检索,到姓名、邮箱、手机号的模糊检索、再到可以根据拼音进行检索,多样化的检索需求让玩事App选择了统一搜索服务。

    方案

    在面对玩事App多样化的检索需求,统一搜索服务的能力完美的拥抱需求的变更。玩事App不需要修改业务逻辑,只需要在统一搜索服务修改分词方式,索引重建,需求完成!

  • 相关阅读:
    大端模式与小端模式
    通过tcp socket实现Linux与windows之间的文件传输
    关于递归的几个小例子
    关于线性表的一些简单应用
    数据结构(c语言实现)--线性表
    简单实现getpwnam()
    chapter 7 内存分配函数
    chapter6 非局部跳转函数 setjmp()与longjmp()
    Xcode 出现Permission denied 解决方法
    关于ARfoundation ILRuntime热更新项目的坑
  • 原文地址:https://www.cnblogs.com/yunpt/p/10169924.html
Copyright © 2020-2023  润新知