Evernote相关技术介绍——mysql+lucene+tomcat
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相关推荐
- 智能会议系统(34)---Android语音通话实现方案及相关技术介绍
Android语音通话实现方案及相关技术介绍 Android语音通话实现方案及相关技术介绍 语音通话 Step1语音采集和输出 Step2编解码方式 Step3网络传输 Step4去噪声消回音 语音通 ...
- Frida-Dexdump 脱壳工具下载使用以及相关技术介绍
Frida-Dexdump 脱壳工具下载使用以及相关技术介绍 文章目录 Frida-Dexdump 脱壳工具下载使用以及相关技术介绍 前言 一.查壳.反编译.APK工具推荐 二.查壳 1.方式1 2. ...
- Android语音通话实现方案及相关技术介绍
Android语音通话实现方案及相关技术介绍 Android语音通话实现方案及相关技术介绍 语音通话 Step1语音采集和输出 Step2编解码方式 Step3网络传输 Step4去噪声消回音 语音通 ...
- 单机存储系统可靠性及相关技术介绍
一.存储系统可靠性的影响因素 单机存储系统包括存储硬件和存储软件.存储硬件又包含存储介质.存储控制器.设备固件:存储软件栈层次则更为复杂,以Linux为例包括:存储设备驱动层. 块设备层(Block ...
- 撰写毕设论文正文的摘要、绪论、相关技术介绍-“一楼正式开建”-03
本文思维导图 目录 摘要 绪论 相关技术介绍 我们的建筑,地址选好了,地基也打稳了,今天正式开始建造一楼.那这一楼有什么呢?前门.大厅和后门,这三项必有,对吧.它们分别对应毕业设计中的摘要.绪论和相关 ...
- Fabric学习(一) — 区块链及相关技术介绍
目录 一.区块链? 1.1 区块链是什么? 1.2 区块链的分类 1.2.1 公共区块链 1.2.2 联盟区块链 1.2.3 完全私有链 1.3 区块链工作原理 二.区块链相关技术 2.1 基础技术 ...
- LoRa、LoRaWAN及网关相关技术介绍
LoRa.LoRaWAN及网关技术介绍 1. LoRa与LoRaWAN 2. LoRaWAN协议定义的终端节点工作模式 3. LoRaWan网络架构 4. 组网方式 5. 终端节点→网关:多对一时 6 ...
- 接入商重构相关技术介绍
接入商服务处在娱票儿电影票业务调用链的底层.影院.影厅.影片.排期等基础数据的获取,下单.出票.查票.退票等线上交易都依赖接入商服务.旧版的接入商服务都打在一个jar中,由于和其它系统的高耦合性,稍有 ...
- ApkScan-PKID 查壳工具下载使用以及相关技术介绍
ApkScan-PKID 查壳工具下载与使用 文章目录 ApkScan-PKID 查壳工具下载与使用 前言 一. 关于壳的介绍 二. 关于壳的技术资料 三. APKSCAN-PKID的下载 四. AP ...
最新文章
- Oracle的分页查询
- 请使用frameset/frameset完成以下功能
- python查看工作目录_闲话python-36:文件系统操作
- objectC 数据类型转换
- rabbitmq 不同的消费者消费同一个队列_消息队列王者--rabbitMQ深入理解--工作过程、消费模式、持久化等...
- 智慧气象 开源_来自开源的半条命11条智慧
- matlab的7.3版本是什么_MX Linux 19.3 发布,Debian和antiX Linux的混合版本
- python 私有云_构建私有云伴随着哪些需求?
- 插槽作用域渲染按钮开关 ~ 满满的干货哦
- linux 上传下载工具有哪些,Linux上传下载工具
- 高通平台开发系列讲解(工具篇)ramdump获取与解析
- 【斯坦福大学公开课】Stanford NLP: Lesson 1 Intro
- 原生js放大镜 原理 一看就懂 非常简单
- The Finalless——新学期的scrum
- 【Agni-s Philosophy】使用的图形技术解说(后篇)Volume渲染和粒子处理
- AMD:无限你我的无限
- 关于推进海洋测绘工作的思考
- 怎样破解网页禁用鼠标右键
- Weakly Supervised Deep Learning for Thoracic DiseaseClassification and Localization on Chest X-rays
- hadoop面试题(全) 小白教程
热门文章
- JavaScript 的 Promise 和 C# 的 waitone 一样吗?请大家讨论i两句。
- 2017-07-18日看登录日志,显示十条:最早的是:2014-04-07 17:09,应该就是注册日期吧
- 测试使用skywalking_SkyWalking 搭建及简单使用、入门(Linux)
- python保留小数不四舍五入_Python3小数(浮点数)精度处理,[不]四舍五入去小数点后几位...
- 介绍java常用的两种注释类型,全网独家首发!
- 成功入职字节跳动!2021年冲刺年薪40w
- 【深度学习】Tensorflow搭建卷积神经网络实现情绪识别
- python【数据结构与算法】武松打虎问题(贪心)
- 如何调出matlab的debug按键
- mysql 修改配置生效_linux下面MySQL变量修改及生效