高性能高可用机票实时搜索系统SOFTWARE DEVELOPMENT CONFERENCE BEIJING 2017 # 高性能高可用机票实时搜索系统 去哪儿网 梁启康 ## 议题 系统诉求 海量数据 设计思路 搜索框架 报价引擎 待解问题 ## 系统诉求 - 全网价最低 • 航线报价最全 - 实时性最好 • 产品最丰富 • 预定最流畅 ### 去哪儿? Qunar.Com 聪明你的旅行 ___ 国内国际航线28万 * 航班数 * 产品个数 * 供应商个数 * 180天 = 1500亿 + • 搜索量 • 航线搜索+航班搜索:3k+qps • 每秒计算产品数:搜索qps * 航班数 * 供应商个数 * 产品个数 = 1500万 + ## 设计思路 · 最理想的方式 • 所有的报价都实时计算,填充好 • 一个巨大的哈希表 • 响应所有渠道价格变动进行计算 - 快 · 0 变价 分级缓存 ## 搜索框架 App WWW Touch 分销 应用层 CacheManager PriceMerger Cache 聚合层 MQ MQ 报价引擎 旗舰店 供应商直连 抓取 报价源 航班数据 运价数据 基础数据 ## 搜索框架 · 报价数量多,内存问题 · 报价源多,不稳定 • 响应时间要求苛刻 遇到问题 • 搜索条件有热点 • 缓存报价不准0 码力 | 26 页 | 1.94 MB | 2 年前3
MySQL高可用 - 多种方案## MYSQL 高可用方案探究 1 前言.....3 2 Lvs+Keepalived+Mysql 单点写入主主同步高可用方案.....3 2.1 方案简介.....3 2.2 方案架构图.....3 2.3 方案优缺点.....4 2.4 方案实战.....4 2.4.1 适用场景.....4 2.4.2 实战环境介绍.....4 2.4.3 Mysql 的安装和配置 backup 的 realserver 的配置.....7 2.4.9 Master 和 backup 的启动.....8 2.4.10 高可用方案测试.....9 3 Lvs+Keepalived+Mysql 单点写入读负载均衡主主同步高可用方案.....9 3.1 方案简介.....9 3.2 方案架构图.....9 3.3 方案优缺点.....9 3.4 适用场景. 11 3.5.7 Master 和 backup 的 realserver 的配置.....15 3.5.8 Master 和 backup 的启动.....16 4 Heartbeat 高可用 Mysql 主主同步方案.....16 4.1 方案简介.....16 4.2 方案优缺点.....16 4.3 方案架构图.....17 4.4 适用场景.....17 4.50 码力 | 31 页 | 874.28 KB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕## 声明式自愈系统——高可用分布式系统的设计之道 王昕 高级技术专家 全球技术领导力峰会 # 500+高端科技领导者与你一起探讨 技术、管理与商业那些事儿 2019年6月14–15日 上海圣诺亚皇冠假日酒店  指的是给一个key设置一个有效期,到期后key会被自动删掉。这在很多分布式锁的实现上都会用到,可以保证锁的实时性和有效性。CAS(Atomic Compare-and-Swap)0 码力 | 30 页 | 2.42 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统## 使用微服务架构快速开发万级TPS高可用电商系统 git clone https://github.com/alec-z/servicecomb-samples cd servicecomb-samples/houserush/script/docker docker-compose up ## 什么是微服务架构? 一个既“简单”的又“强大”的后端架构模式。 ## 简单: 每个服务相对较小并比较容易开发维护。 • 更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 适合同学们学习 Demo也可以作为生产系统的一部分 ## 强大: 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 ## Demo简介 从一个简单的电商Demo开始。 背景:开发商开盘时, 每个微服务有自己的数据库(层) 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和订单是2个微服务,订单系统对性能有较高要求,所以可以考虑把购房资格信息从客户维护微服务同步到订单系统,改同步动作对性能没有要求,对事务性有要求。 常见的服务0 码力 | 15 页 | 1.46 MB | 2 年前3
2.3 高性能高可用的微服务框架TarsGo的腾讯实践 - 陈明杰高性能高可用的微服务框架TarsGo的腾讯实践 陈明杰 腾讯 jessemjchen@tencent.com 探探 Gopher China 2019 Tars介绍 Tars是一个支持多语言、内嵌服务治理功能,与Devops能很好协同的微服务框架 基础设施(物理机、虚拟机、容器) ’ alt=‘OCR图片’/> 开发框架-基于TARS协议的RPC框架实现快速开发 module TestApp = Li.WriteBlock(_os, 2) if err != nil { return ret, err } ... ... 版本兼容性好 高性能 多语言支持便利 接口代码自动生成,实现业务快速开发 ’ alt=‘OCR图片’/> 服务治理-整体思路 开发框架、Registry、node和基础服务集群协同工作,透明完成服务发现/注册、负载 alt=‘OCR图片’/> 服务治理-分布式跟踪 利用开源的Zipkin实现分布式跟踪 框架内部嵌入跟踪锚点使用对业务透明 ’ alt=‘OCR图片’/> OSS-运营web化 提供Open API,可定制自己的OSS系统 TARS 服务管理 运维管理 Prajna Robin StressTest Test TestApp set AccountServer HelloJavaServer HelloServer0 码力 | 24 页 | 7.25 MB | 1 月前3
超大规模高可用性云端系统构建之禅-蔡超培训:11月23–24日 # Go语言从入门到实战 ## 简明高效的 Go 语言实战指南 视频课程 ## 你将获得 快速掌握 Go 语言基础语法和特性 学习性能调优方法并编写高性能代码 轻松搞定编程中的常见并发任务 设计并实现可扩展架构和高可用系统 ## 蔡超 Mobvista 技术副总裁 前亚马逊(中国)首席软件架构师 原价¥129 拼团价 ¥99 限时24⼩时  ## 支持高可用性的各个层 并不仅仅是可靠地存储数据 冗余应用服务器 数据的冗余访问路径  数据路由 数据冗余存储 ## 支持高可用性的各个层 并不仅仅是可靠地存储数据 冗余应用服务器 继日志中 - SQL 线程:读取从数据库的中继日志中的复制事件,然后将其应用到从数据库 ## 为何进行复制? - 将数据库从 “主服务器” 复制到 “从服务器” – 数据的冗余副本奠定了高可用性的基础 – 通过在复制场中进行分布式查询来扩展  Hive ## WHAT 我们需要什么样的存储? Append only:尾部写入,不变顺序读取 分布式 高性能 可靠性 顺序一致性 (近乎)无限容量 ## Q → J ## JournalQ ## JournalKeeper XXX Pub/Sub 












