微信公众号的合集 略贵。 不少内容讲述 比较浅显 没有涉及到技术细节 。mysql
能够参考,但不少知识、技术是2015年左右的,不适合如今;每篇文章末尾的QA颇有意思,不少问题问到点子上了nginx
第1 章 高可用架构案例精选 1
郭斯杰/1.1 Twitter 高性能分布式日志系统架构解析 1
1.1.1 为何须要分布式日志. 1
1.1.2 Twitter 如何考虑这个问题 4
1.1.3 基于Apache BookKeeper 构建DistributeLog 5
1.1.4 DistributeLog 案例分享13
1.1.5 疑问与解惑.13golang
如何使用日志在Manhattan(Twitter 的最终一致性分布式 KV数据库)中实现 compare-and-set CAS这样的强一致性操做redis
用日志来序列化全部请求;算法 到此为止,你能够看出日志的好处。它将一个本来复杂的问题变得简单。
首先做为一个基本设施,存储在日志中的数据须要持久化,这样它能够容忍宕机,避免数据丢失。数据库
由于须要做为分布式系统的基础设施,那么在单机上持久化是远远不够的。咱们须要将数据复制到多台机器上,提升数据和系统的可用性。后端
当数据被复制到多台机器上的时候,咱们就须要保证数据的强一致性。不然,若是咱们出现丢数据、数据不一致,那么势必影响到构建在分布式日志上的全部系统。若是日志都不能相信了,你的生活还能相信谁呢 :)api
|
|
持久化 多副本 一致性
在设计这个分布式日志系统 DistributedLog 的时候,咱们进行了各类调研。也同时基于运维已有系统 (kestrel, Kafka) 的经验,咱们最终决定基于 Apache BookKeeper进行构建。
Apache BookKeeper 没有将很复杂的一致性机制捆绑在一块儿。写者和读者之间也没有很复杂的协同机制。全部的一致性的协调就是经过这个 LAC 指针 (Last Add Confirmed)。这样的作法,能够使得扩展写者和扩展读者相互分离。
|
|
Q & A 没有使用 Twitter 的 snowflake 服务。由于 Writer 是 single writer,存在 ownership。全部的写会 forward 给 owner 进行序列化。
二、这是 Kafka 的替代产品吗? 是的。Kafka 目前没有被使用在数据库日志的场景。由于 Kafka 的每一个 topic 对应一个文件,在 topic 数量特别多,且须要持久化的场景,Kafka 的性能比较差。很难适用于 Twitter 的多租户场景。
三、请问是否研究过 ELK,请问在前面分享的架构中,哪一个对应 ELK 中的 Logstash(或fluentd)部分?或是 BookKeeper 就是替换它的? 这里的日志就是数据库的日志。跟平常的文本日志不同。在 ELK 架构中,E 是文本的索引,K 是 UI。这两个部分不是 DistributedLog/BookKeeper 所解决的问题。DistributedLog/BookKeeper 能够做为 PUB/SUB 这样的消息中间件来作日志的中转,也就是能够用在 L 的部分。
四、分享中提到的 Kestrel 和 Kafka 一个在线 ,一个离线,具体差别是什么? Kestrel 主要是 producer/consumer queue 的模型。而 Kafka 是 pub/sub 模型。Kestrel 支持 per item 的 transaction,粒度是 item。而 Kafka 的粒度是 partition。
五、Name Log 的具体机制是什么样的? Client 删除日志时怎样保证与读者和写者不冲突? Name Log 是 DistributedLog 提供的用户接口。底层分块成不一样的 Ledgers 进行存储。元数据记录在 ZooKeeper。使用 ZooKeeper 的 CAS 操做和 notification 机制来协调。
六、想多了解一下跨数据中心复制,感受很差作。能否介绍一下? 这个问题比较宽泛。跨数据中心,能够是异步复制,也能够是同步复制。不一样场景有不一样的权衡。
七、若是 LAC 以后的那条记录始终不能写成功,是否是就阻塞在那里,LAC 就无法移动了? 这是一个很好的问题。Ensemble Change 可以保证写永远 go through。因此 LAC 会被 update 到 bookies。读方面的 Speculative 机制保证能读到 LAC。 八、 这里的 writer 是 Write Proxy 吗?若是是的话,single writer 的吞吐量就是这个 ledger 的最大写的吞吐量了吧,会不会成为瓶颈? 这里的 Writer 是指 Write Proxy。首先,一个 Ledger 的吞吐量,取决于 Bookie 的磁盘/网络带宽。假设,Bookie 的网卡是 1Gbps,一块磁盘做为日志写的磁盘,那么在保证低延时的状况下,Bookie 的吞吐能够达到 50MB/s~70MB/s。在 BookKeeper,能够经过配置 Ledger 的 Ensemble Size, Write Quorum Size 和 Ack Quorum Size,经过 Stripping 写的方式来提升 Ledger 的吞吐。好比,设置 Ensemble Size 为 6, Write Quorum Size 为 3, Ack Quorum Size 为 2。那么吞吐量能够提升到 2 倍。这是 Ledger 内的 Scalability。 九、 Failover 到其余 Proxy Server 时,如何继续产生递增的 Entry ID? |
颜国平/1.2 腾讯基于用户画像大数据的电商防刷架构.16
1.2.1 背景介绍16
1.2.2 黑产现状介绍16
1.2.3 腾讯内部防刷架构18
1.2.4 腾讯大数据收集维度.20
1.2.5 腾讯大数据处理平台——魔方21
1.2.6 疑问与解惑.24
![]()
|
|
二、矩阵式逻辑框架
咱们以黑分类器为例来剖析下分类器的整个逻辑框架。
总的来说咱们采用了矩阵式的逻辑框架,最开始的黑分类器咱们也是一把抓,随意的创建一个个针对黑产的检测规则、模型。
结果发现不是这个逻辑漏过了,而是那个逻辑误伤量大,要对那一类的帐号增强安全打击力度,改动起来也很是麻烦。
所以咱们就设计了这个一个矩阵式的框架来解决上述问题。
矩阵的横向采用了Adaboost方法,该方法是一种迭代算法,其核心思想是针对同一个训练集训练不一样的弱分类器,而后把这些分类器集合起来,构成一个最终的分类器。
而咱们这里每个弱分类器都只能解决一种账号类型的安全风险判断,集中起来才能解决全部帐户的风险检测。
那么在工程实践上带来三个好处:
矩阵纵向采用了Bagging方法,该方法是一种用来提升学习算法准确度的方法,该方法在同一个训练集合上构造预测函数系列,而后以必定的方法将他们组合成一个预测函数,从而来提升预测结果的准确性。 |
王渊命/1.3 如何设计相似微信的多终端数据同步协议:Grouk 实践分享.26
1.3.1 移动互联网时代多终端数据同步面临的挑战26
1.3.2 多终端数据同步与传统消息投递协议的差别27
1.3.3 Grouk 在多终端数据同步协议上的探索实践.28
1.3.4 疑问与解惑.32
周 洋/1.4 如何实现支持数亿用户的长连消息系统:Golang 高并发案例33
1.4.1 关于push 系统对比与性能指标的讨论.33
1.4.2 消息系统架构介绍35
1.4.3 哪些因素决定推送系统的效果37
1.4.4 GO 语言开发问题与解决方案.38
1.4.5 消息系统的运维及测试41
1.4.6 疑问与解惑.42
唐福林/1.5 雪球在股市风暴下的高可用架构改造分享.46
1.5.1 雪球公司的介绍46
1.5.2 雪球当前整体架构47
1.5.3 雪球架构优化历程48
1.5.4 关于架构优化的总结和感想.53
1.5.5 疑问与解惑.54
四. 聊聊关于架构优化的一些总结和感想
在各类场合常常据说的架构优化,通常都是优化某一个具体的业务模块,将性能优化到极致。而在雪球,咱们作的架构优化更多的是从问题出发,解决实际问题,解决到能够接受的程度便可。可能你们看起来会以为很凌乱,并且每一个事情单独拎出来好像都不是什么大事。
咱们在对一个大服务作架构优化时,通常是往深刻的本质进行挖掘;当咱们面对一堆架构各异的小服务时,“架构优化”的含义实际上是有一些不同的。大部分时候,咱们并不须要(也没有办法)深刻到小服务的最底层进行优化,而是去掉或者优化原来明显不合理的地方就能够了。
在快速迭代的创业公司,咱们可能不会针对某一个服务作很完善的架构设计和代码实现,当出现各类问题时,也不会去追求极致的优化,而是以解决瓶颈问题为先。
即便咱们经历过一回将 snowball 拆分服务化的过程,但当咱们从新上一个新的业务时,咱们依然选择将它作成一个大一统的服务。只是这一次,咱们会提早定义好每一个模块的 service 接口,为之后可能的服务化铺好路。
在创业公司里,重写是不能接受的;大的重构,从时间和人力投入上看,通常也是没法承担的。而“裱糊匠”式作法,哪里有性能问题就加机器,加缓存,加数据库,有可用性问题就加剧试,加log,出故障就加流程,加测试,这也不是雪球团队工做方式。咱们通常都采用最小改动的方式,即,准肯定义问题,定位问题根源,找到问题本质,制定最佳方案,以最小的改动代价,将问题解决到可接受的范围内。
咱们如今正在全部的地方强推3个数据指标:qps,p99,error rate。每一个技术人员对本身负责的服务,必定要有最基本的数据指标意识。数字,是发现问题,定位根源,找到本质的最重要的依赖条件。没有之一。
咱们的原则:保持技术栈的一致性和简单性,有节制的尝试新技术,保持全部线上服务依赖的技术可控,简单来讲,能 hold 住。 能用cache的地方毫不用db,能异步的地方,毫不同步。俗称的:吃一堑,长一智。
特事特办:业务在发展,需求在变化,实现方式也须要跟着变化。简单的来讲:遗留系统的优化,最佳方案就是砍需求,呵呵。 当前,雪球内部正在推行每一个模块的方案和代码实现的 review,在 review 过程当中,我通常是这样要求的:
技术方案:
技术实现:
|
|
麦俊生/1.6 亿级短视频社交美拍架构实战591.6.1 短视频市场的发展591.6.2 美拍的发展.601.6.3 短视频所面临的架构问题611.6.4 为支持亿级用户,美拍架构所作的一些改进621.6.5 后续发展68刘道儒/1.7 微博“异地多活”部署经验谈691.7.1 微博异地多活建设历程691.7.2 微博异地多活面临的挑战701.7.3 异地多活的最佳实践.731.7.4 异地多活的新方向74孙宇聪/1.8 来自Google 的高可用架构理念与实践751.8.1 决定可用性的两大因素761.8.2 高可用性方案771.8.3 可用性7 级图表801.8.4 疑问与解惑.81那 谁/1.9 深刻理解同步/异步与阻塞/非阻塞区别841.9.1 同步与异步.841.9.2 阻塞与非阻塞851.9.3 与多路复用I/O 的联系86第2 章 高可用架构原理与分布式实践.88黄东旭/2.1 Codis 做者细说分布式Redis 架构设计882.1.1 Redis、Redis Cluster 和Codis882.1.2 咱们更爱一致性902.1.3 Codis 在生产环境中的使用经验和坑912.1.4 分布式数据库和分布式架构.942.1.5 疑问与解惑.95霍泰稳/2.2 给你介绍一个不同的硅谷.982.2.1 Uber .982.2.2 Coursera.992.2.3 Airbnb1022.2.4 硅谷行带给个人一些影响1062.2.5 疑问与解惑106金自翔/2.3 解耦的艺术——大型互联网业务系统的插件化改造1102.3.1 插件化.1102.3.2 如何处理用户交互1152.3.3 如何处理数据.1152.3.4 总结116沈 剑/2.4 从零开始搭建高可用IM 系统1172.4.1 什么是IM1172.4.2 协议设计1182.4.3 WEB 聊天室.1222.4.4 IM 典型业务场景1262.4.5 疑问与解惑126陈宗志/2.5 360 分布式存储系统Bada 的架构设计和应用.1292.5.1 主要应用场景.1292.5.2 总体架构1302.5.3 主要模块1312.5.4 数据分布策略.1322.5.5 请求流程1332.5.6 多机房架构1342.5.7 FAQ1382.5.8 疑问与解惑139张 亮/2.6 新一代分布式任务调度框架:当当Elastic-Job 开源项目的10 项特性1432.6.1 为何须要做业(定时任务).1432.6.2 当当以前使用的做业系统1442.6.3 Elastic-Job 的来历.1442.6.4 Elastic-Job 包含的功能1452.6.5 Elastic-Job 的部署和使用.1462.6.6 对开源产品的开发理念.1472.6.7 将来展望1482.6.8 疑问与解惑149付海军/2.7 互联网DSP 广告系统架构及关键技术解析1522.7.1 优秀DSP 系统的特色1522.7.2 程序化购买的特色1532.7.3 在线广告的核心问题1562.7.4 在线广告的挑战.1562.7.5 DSP 系统架构.1572.7.6 RTB 投放引擎的架构.1582.7.7 DMP1602.7.8 广告系统DMP 数据处理的架构.1602.7.9 用户画像的方法.1622.7.10 广告行业的反做弊.1652.7.11 P2P 流量互刷1662.7.12 CPS 引流做弊1672.7.13 疑问与解惑168王卫华/2.8 亿级规模的Elasticsearch 优化实战1702.8.1 索引性能(Index Performance) .1702.8.2 查询性能(Query Perofrmance) 1712.8.3 其余1732.8.4 疑问与解惑174杨卫华/2.9 微博分布式存储考试题:案例讲解及做业精选1792.9.1 访问场景1792.9.2 设计1802.9.3 sharding 策略1802.9.4 案例精选181李 凯/2.10 架构师须要了解的Paxos 原理、历程及实战.1842.10.1 数据库高可用性难题1842.10.2 Paxos 协议简单回顾.1852.10.3 Basic Paxos 同步日志的理论模型1862.10.4 Multi Paxos 的实际应用.1872.10.5 依赖时钟偏差的变种Paxos 选主协议简单分析1902.10.6 疑问与解惑191温 铭/2.11 OpenResty 的如今和将来1932.11.1 OpenResty 是什么,适合什么场景下使用.1932.11.2 某安全公司服务端技术选型的标准1942.11.3 如何在项目中引入新技术.1962.11.4 如何入门以及学习的正确方法1972.11.5 OpenResty 中的测试和调试.1992.11.6 NginScript 是否会替代OpenResty2012.11.7 将来重点解决的问题和新增特性.2022.11.8 开源社区建设2032.11.9 疑问与解惑.203第3 章 电商架构热点专题.205张开涛/3.1 亿级商品详情页架构演进技术解密.2053.1.1 商品详情页2053.1.2 商品详情页发展史2093.1.3 遇到的一些问题和解决方案2203.1.4 总结2283.1.5 疑问与解惑229杨 超/3.2 大促系统全流量压测及稳定性保证——京东交易架构.2323.2.1 交易系统的三个阶段2323.2.2 交易系统的三层结构2333.2.3 交易系统的访问特征2343.2.4 应对大促的第1 步:全链路全流量线上压测.2343.2.5 应对大促的第2 步:根据压力表现进行调优.2373.2.6 异步和异构2403.2.7 应对大促的第3 步:分流与限流2423.2.8 应对大促的第4 步:容灾降级.2443.2.9 应对大促的第5 步:完善监控.2453.2.10 疑问与解惑246吕 毅/3.3 秒杀系统架构解密与防刷设计.2483.3.1 抢购业务介绍.2483.3.2 具体抢购项目中的设计.2493.3.3 如何解耦先后端压力2503.3.4 如何保证商品库的库存可靠2523.3.5 如何与第三方多方对帐.2543.3.6 项目总结2553.3.7 疑问与解惑255王富平/3.4 Lambda 架构与推荐在电商网站实践.2573.4.1 Lambda 架构2573.4.2 1 号店推荐系统实践2603.4.3 Lambda 的将来2623.4.4 思考2633.4.5 疑问与解惑263杨 硕/3.5 某公司线上真实流量压测工具构建.2653.5.1 为何要开发一个通用的压测工具2653.5.2 常见的压测工具.2663.5.3 构建本身的压测工具2663.5.4 疑问与解惑271第4 章 容器与云计算.273陈 飞/4.1 微博基于Docker 容器的混合云迁移实战.2734.1.1 为何要采用混合云的架构2734.1.2 跨云的资源管理与调度.2754.1.3 容器的编排与服务发现.2784.1.4 混合云监控体系.2844.1.5 前进路上遇到的那些坑.2864.1.6 疑问与解惑286高 磊/4.2 互联网金融创业公司Docker 实践2874.2.1 背景介绍2874.2.2 容器选型2874.2.3 应用迁移2884.2.4 弹性扩容2914.2.5 将来规划2954.2.6 疑问与解惑295高永超/4.3 使用开源Calico 构建Docker 多租户网络.2974.3.1 PaaS 平台的网络需求.2974.3.2 使用Calico 实现Docker 的跨服务器通信.2984.3.3 利用Profile 实现ACL3014.3.4 性能测试3064.3.5 Calico 的发展3084.3.6 疑问与解惑309彭哲夫/4.4 解析Docker 在芒果TV 的实践之路3104.4.1 豆瓣时期3104.4.2 芒果TV 的Nebulium Engine .3114.4.3 Project Eru .3124.4.4 细节3134.4.5 网络3144.4.6 存储3154.4.7 Scale3164.4.8 资源分配和集群调度3164.4.9 服务发现和安全.3174.4.10 实例3174.4.11 总结3184.4.12 疑问与解惑318王关胜/4.5 微博基于Docker 的混合云平台设计与实践3234.5.1 微博的业务场景及混合云背景.3234.5.2 三大基础设施助力微博混合云.3264.5.3 微博混合云DCP 系统设计核心:自动化、弹性调度3284.5.4 引入阿里云做为第3 机房,实现弹性调度架构3304.5.5 大规模集群操做自动化.3314.5.6 不怕峰值事件.332第5 章 运维保障333王 康/5.1 360 如何用QConf 搞定两万以上服务器的配置管理.3335.1.1 设计初衷3335.1.2 总体认识3345.1.3 架构介绍3355.1.4 QConf 服务端3365.1.5 QConf 客户端3365.1.6 QConf 管理端3405.1.7 其余3415.1.8 疑问与解惑343尤 勇/5.2 深度剖析开源分布式监控CAT3475.2.1 背景介绍3475.2.2 总体设计3485.2.3 客户端设计3495.2.4 服务端设计3525.2.5 总结感悟357杨尚刚/5.3 单表60 亿记录等大数据场景的MySQL 优化和运维之道3595.3.1 前言3595.3.2 数据库开发规范.3605.3.3 数据库运维规范.3635.3.4 性能优化3685.3.5 疑问与解惑375秦 迪/5.4 微博在大规模、高负载系统问题排查方法3795.4.1 背景3795.4.2 排查方法及线索.3795.4.3 总结3845.4.4 疑问与解惑385秦 迪/5.5 系统运维之为何每一个团队存在大量烂代码3875.5.1 写烂代码很容易.3875.5.2 烂代码终究是烂代码3885.5.3 重构不是万能药.3925.5.4 写好代码很难.3935.5.5 悲观的结语394秦 迪/5.6 系统运维之评价代码优劣的方法3955.6.1 什么是好代码.3955.6.2 结语4035.6.3 参考阅读403秦 迪/5.7 系统运维之如何应对烂代码4045.7.1 改善可维护性.4045.7.2 改善性能与健壮性4095.7.3 改善生存环境.4125.7.4 我的感想414第6 章 大数据与数据库415王 劲/6.1 某音乐公司的大数据实践.4156.1.1 什么是大数据.4156.1.2 某音乐公司大数据技术架构4186.1.3 在大数据平台重构过程当中踩过的坑4256.1.4 后续的持续改进.430王新春/6.2 实时计算在点评.4316.2.1 实时计算在点评的使用场景4316.2.2 实时计算在业界的使用场景4326.2.3 点评如何构建实时计算平台4336.2.4 Storm 基础知识简单介绍.4346.2.5 如何保证业务运行的可靠性4366.2.6 Storm 使用经验分享4386.2.7 关于计算框架的后续想法4426.2.8 疑问与解惑442王卫华/6.3 百姓网Elasticsearch 2.x 升级之路.4466.3.1 Elasticsearch 2.x 变化4466.3.2 升级之路4486.3.3 优化或建议4516.3.4 百姓之道4526.3.5 后话:Elasticsearch 5.04536.3.6 升级2.x 版本成功,5.x 版本还会远吗454董西成 张虔熙/6.4 Hadoop、HBase 年度回顾4576.4.1 Hadoop 2015 技术发展4576.4.2 HBase 2015 年技术发展4606.4.3 疑问与解惑466常 雷/6.5 解密Apache HAWQ——功能强大的SQL-on-Hadoop 引擎.4696.5.1 HAWQ 基本介绍4696.5.2 Apache HAWQ 系统架构.4726.5.3 HAWQ 中短时间规划.4796.5.4 贡献到Apache HAWQ 社区4796.5.5 疑问与解惑480萧少聪/6.6 PostgresSQL HA 高可用架构实战.4826.6.1 PostgreSQL 背景介绍.4826.6.2 在PostgreSQL 下如何实现数据复制技术的HA 高可用集群4836.6.3 Corosync+Pacemaker MS 模式介绍4846.6.4 Corosync+Pacemaker M/S 环境配置4856.6.5 Corosync+Pacemaker HA 基础配置4886.6.5 PostgreSQL Sync 模式当前的问题4926.6.6 疑问与解惑492王晶昱/6.7 从NoSQL 历史看将来.4956.7.1 前言4956.7.2 1970 年:We have no SQL4966.7.3 1980 年:Know SQL 4976.7.4 2000 年:No SQL .5026.7.5 2005 年:不只仅是SQL 5046.7.6 2013 年:No,SQL .5056.7.7 阿里的技术选择.5056.7.8 疑问与解惑506杨尚刚/6.8 MySQL 5.7 新特性大全和将来展望.5086.8.1 提升运维效率的特性5086.8.2 优化器Server 层改进.5116.8.3 InnoDB 层优化5136.8.4 将来发展5176.8.5 运维经验总结.5186.8.6 疑问与解惑519谭 政/6.9 大数据盘点之Spark 篇5216.9.1 Spark 的特性以及功能5216.9.2 Spark 在Hulu 的实践.5256.9.3 Spark 将来的发展趋势5286.9.4 参考文章5306.9.5 疑问与解惑530萧少聪/6.10 从Postgres 95 到PostgreSQL 9.5:新版亮眼特性5326.10.1 Postgres 95 介绍5326.10.2 PostgresSQL 版本发展历史5336.10.3 PostgresSQL 9.5 的亮眼特性5346.10.4 PostgresSQL 还能够作什么5446.10.5 疑问与解惑547毕洪宇/6.11 MongoDB 2015 回顾:全新里程碑式的WiredTiger 存储引擎5516.11.1 存储引擎的发展5516.11.2 复制集改进.5556.11.3 自动分片机制5566.11.4 其余新特性介绍5566.11.5 疑问与解惑.558王晓伟/6.12 基于Xapian 的垂直搜索引擎的构建分析5616.12.1 垂直搜索的应用场景5616.12.2 技术选型.5636.12.3 垂直搜索的引擎架构5646.12.4 垂直搜索技术和业务细节.5666.12.5 疑问与解惑568第7 章 安全与网络572郭 伟/7.1 揭秘DDoS 防御——腾讯云大禹系统5727.1.1 有关DDoS 简介的问答.5747.1.2 有关大禹系统简介的问答5757.1.3 有关大禹系统硬件防御能力的问答5767.1.4 有关算法设计的问答5777.1.5 大禹和其余产品、技术的区别.578冯 磊 赵星宇/7.2 App 域名劫持之DNS 高可用——开源版HttpDNS 方案详解5807.2.1 HttpDNSLib 库组成.5817.2.2 HttpDNS 交互流程5827.2.3 代码结构5837.2.4 开发过程当中的一些问题及应对.5867.2.5 疑问与解惑593马 涛/7.3 CDN 对流媒体和应用分发的支持及优化5957.3.1 CDN 系统工做原理.5957.3.2 网络分发过程当中ISP 的影响6027.3.3 防盗链.6037.3.4 内容分发系统的问题和应对思路6047.3.5 P2P 穿墙打洞6077.3.6 疑问与解惑609马 涛/7.4 HTTPS 环境使用第三方CDN 的证书难题与最佳实践611蒋海滔/7.5 互联网主要安全威胁分析及应对方案6137.5.1 互联网Web 应用面临的主要威胁6137.5.2 威胁应对方案.6167.5.3 疑问与解惑624
内容老,15年16年的,篇数多因此就很细碎,都是博客文之类的,没用node