解密腾讯帝国全六册电子书免费版高清版|百度网盘下载

编辑点评:懂腾讯,懂中国互联网。

本书全景记录了腾讯的崛起,从互联网的角度重新诠释了中国融入全球化的曲折和独特。小编今天给大家带来的,就是破译整个六大腾讯帝国。小册子内容欢迎有兴趣者下载阅读。

解密腾讯帝国全六本电子书免费版

书籍总目录

腾讯传记:1998-2016:中国互联网公司的演变

腾讯战​​略

腾讯工作法

腾讯管理法

腾讯产品法

腾讯公关法

相关内容部分预览

书籍介绍

《腾讯传1998-2016:中国互联网公司的演进》:腾讯官方授权的专业传记!吴晓波亲自研究,五年写成!

《腾讯战略法》:从封闭扩张到“半衰期”,腾讯战略思维和建设路径全景。

《腾讯工作法》:价值评价、创新能力、领导规则、文化建设,全面洞察腾讯内部工作技能和思维方式。

《腾讯管理法》:自主创新、管理文化、结构调整、支撑战略,综合解析腾讯管理理念及其专属规则。

《腾讯产品法》:用户驱动、高速迭代、极简……了解腾讯产品思维和运营方法的一本书。

《腾讯公关法》:舆论引导、平台整合、品牌经营、文化大革命……腾讯公关版图和发展路径的立体呈现。

腾讯万亿级Elasticsearch技术解密

Elasticsearch(ES)作为开源首选的分布式搜索分析引擎,可以轻松满足用户对实时日志分析、全文检索、结构化数据分析等成本的需求。腾讯在公司内部的各种场景中都大规模使用了 ES。同时与Elastic合作,在腾讯云上提供增强内核版本的ES云服务。大规模、丰富、多样的使用场景促进了腾讯原生ES的持续高可用。 、高性能、低成本的优化。今天给大家分享一下近期在Elastic中国开发者大会上的演讲内容:解密腾讯万亿级Elasticsearch技术。

1、 ES在腾讯的应用场景

本次分享的主要内容包括:首先介绍ES在腾讯的丰富应用场景以及各种场景的典型特征;然后给出我们在大规模、高压、多样化的使用场景中遇到的挑战;针对这些挑战,我们重点介绍腾讯在高可用、低成本、高性能方面对ES内核的优化实践。最后,我们简要分享一下我们对 ES 未来规划和开源贡献的看法。

我们先来看看ES在腾讯的应用场景。最初,我们将 ES 用于实时日志分析场景。典型日志如下:操作日志,如慢日志、异常日志,定位业务问题;业务日志,如用户点击、访问日志等,可用于分析用户行为;审计日志,可用于安全分析。 ES完美解决了日志实时分析的需求。它具有以下特点:

Elastic Ecology 提供完整的日志解决方案。任何开发者、运维学生都可以通过使用成熟的组件和简单的部署来构建完整的日志实时分析服务。

在 Elastic 生态系统中,日志从生成到被访问一般需要 10s。与传统大数据解决方案几十分钟、几十小时相比,时效性非常高。

由于支持倒排索引和列存储等数据结构,ES提供了非常灵活的搜索和分析能力。

支持交互分析,即使在万亿级日志的情况下,ES搜索响应时间也是秒级。

日志是互联网行业最基本、最广泛的数据形式。 ES完美的解决了日志的实时分析,这也是ES近年来发展迅速的一个重要原因。

第二种使用场景是搜索服务。典型场景包括:商品搜索,类似于京东、淘宝、拼多多的商品搜索; APP搜索,支持在应用商店搜索应用;站点搜索,支持论坛和在线文档等搜索功能。我们支持大量的搜索服务,主要有以下特点:

高性能:单服务最高可达10w+ QPS,平声20ms~,P95延迟小于100ms。

强相关性:搜索体验主要取决于搜索结果是否与用户意图高度吻合,需要通过准确率、召回率等指标进行评价。

高可用:搜索场景通常需要四个9的可用性,支持单机房故障恢复。任何电商服务,比如淘宝、京东、拼多多,只要失败一个小时就可以上头条。

第三种使用场景是时间序列数据分析。典型的时序数据包括:Metrics、传统服务器监控; APM,应用性能监控;物联网数据、智能硬件产生的传感器数据、工业物联网等。腾讯很早就开始探索这样的场景,在这方面积累了非常丰富的经验。此类场景具有以下特点:

高并发写入:单个在线集群最大规模达到600+节点,写入吞吐量1000w/s。

查询性能高:单条曲线或单条时间线的查询延迟要求为10ms~。

多维分析:需要灵活多维的统计分析能力。比如我们在查看和监控的时候,可以根据区域、业务模块灵活的进行统计分析。

2、遇到的挑战

我们介绍了ES在腾讯内部的广泛应用。在这样大规模、高压、丰富的使用场景的背景下,我们遇到了很多挑战,可以分为搜索和时间序列两大类。

首先,让我们看看搜索业务面临的挑战。以电商搜索、APP搜索、站内搜索为代表,这类业务重视可用性,服务SLA超过4个9s,需要容忍单机故障,单机房网络故障等;同时要求高性能和低毛刺,例如20w QPS,Ping声音20ms,P95延迟100ms。总之,在搜索业务场景中,核心挑战在于高可用和高性能。

我们称之为时间序列的另一类业务挑战,包括日志、指标和 APM 等场景。与注重高可用性和高性能的搜索服务相比,时序服务更注重成本和性能。比如顺序场景的用户,通常对写入吞吐量的要求很高,有些场景可以达到1000w/s

WPS;在此写入吞吐量下,可以保留 30 天的数据,通常达到 PB 级存储。现实情况是日志记录、监控等场景的收益都比较低。很有可能用户在线实际业务使用的机器数量只有100台,而监控、日志等需要50台,这对于大多数用户来说基本上是不可能的。公认。因此,在时间序列业务中,主要挑战在于存储成本、计算成本等。

我们介绍了搜索和时序业务场景中高可用、低成本、高性能的挑战。下面,我们将重点分享腾讯针对这些挑战的深度 ES 内核实践。

3、ES优化实践

首先,我们来看看高可用性优化。我们将高可用分为三个维度:

系统健壮性:指的是ES内核本身的健壮性,也是分布式系统面临的普遍问题。比如集群在异常查询和压力过载下的容错能力;集群在高压场景下的可扩展性;集群扩容、节点异常场景下节点与多块硬盘之间的数据均衡能力。

容灾计划:如果构建了管控系统,可以保证机房网络故障时业务的快速恢复,防止自然灾害中的数据丢失,误操作后快速恢复。

系统缺陷:在任何系统开发过程中都会不断出现这种情况,如主节点阻塞、分布式死锁、滚动重启慢等。

针对以上问题,介绍一下我们在高可用方面的解决方案:

在系统健壮性方面,我们限制服务流以容忍机器网络故障和异常查询导致的服务不稳定,稍后会介绍。通过优化集群元数据管控逻辑,可将集群扩展性提升一个数量级,支持千级节点集群和百万分片,解决集群扩展性问题。大规模集群的压力均衡。

在容灾方案方面,我们通过扩展ES的插件机制支持备份和回滚,将ES数据备份回滚到廉价存储,保证数据恢复;支持跨可用区容灾,用户可以部署多个可用区以容忍单机房故障。垃圾箱机制保证集群在欠费、误操作等场景下能够快速恢复。

在系统缺陷方面,我们修复了滚动重启、master阻塞、分布式死锁等一系列Bug,其中滚动重启优化可以将节点重启速度提升5+倍。详情请参考 PR ES-46520;针对master阻塞问题,我们与官方一起优化了ES 6.x版本。

这里我们展开介绍服务限流部分。我们做了4个级别的限流工作:权限级别,我们支持XPack和自研权限,防止攻击和误操作;队列层面,通过优化任务执行速度、重复、优先级等问题,解决用户经常遇到的Master任务队列堆积、任务饥饿等问题;内存级别,从 ES 6.x 开始,我们支持对 HTTP 入口、协调节点、数据节点等整个链路进行内存限流,并使用 JVM 内存、梯度统计等方法进行精确控制;在多租户层面,我们使用 CVM/Cgroups 解决方案来保证多租户之间的资源隔离。

这里详细介绍聚合场景下的限流问题。用户在使用 ES 进行聚合分析时,经常会遇到聚合桶过多导致内存爆炸的问题。官方 ES 6.8 提供了 max_buckets 参数来控制聚合的最大桶数,但是这种方法非常有限。在某些场景下,用户可以设置200000个bucket正常工作,但在其他场景下,100000个bucket的内存可能已经耗尽,这主要取决于单个bucket的大小,用户无法准确地设置更合适掌握这个参数设置的多少。在聚合分析的过程中,我们使用梯度算法进行优化,每分配1000个桶检查一次JVM内存,在内存不足时及时中断请求,保证ES集群的高可用。详情请参考 PR ES-46751 /47806、

我们目前的限流方案可以极大的提升ES服务在查询异常、压力过载、单节点故障、网络分区等场景下的稳定性。但是仍然有少数场景没有完全覆盖,所以我们目前正在引入混沌测试,依靠混沌测试来覆盖更多的异常场景。

前面我们介绍了高可用方案,现在介绍一下成本方面的优化实践。成本挑战主要体现在以日志和监控为代表的时序场景下对机器资源的消耗。我们分析了典型的在线日志和时间序列服务。整体来看,硬盘、内存、计算资源的成本比接近8:4:1,硬盘、内存是主要矛盾,其次是计算成本。

分析时序场景,可以发现时序数据具有明显的访问特征。首先是冷热的特点。时序数据访问具有近而远的特点,最近7天的数据访问量可占95%以上;历史数据访问较少,通常访问统计信息。

基于这些瓶颈分析和数据访问特性,我们推出了成本优化的解决方案。

在硬盘成本方面,由于数据冷热特性明显,我们首先采用冷热分离架构,采用混合存储方案,平衡成本和性能;预计算是用来交易存储和性能的,后面会介绍;如果根本不使用历史数据,可以备份到更便宜的存储系统;其他优化方法包括存储剪枝、生命周期管理等。

在内存成本方面,很多用户在使用大存储模型时,会发现只使用了20%的存储资源,内存已经不够用了。其实根据时序数据的访问特性,我们可以使用Cache进行优化,后面会介绍。

让我们展开汇总部分。 Rollup 从 ES 6.x 正式上线,其实腾讯在 5.x 就开始了这部分的实践。 Rollup 类似于大数据场景中的立方体和物化视图。其核心思想是通过预计算提前生成统计信息,释放原始粒度数据,从而降低存储成本,提高查询性能,通常具有数据级的优势。这是一个简单的例子。比如机器监控场景,监控数据的原始粒度是10秒,而一个月前的监控数据一般只需要按小时粒度查看,属于Rollup应用场景。

在大数据领域,传统的解决方案是依靠外部离线计算系统周期性读取全量数据进行计算。这种方法具有较高的计算开销和维护成本。 Google 的广告指标系统 Mesa 采用的是连续生成方案。写入数据时,系统会为每个 Rollup 生成一个输入数据,并对数据进行排序。计算和维护成本相对较低。 ES 从 6.x 开始支持数据排序。我们通过流式查询通过多路合并生成 Rollup。写入全量数据时,最终计算成本不到 CPU 成本的 10%,内存占用不到 10MB。我们曾报道,内核已针对开源社区进行了优化,以解决开源 Rollup 的计算和内存瓶颈。详情请参阅 PR ES-48399。

接下来,我们展开到内存优化部分。如前所述,当很多用户使用大容量存储机型时,内存优先级成为瓶颈,无法充分利用硬盘。主要瓶颈是索引占用大量内存。但是我们知道时序场景很少访问历史数据,有些字段在某些场景下基本不用,所以我们可以通过引入Cache来提高内存利用效率。

业界在内存优化方面的解决方案是什么?从 7.x 开始,ES 社区支持将索引放置在堆外并按需加载,例如 DocValue。但是,这种方法的缺点是索引的重要性和数据的重要性完全不同。大查询很容易导致索引被淘汰,后续查询性能会成倍衰减。 HBase通过缓存Cache索引和数据块来提高热数据的访问性能,从HBase 2.0开始,专注于自己的Off Heap技术,专注于堆外内存的访问性能可以接近堆内.我们根据社区经验进行迭代,将 LFU Cache 引入 ES 以提高内存利用效率,将 Cache 放在堆外以降低堆内存压力,并通过弱引用、减少内外堆副本等技术减少损失。最终效果是内存利用率提高了80%,大存储模型可以充分利用,查询性能损失不超过2%,GC开销降低30%。

我们之前介绍了可用性和成本优化的解决方案,最后我们介绍了性能优化实践。以日志和监控为代表的时序场景对写入性能要求非常高,写入并发可以达到1000w/s。但是我们发现用主键写的时候,ES性能衰减了1+倍,在一些压测场景下,CPU不能充分利用。以搜索服务为代表的场景对查询性能要求非常高,要求20w QPS,20ms平声,尽量避免GC和执行计划差导致的查询毛刺。

针对以上问题,我们介绍一下腾讯的性能优化实践:

在写入方面,针对主键去重场景,利用索引进行剪枝,加速主键去重过程,写入性能提升45%。详情请参考公关

Lucene-8980。针对部分压测场景无法充分利用CPU的问题,通过优化ES刷新Translog时的资源抢占,性能提升20%。详情请参考 PR ES-45765 /47790。我们正在尝试通过矢量化执行来优化写入性能。通过减少分支跳转和指令Miss,可以将预期的写入性能提高1倍。

在查询方面,我们通过优化Merge策略来提升查询性能,本节后面会介绍。根据每个 Segment 记录的 min/max 索引,进行查询剪枝,将查询性能提升 30%。通过CBO策略,可以避免查询缓存操作带来的10+倍查询时间的毛刺。详情请参考Lucene-9002、另外,我们也在尝试用一些新的硬件来优化性能,比如Intel的AEP、Optane、QAT等。

接下来,让我们扩展合并策略优化部分。 ES原生的Merge策略主要关注大小相似度和最大上限。大小相似度是指在merge的时候尽量选择大小相似的Segment进行Merge,最大上限考虑尽可能将Segment拼成5GB。那么,一个段可能包含 1 月和 3 月 1 日的整个月份的数据。用户在 3 月 1 日查询一个小时的数据时,需要扫描大量无用的数据,造成严重的性能损失。

我们在 ES 中引入了时间序列合并。在选择 Segments for Merge 时,我们关注时间因素,以便将时间相似的 Segment 合并在一起。当我们查询 3 月 1 日的数据时,我们只需要扫描单个较小的 Segment,其他 Segment 可以快速裁剪。

另外,ES 官方建议搜索用户在编写完成后进行 Force Merge,目的是将所有 Segment 合二为一,以提高搜索性能。但是这样增加了用户的使用成本,而且在时序场景下,不利于切割,需要对所有数据进行扫描。我们在 ES 中引入了冷数据的自动合并。对于不活跃的索引,底层的 Segments 会自动合并到接近 5GB,减少文件数量,方便时间序列场景的切割。对于搜索场景,用户可以增加目标Segment的大小,使所有Segment合并为一个。我们对 Merge 策略的优化可以使搜索场景的性能翻倍。

经过前面的介绍,我们就完成了ES内核的优化实践。最后,简单分享一下我们对开源贡献和未来规划的看法。

四个。未来规划与开源贡献

在过去的六个月里,我们向开源社区提交了 10+ 个 PR,涉及编写、查询、集群管理等各个模块。一些优化是与官方开发同学一起完成的。在之前的介绍过程中,对应的PR链接供大家参考。我们还在公司内部成立了开源协作组,共同构建 Elastic 生态。

总的来说,开源的好处大于坏处。我们会汇报相应的收益,希望更多同学参与到 Elastic 生态的开源贡献中来:首先,开源可以降低分支维护成本。越来越多,维护独立分支的成本越来越高,主要体现在与开源版本的同步以及新的开源特性的快速引入上;其次,开源可以帮助研发同学更好的把控内核,了解最新的技术趋势,因为在开源反馈的过程中,涉及到与官方开发者的持续互动。此外,开源有利于建立大家在社区中的技术影响力,获得开源社区的认可。最后,Elastic 生态系统的快速发展有利于商业服务和个人技术的发展。希望大家共同参与,助力 Elastic 生态的可持续快速发展。

在未来规划方面,这次我们重点关注腾讯在ES内核的优化实践,包括高可用、低成本、高性能。此外,我们还提供控制平台,支持在线集群的自动化管控、运维,为腾讯云客户提供ES服务。但从大量线上运营经验分析,我们发现仍有非常丰富和高价值的方向需要跟进,我们将继续加强产品和核心的建设。

在长期探索方面,我们将结合大数据地图进行介绍。整个大数据领域根据数据量的特点和时延要求可以分为三个部分:第一部分是数据工程,包括我们熟悉的批计算和流计算;第二部分是Data Discovery,包括交互分析、Search等;第三部分是Data Apps,主要用于支持在线服务。

虽然我们把ES放在了搜索领域,但是有很多用户使用ES来支持在线搜索、文档服务等。另外我们了解到有很多成熟的OLAP系统,也是基于倒排索引的< /p>

腾讯市值及主要收入来源

截至2017年12月6日,腾讯控股股价收于366港元,市值约3.6万亿港元。今年11月20日,腾讯股价达到420港元,成为全球第六家市值超过5000亿美元的公司

(由于美国税收变化等的变化,近期股价下跌)。目前全球科技网高居榜首,腾讯市值排名第6、近日,21数据新闻实验室公布了“2017中国上市公司市值500强榜单”腾讯排名第一,

2017年第三季度营收652.1亿元,同比增长61%,成功挤掉一直位居前十年的中石油腾讯。游戏收入增长48%至人民币268.44亿元。

社交网络收入增长 56% 至人民币 152.80 亿元。网络广告业务增长48%至人民币110.42亿元,其中媒体广告收入同比增长29%至人民币41.22亿元,社交及其他广告收入同比增长63%至人民币41.22亿元. 69.2亿元,

其他业务收入120.44亿元,同比增长143%。这一增长主要体现在支付相关服务和云服务收入的增长上。腾讯2017年Q3财报营收构成腾讯父亲的氪金能力,简直匪夷所思。2、腾讯的商业模式与布局 1.

腾讯的商业模式可以暂时概括为神器→海量用户→玩游戏→接收广告→衍生支付,云服务腾讯的玩法是先造神器,然后疯狂变现。 Artifact的首选目标:通用社交工具,互联网时代年用户数最高的产品。这也决定了腾讯的2C模式:

从产品到利润,都是基于个人用户。于是有了QQ,现在有8亿多用户;然后是微信,拥有超过 9 亿用户。微信占领移动社交网络,由于社交网络衍生的高频刷屏,抢占移动信息流,成为移动端事实上的浏览器。

然后开始收取广告费。然后,微信支付。次要目标:游戏,年轻人最喜欢的玩具。从QQ游戏平台→英雄联盟→王者荣耀→绝地大逃杀(吃鸡),这个就不用多说了。 2016 年游戏收入前 25 名,

腾讯称霸全球游戏产业:碾压索尼暴雪,腾讯以 102 亿美元的游戏收入稳居 25 家上市游戏公司榜首。 (守望先锋救不了腾讯爸爸2016全球游戏公司TOP25腾讯路径依赖:

标准神器+用户变现。实现模式,游戏为王。用户数量是最大的支持。 2、腾讯业务布局有自己的产品投资项目。同时,截至2017年7月25日,腾讯对43个项目的总投资达1172.44亿元。根据VC Saas数据,

腾讯投资最多的五个行业分别是:文化娱乐(870亿)、金融(302亿)、电子商务(114亿)、汽车交通、生活服务。

阅读剩余
THE END