Evernote服务

我们的服务由以下几个组件组成。

分片(NoteStore)

分片是Evernote服务的核心单元,用于存储用户的笔记。每个分片最多可以支撑30万个Evernote用户,并包含了如下几个组件。

  • 基于Tomcat的前端Web服务层:Evernote客户端会连接到这个层。
  • 数据存储层:用于存储用户笔记的MySQL数据库。
  • 搜索索引:基于Lucene的服务端搜索索引,用于搜索用户的笔记内容。

我们总共有762个分片,存储着2亿个用户账号和大约50亿个用户笔记。

UserStore

UserStore使用MySQL数据库来存储用户信息,包括他们的认证信息。因为数据库管理着所有用户的状态和认证信息,所以它是最为关键也是最为复杂的一个组件,在迁移过程中我们需要格外小心。

用户附件存储(资源)

我们有一个单独的文件存储层,用于存储50亿个用户附件(我们把这些附件称为资源)。这个层由206个自包含的WebDav服务器组成。每个用户附件有三个副本,其中两个分别被保存到本地的两个不同的WebDev服务器上,另外一个被发送到远程灾备数据中心的WebDav服务器上。

前端负载均衡

我们的高可用负载均衡器集群负责将用户请求路由到特定的分片上。

配套服务

我们还有200多台Linux服务器用于缓存和执行批处理任务,比如笔迹识别和文本识别。

我们的迁移可选方案

Evernote服务规模庞大,向云端迁移是一项复杂的工程,我们需要作出很多与依赖项有关的决策。我们希望能够尽快完成迁移,所以我们为关键性决策制定了一个草案。

我们要先理清楚需要做出哪些变更。我们知道,有些组件无法直接被简单地迁移到云端,所以我们把组件分为两类。

  • 转移:有些组件在CGP上能够找到几乎一样的替代品,分片、UserStore以及大部分配套服务都属于这一类。在我们的物理数据中心,这些组件都是基于Linux的,所以我们将会直接把它们迁移到云端的Linux虚拟机上。
  • 转换:在迁移过程中需要对用户附件存储、负载均衡层和识别服务(Reco)做一些重大的转换。对于这些组件来说,要么在云端找不到相应的替代方案,要么云端已经存在更好的替代方案。

迁移方法

转载于:https://www.cnblogs.com/bonelee/p/6649905.html

Evernote相关技术介绍——mysql+lucene+tomcat相关推荐

  1. 智能会议系统(34)---Android语音通话实现方案及相关技术介绍

    Android语音通话实现方案及相关技术介绍 Android语音通话实现方案及相关技术介绍 语音通话 Step1语音采集和输出 Step2编解码方式 Step3网络传输 Step4去噪声消回音 语音通 ...

  2. Frida-Dexdump 脱壳工具下载使用以及相关技术介绍

    Frida-Dexdump 脱壳工具下载使用以及相关技术介绍 文章目录 Frida-Dexdump 脱壳工具下载使用以及相关技术介绍 前言 一.查壳.反编译.APK工具推荐 二.查壳 1.方式1 2. ...

  3. Android语音通话实现方案及相关技术介绍

    Android语音通话实现方案及相关技术介绍 Android语音通话实现方案及相关技术介绍 语音通话 Step1语音采集和输出 Step2编解码方式 Step3网络传输 Step4去噪声消回音 语音通 ...

  4. 单机存储系统可靠性及相关技术介绍

    一.存储系统可靠性的影响因素 单机存储系统包括存储硬件和存储软件.存储硬件又包含存储介质.存储控制器.设备固件:存储软件栈层次则更为复杂,以Linux为例包括:存储设备驱动层. 块设备层(Block ...

  5. 撰写毕设论文正文的摘要、绪论、相关技术介绍-“一楼正式开建”-03

    本文思维导图 目录 摘要 绪论 相关技术介绍 我们的建筑,地址选好了,地基也打稳了,今天正式开始建造一楼.那这一楼有什么呢?前门.大厅和后门,这三项必有,对吧.它们分别对应毕业设计中的摘要.绪论和相关 ...

  6. Fabric学习(一) — 区块链及相关技术介绍

    目录 一.区块链? 1.1 区块链是什么? 1.2 区块链的分类 1.2.1 公共区块链 1.2.2 联盟区块链 1.2.3 完全私有链 1.3 区块链工作原理 二.区块链相关技术 2.1 基础技术 ...

  7. LoRa、LoRaWAN及网关相关技术介绍

    LoRa.LoRaWAN及网关技术介绍 1. LoRa与LoRaWAN 2. LoRaWAN协议定义的终端节点工作模式 3. LoRaWan网络架构 4. 组网方式 5. 终端节点→网关:多对一时 6 ...

  8. 接入商重构相关技术介绍

    接入商服务处在娱票儿电影票业务调用链的底层.影院.影厅.影片.排期等基础数据的获取,下单.出票.查票.退票等线上交易都依赖接入商服务.旧版的接入商服务都打在一个jar中,由于和其它系统的高耦合性,稍有 ...

  9. ApkScan-PKID 查壳工具下载使用以及相关技术介绍

    ApkScan-PKID 查壳工具下载与使用 文章目录 ApkScan-PKID 查壳工具下载与使用 前言 一. 关于壳的介绍 二. 关于壳的技术资料 三. APKSCAN-PKID的下载 四. AP ...

最新文章

  1. Oracle的分页查询
  2. 请使用frameset/frameset完成以下功能
  3. python查看工作目录_闲话python-36:文件系统操作
  4. objectC 数据类型转换
  5. rabbitmq 不同的消费者消费同一个队列_消息队列王者--rabbitMQ深入理解--工作过程、消费模式、持久化等...
  6. 智慧气象 开源_来自开源的半条命11条智慧
  7. matlab的7.3版本是什么_MX Linux 19.3 发布,Debian和antiX Linux的混合版本
  8. python 私有云_构建私有云伴随着哪些需求?
  9. 插槽作用域渲染按钮开关 ~ 满满的干货哦
  10. linux 上传下载工具有哪些,Linux上传下载工具
  11. 高通平台开发系列讲解(工具篇)ramdump获取与解析
  12. 【斯坦福大学公开课】Stanford NLP: Lesson 1 Intro
  13. 原生js放大镜 原理 一看就懂 非常简单
  14. The Finalless——新学期的scrum
  15. 【Agni-s Philosophy】使用的图形技术解说(后篇)Volume渲染和粒子处理
  16. AMD:无限你我的无限
  17. 关于推进海洋测绘工作的思考
  18. 怎样破解网页禁用鼠标右键
  19. Weakly Supervised Deep Learning for Thoracic DiseaseClassification and Localization on Chest X-rays
  20. hadoop面试题(全) 小白教程

热门文章

  1. JavaScript 的 Promise  和  C# 的 waitone 一样吗?请大家讨论i两句。
  2. 2017-07-18日看登录日志,显示十条:最早的是:2014-04-07 17:09,应该就是注册日期吧
  3. 测试使用skywalking_SkyWalking 搭建及简单使用、入门(Linux)
  4. python保留小数不四舍五入_Python3小数(浮点数)精度处理,[不]四舍五入去小数点后几位...
  5. 介绍java常用的两种注释类型,全网独家首发!
  6. 成功入职字节跳动!2021年冲刺年薪40w
  7. 【深度学习】Tensorflow搭建卷积神经网络实现情绪识别
  8. python【数据结构与算法】武松打虎问题(贪心)
  9. 如何调出matlab的debug按键
  10. mysql 修改配置生效_linux下面MySQL变量修改及生效