在 Koverhoop,我们正在保险、医疗、房地产和离线分析领域建立一些大型项目。在我们其中一个多租户团体保险经纪平台 klient.ca,我们计划构建一个强大的搜索功能,希望能在用户输入内容的同时同步呈现搜索结果。下面是我们能够实现的效果,我将在这篇文章讨论这一功能的核心基础设施,包括如何完全自动化部署及如何快速完成构建工作。

来自作者的动图: 搜索能力

这个系列文章分为两部分,我将分别讨论以下内容:

  • 第 1 部分:了解用于支持此搜索能力的技术栈,并使用 Docker 和 Docker-compose 进行部署(本文)

  • 第 2 部分:使用 Kubernetes 对这些服务进行可伸缩的生产部署(待发布)

问题定义和决策

为了构建一个快速、实时的搜索引擎,我们必须做出某些设计决策。我们使用 Postgres 作为主数据库,因此有以下选项可以使用:

  1. 直接在 Postgres 数据库中查询我们在搜索栏中键入的每个字符。

    基于 Kafka 技术栈构建和部署实时搜索引擎的实践相关推荐

    1. Kubernetes 基于 EFK 技术栈的日志收集实践

      之前写过一篇文章介绍了容器环境下日志管理的原理机制:从 Docker 到 Kubernetes 日志管理机制详解,文章内容偏理论,本文在该理论的支撑下具体实践 Kubernetes 下基于 EFK 技 ...

    2. 基于Python技术栈的算法落地踩坑

      背景介绍 在一些业务场景,我们需要把离线训练好的模型以微服务部署线上,如果是简单的使用sklearn pipeline,可以保存为XML格式的pmml供Java调用, 在配置为4 core,8G内存的 ...

    3. 基于vue技术栈制作自己的简历网站问题总结篇(入门vue基础项目)

      前言 目前在学习vue技术栈的同时接触到了很多以前没用过的各种工具(如webpack,npm,git等等),配合着vue全家桶里的一些东西做了一个基于vue的个人简历网站(虽然用vue框架搭简历网站优 ...

    4. c语言构建栈_选择技术栈构建通用平台

      c语言构建栈 Java社区中有许多关于Spring vs Java EE的话题. 一群人会争辩说您应该使用一个而不是其他.等等.当我看到这一点时,我不禁要想为什么我们不能同时使用它们呢? 实际上,我认 ...

    5. 选择技术栈构建通用平台

      Java社区中有很多关于Spring vs Java EE的话题. 一群人会争辩说您应该使用一个而不是其他.等等.当我看到这一点时,我不禁要想为什么我们不能同时使用它们呢? 实际上,我认为有效地使用它 ...

    6. 程序员疯狂记事:如何利用众多技术栈构建一个 Web 应用程序?!

      [CSDN 编者按]"Elixir.Phoenix.Absinthe.GraphQL.React和Apollo"--在这几个关键词中,有几个是身为开发者的你一直想玩但还没来得及玩的 ...

    7. Oracle要对Java收费了,SAP基于Java技术栈的那些产品的客户怎么办

      今年年初的时候,所谓"Oracle要对Java收费"的新闻,在网上传得沸沸扬扬.这个新闻被专业人士视为标题党,而国内众多技术论坛,比如知乎社区上,有很多大神对"Java收 ...

    8. 基于 Kafka 与 Debezium 构建实时数据同步

      起源 在进行架构转型与分库分表之前,我们一直采用非常典型的单体应用架构:主服务是一个 Java WebApp,使用 Nginx 并选择 Session Sticky 分发策略做负载均衡和会话保持:背后 ...

    9. 云原生不仅颠覆了技术栈,背后的每个岗位也在悄然发生改变

      简介:随着云原生理念与云原生技术的不断完善和发展,越来越多的行业开始落地实践云原生技术,这对不同岗位的技术从业者产生了不同程度的影响.不管是对 IT 主管还是对一线开发人员和运维人员来说,从业务逻辑到 ...

    最新文章

    1. 命令行运行hadoop实例wordcount程序
    2. Angular 下的 directive (part 2)
    3. android service框架,Android应用框架之Service
    4. centos linux内核编译环境,CENTOS linux kernel 内核编译
    5. 1859. 将句子排序
    6. JAVA多态(向上转型)与RTTI向下转型
    7. 2021-01-26数据治理具备哪些优势
    8. python查询注册表子项是否存在并操作
    9. Linux文件系统(四)---三大缓冲区之inode缓冲区 (内存inode映像 )
    10. 【UVA1599】Ideal Path理想路径--两种约束条件(!!双向bfs+非简单图的最短路+无向图邻接记录法)
    11. web漏洞扫描器原理_面向WEB的分布式漏洞扫描器的设计与实践
    12. 支持USB Video Class的摄像头
    13. matlab contourf去掉等高线,MATLAB 等高线边界问题:怎么让等高线在边界外不显示...
    14. 01 计算机网络概念
    15. extract($_POST, EXTR_SKIP)讲解
    16. Python 鸭子类型的理解
    17. Vue-element tab选项卡二级页面返回缓存选中页签
    18. 几分钟内上线一个网站,这些神器我爱了!
    19. 日本的养老现状,会是我们的未来吗?
    20. Win11正式发布,新功能炸裂!

    热门文章

    1. 算法竞赛入门经典(第二版) | 例题5-1 大理石在哪 (普适查找)(UVa10474,Where is the Marble?)
    2. 【详细解析】7-1 两个有序序列的中位数 (25 分)
    3. mysql 二进制转字符串_MySql字符转义 | 学步园
    4. windows无法启动oracleremexecservice服务_Windows下MySQL无法启动万能解决方案
    5. python程序运行时间计算公式_Python执行时间的计算方法小结
    6. 区位码\机器码\内码关系
    7. win10系统的定位服务器,Win10系统无法开启定位功能的原因及解决方法
    8. HTML怎么让正方形转动,第十讲:html5中canvas实现正方体的动态旋转
    9. 在java中私有方法能被重载吗_我可以在Java中重载私有方法吗?
    10. 微服务feignclient_微服务-(声明式调用feign)