架构专辑
文章平均质量分 95
架构专题系列文章
FeelTouch Labs
这个作者很懒,什么都没留下…
展开
-
Discord万亿级消息存储架构ScyllaDB
本文介绍了 Discord 将数据迁移到 ScyllaDB 的过程,以及 SycllaDB 实现原理,使用 ScyllaDB 一些使用问题的解法。接下来有时间的话会解读下。转载 2023-10-22 00:08:01 · 389 阅读 · 0 评论 -
架构集二---如何从中台角度搭建直播聊天室
前言视频直播已经是一种成熟的产品形态,在不同行业中有多种应用场景。在泛娱乐行业,游戏直播、秀场直播、演唱会直播等已经走进广大用户的日常生活;在电商行业,网红带货直播已经成为增长的新动能;在教育行业,1对多的教育直播也正在改变着整个行业的格局。视频直播占用着越来越多的用户使用时间。随着线上线下服务的进一步融合,视频直播也将会有迎来越来越多的使用场景。让专业的人做专业的事。通常来说,一个典型的视频直播产品会使用二类中台能力:直播聊天室SDK和视频直播SDK。直播聊天中台主要负责提供视频直播中的文字聊天室原创 2020-07-16 21:02:43 · 1128 阅读 · 0 评论 -
从服务端密码存储到用户数据加密方案
本文主要讲常见场景的数据加密方案,以及对未来加密技术的展望,先看几条新闻:Facebook 明文存储用户密码:Hundreds of millions of Facebook users had their account passwords stored in plain text and searchable by thousands of Facebook employees — in some cases going back to 2012, KrebsOnSecurity has le转载 2022-04-26 22:08:19 · 1505 阅读 · 0 评论 -
架构集一---语音连麦聊天室实现方案分析
前言语音聊天基本是社交软件必备的功能,语音相比文字图片更丰富,比视频又更简便,是天然的社交工具。除了单纯的1对1语音或视频聊天,在实时音视频技术支持下,很多 APP 已经延伸出非常多的玩法。目前比较火的语聊房又分为语音电台、语音游戏、私人聊天房、多人语聊房、KTV 语聊房等细分的场景,延伸出去还有更多的形态,目前比较火的音遇 APP ,就是语聊房的最新形态。语音电台是目前很多社交APP的玩法。主播可以在直播间中给听众讲故事、脱口秀、唱歌,内容形式不胜枚举,观众也可以申请上麦与主播聊天互动(一般需原创 2020-07-16 20:36:16 · 4195 阅读 · 0 评论 -
字节跳动全链路压测(Rhino)的实践
1. 背景随着公司业务的不断扩张,用户流量在不断提升,研发体系的规模和复杂性也随之增加。线上服务的稳定性也越来越重要,服务性能问题,以及容量问题也越发明显。因此有必要搭建一个有效压测系统,提供安全、高效、真实的线上全链路压测服务,为线上服务保驾护航。关于全链路压测的建设,业界已经有了非常多文章,但是涉及到具体的技术实现方面,却很少介绍。本文想从全链路压测系统,从设计到落地整个实践过程,来详细介绍下全链路压测系统是具体是如何设计,以及如何落地的。希望能从技术落地实践的角度,给同行业的同学一些参考和转载 2021-01-27 20:19:34 · 1733 阅读 · 0 评论 -
全局精确流量调度新思路-HttpDNS服务详解
但凡使用域名来给用户提供服务的互联网企业,都或多或少地无法避免在有中国特色的互联网环境中遭遇到各种域名被缓存、用户跨网访问缓慢等问题。那么对于腾讯这样的域名数量在10万级别的互联网公司来讲,域名解析异常的情况到底有多严重呢?每天腾讯的分布式域名解析监测系统在不停地对全国所有的重点LocalDNS进行探测,腾讯域名在全国各地的日解析异常量是已经超过了80万条。这给腾讯的业务带来了巨大的损失。为此腾讯建立了专业的团队与各个运营商进行了深度沟通,但是由于各种原因,处理效率及效果均不能达到腾讯各业务部门的需求。除了转载 2020-07-31 16:59:22 · 918 阅读 · 0 评论 -
Tomcat中包含的配置文件、名字、作用分析记录
目录Tomcat v8.5配置文件context.xmlserver.xmlweb.xmltomcat-users.xml参考Tomcat v8.5配置文件从上面的目录的截图可以看出,除了catalina.*文件外,其实配置文件就是context.xml server.xml web.xml tomcat-users.xml四个文件,那么接下来我们一次看下这4个...原创 2020-01-04 17:41:48 · 7605 阅读 · 1 评论 -
Samza---一个开源、分布式的流处理框架
Apache Samza是一个开源、分布式的流处理框架,它使用开源分布式消息处理系统Apache Kafka来实现消息服务,并使用资源管理器Apache Hadoop YARN实现容错处理、处理器隔离、安全性和资源管理。近日,从Apache官方博客中得知,开源的分布式流处理框架Samza历经18个月的孵化期后终于升级成为Apache的顶级项目。Samza由LinkedIn于2013年9月开源并作为...转载 2019-12-09 01:21:33 · 1331 阅读 · 0 评论 -
Apex---Apache开源流式处理框架
2016年底,facebook 统计报告显示全球已经有33亿人接入互联网,如我们算上通信用户,那么全球有超过三分之二的人已经通过某种方式接入互联网,每一天,人类的活动都将产生海量的数据,并且量级呈指数级上升。正是海量数据的快速生成,对于海量数据的存储和处理的技术也相对应的快速发展,由于大数据领域的快速发展,统计分析已经无法把数据的优势完美发挥,从而促使机器学习的第三次爆发。几乎是每隔几个月,我...转载 2019-12-09 00:58:43 · 1488 阅读 · 0 评论 -
DistributedLog---Twitter开源的分布式日志系统
Twitter的开源DistributedLog是一款高性能复制日志服务,能提供持久的可复制的强一致性(分布式事务机制),可以作为基础构建设施用于创建可靠的分布式系统,例如可复制的状态机(replicated-state-machine)、一般的pub/sub系统、分布式数据库和分布式队列等。是Kafka的竞争产品。分布式系统一般使用日志来构建可靠的复制性系统有两种范式,如下图://p...转载 2019-12-09 00:56:20 · 595 阅读 · 0 评论 -
Pravega---Dell Emc开源分布式流存储系统
当前的大数据处理系统无论是何种架构都面临一个共同的问题,即:“计算是原生的流计算,而存储却不是原生的流存储” 。Pravega 团队重新思考了这一基本的数据处理和存储规则,为这一场景重新设计了一种新的存储类型,即原生的流存储,命名为”Pravega”,取梵语中“Good Speed”之意。本文是“分布式流存储 Pravega 系列文章”第二篇,第一篇文章回顾《为什么你需要开源分布式流存储 Prav...转载 2019-12-09 00:52:53 · 1950 阅读 · 0 评论 -
LogDevice---Facebook开源一种用于日志的分布式数据存储系统
日志是记下有序序列的不可变记录,并将记录可靠存储起来的最简单方法。如果你构建数据密集型分布式服务,很可能在某处需要一两个日志。我们Facebook构建许多庞大的分布式服务来存储和处理数据。想要连接数据处理管道的两个阶段,又不必担心数据流控制或数据丢失?让一个阶段写入日志,另一个阶段从日志读取。在维护大型分布式数据库上的索引?让索引服务读取更新日志,以适当的顺序应用所有更改。有一系列一周后要以特定顺...转载 2019-12-09 00:49:41 · 464 阅读 · 0 评论 -
取模哈希和一致性哈希实、区别和联系
在分布式环境下面,我们经常会通过一定的规则来进行数据分布的定义,本文描述的取模算法和一致性 Hash(Consistent Hash)是通过一定规则产生一个key,对这个key进行一定规则的运算,得出这个数据该去哪儿。一、数据分布接口定义概述在分布式环境下面,我们经常会通过一定的规则来进行数据分布的定义,比如用户1的数据存储到数据库1、用户2的数据存储到数据库2......一般来说...转载 2019-11-20 00:52:31 · 2111 阅读 · 0 评论 -
架构系列---发号器(全局唯一ID生成器)系统设计方案和思路
标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程。如何保证分布式系统下,并行生成标识的唯一与标识的命名空间有着密不可分的关系。在世界里,「潜意识下的命名空间里,相对的唯一标识」是普遍存在的,例如: 每个人出生的时候,就获得了一个「相对的唯一标识」——姓名。 城市的道路,都基本上采用了唯一的命名(当然...转载 2019-09-06 01:46:02 · 2227 阅读 · 0 评论 -
对OAuth2.0讲解的最清楚的几篇文章标记
OAuth2.0协议及五种授权模式整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)UAAOAuth2.0 原理流程及其单点登录和权限控制帮你深入理解OAuth2.0协议Spring cloud微服务实战——基于OAUTH2.0统一认证授权的微服务基础架构Spring 5.0+Spring Boot+security+spring cl...原创 2019-08-06 21:42:51 · 316 阅读 · 0 评论 -
架构系列---利用zookeeper 分布式锁解决缓存重建冲突实战
上一篇 分布式缓存重建并发冲突问题以及zookeeper分布式锁解决方案, 主要讲解了分布式缓存重建冲突原因及利用zookeeper分布式锁解决缓存重建冲突问题,本篇接着上篇,实现上篇思路,带你利用zookeeper代码实现分布式锁解决重建缓存冲突问题。缓存重建分析图从上图我们可以看出:缓存主动更新 我们监听kafka中的缓存操作消息队列,当接收到一个商品变更消息后,我们会立即根...转载 2019-06-13 00:01:30 · 847 阅读 · 0 评论 -
架构系列---分布式缓存重建并发冲突问题以及zookeeper分布式锁解决方案
本篇讲解分布式缓存重建冲突原因及利用zookeeper分布式锁解决缓存重建冲突问题。缓存重建什么意思呢? 比如应用跑了一段时间,缓存(redis cluster)实例中的部分数据由于被LRU等算法或者其他手段清理了,这时候就需要重新到数据源中拉取数据,然后重新设置到缓存中。 分布式缓存重建又是什么意思呢? 比如在多个node节点上部署了相同的服务实例,对外提供服务,就会出现多个node分...转载 2019-06-12 23:58:54 · 708 阅读 · 0 评论 -
架构系列---蚂蚁金服面对亿级并发场景的组件体系设计
今天,我主要想和大家分享一下移动领域基础组件体系,内容大致可以分为四大块,第一块是标准移动研发所需的基础服务体系,第二块是支撑亿级并发的核心组件“移动接入”的架构演进过程,第三块是双十一、双十二、新春红包这种大促活动的的应付方法,最后一块是目前已经对外输出的基础服务产品。移动研发基础服务体系首先介绍一下支付宝客户端的演进过程。之前,支付宝客户端的主要功能是转账、订单支付、交易查询等等,...转载 2019-06-05 01:39:37 · 932 阅读 · 0 评论 -
架构系列---百度分布式唯一ID生成器UidGenerator解析
百度uid-generatorhttps://github.com/baidu/uid-generatorUidGenerator是百度开源的Java语言实现,基于Snowflake算法的唯一ID生成器。而且,它非常适合虚拟环境,比如:Docker。另外,它通过消费未来时间克服了雪花算法的并发限制。UidGenerator提前生成ID并缓存在RingBuffer中。 压测结果显示,单个实例的...转载 2019-05-27 00:13:46 · 7755 阅读 · 0 评论 -
JWT的基于JJWT在Java中使用
1.什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直...转载 2019-05-22 01:51:27 · 703 阅读 · 0 评论 -
架构系列---架构师之路17年精选80篇
2017精选索引,入选规则为: 截止至2017年12月28日文章 截止到发文,阅读1W+ 【架构必备】《互联网架构如何实现“高并发”》4W+《TCP接入层的负载均衡、高可用、扩展性架构设计》2.2W+《配置中心架构设计演进》1.7W+《跨公网调用的大坑与架构优化》1.4W+《DNS在架构设计中的巧用》1.9W+《消息如何在网络上安全传输》1.2W+...转载 2019-04-09 00:47:59 · 1143 阅读 · 0 评论 -
架构系列---饿了么MySQL异地多活的数据双向复制
陈永庭,饿了么框架工具部高级架构师,主要负责MySQL异地双向数据复制,支撑饿了么异地多活项目。曾就职于WebEx、Cisco、腾讯等公司。今天我主要分享饿了么多活的底层数据实施,会和大家介绍在整个多活的设计和实施过程中我们是怎么处理异地数据同步的,而这个数据同步组件在我们公司内部称之为DRC。异地多活背景在讲DRC或者讲数据复制之前,先跟大家回顾一下异地多活的背景。去年我...原创 2019-04-09 00:45:12 · 25166 阅读 · 2 评论 -
全链路性能压测工具分析和总结
服务端压测memtier_benchmarkmemtier_benchmark是Redis Labs推出的一款命令行工具,它能够产生各种各样的流量模式,可以对Memcached和Redis实例进行基准测试。这个工具提供了丰富的自定义选项和报表功能,通过命令行界面就能够轻松地使用。这个工具的一些优点如下所述: memtier_benchmark同时支持Redis和Memcached(二...原创 2019-03-10 21:30:21 · 3435 阅读 · 0 评论 -
如何打造千万级Feed流系统
摘要: Feed流是一个目前非常常见的功能,在众多产品中都有展现,通过Feed流可以把动态实时的传播给订阅者,是用户获取信息流的一种有效方式。在大数据时代,如何打造一个千万级规模的Feed流系统仍然是一个挑战。在互联网领域,尤其现在的移动互联网时代,Feed流产品是非常常见的,比如我们每天都会用到的朋友圈,微博,就是一种非常典型的Feed流产品,还有图片分享网站Pinterest,花瓣转载 2017-11-15 11:55:48 · 2067 阅读 · 0 评论 -
架构系列---架构师之路16年精选50篇
【方法论】《秒杀系统架构优化思路》《分布式ID生成器》《互联网架构,如何进行容量设计》《线程数究竟设多少合理》《单点系统架构的可用性与性能优化》《关于负载均衡的一切》《异构服务器负载均衡及过载保护》《LVS为何不能完全替代DNS轮询》《究竟啥才是互联网架构“高并发”》《究竟啥才是互联网架构“高可用”》《100亿数据1万属性数据架构设计》【数据库...转载 2017-06-25 23:45:04 · 885 阅读 · 2 评论 -
原系统改造的思维扩张之路---交易洪峰的应对
交易系统是如何应对交易洪峰的?由于交易的调用链路比较长,从Web服务器到执行链路中的各个服务系统,包括缓存、DB等存储系统,请求都是以队列的方式被处理。各个系统如果没有处理好容量控制,就会导致请求的堆积,对外呈现的就是响应时长增加。在处理链路比较长的情况下,这种异常会被放大,链路后面的一个点发生堆积,前面的各个点也会逐步出现堆积。页面应用又是一个用户强交互类型的应用,如果用户发原创 2017-06-21 23:14:02 · 839 阅读 · 0 评论 -
原系统改造的思维扩张之路---交易系统
新的交易系统是如何解决老系统的问题的?王海亚:总结来说,可以从7个点来讲。第一,通过服务治理,把业务规则从原有功能中剥离,明确各个服务所提供功能的完备性及独立性,从系统边界上确保功能之间无耦合。第二,通过集中式的业务规则管控,保证交易全链路的业务规则统一及业务规则灵活可配置。第三,通过标准化的交易框架及组件化设计,保证服务在交易平台快速接入。第四,通过异原创 2017-06-21 23:05:43 · 1091 阅读 · 0 评论 -
微信和淘宝的扫码登录,技术上是怎么实现的?
1、引言扫码登录这个功能,最早应该是微信的PC端开始搞,虽然有点反人类的功能(不扫码也没别的方式登录),但不得不说还是很酷的。下面这张图,不管是IM开发者还是普通用户,应该很熟悉:于是,搞IM产品的老板和产品经理们,从此又多了一个要抛给程序员们的需求——“为什么微信有扫一扫登录,而我们的没有?”。好吧,每次只要是微信有的功能,IM程序员们想甩锅,难度就有点大了,毕竟老板们都都会...转载 2020-02-17 21:40:26 · 1675 阅读 · 0 评论 -
分布式系列---我说分布式事务系列汇总
文章列表我说分布式事务之TCC我说分布式事务之最大努力通知型事务我说分布式事务之可靠消息最终一致性事务1-原理及实现我说分布式事务之消息一致性事务2-rocketmq的实现后续会对分布式事务的理论知识,如2PC、3PC、XA事务等做一个盘点...转载 2020-02-03 00:42:00 · 414 阅读 · 0 评论 -
分布式系列---有人把“分布式事务”讲的这么简单明了
又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。事务的具体定义事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行...转载 2019-08-11 17:21:35 · 317 阅读 · 0 评论 -
方案系列--三方授权之后几种方案对比分析
方案一:快捷和自动登陆注册型。该方案是对用户行为拦截最少的方案,整个过程最为流畅,对用户来说几乎无感;此时无服务端通常通常以第三方分配的openId+三方平台类型结合生成一个唯一表示标识,并将从三方获取到的其他信息一起作为一条记录存到数据库。并且自己网站通常也会显示第三方平台的昵称。下次,用户在此登陆时,仍然需要通过三方来进行登陆,因为在自己平台上我们并没有给用户一个机会让用户输入自己的标识,...原创 2020-05-03 14:16:07 · 727 阅读 · 1 评论 -
Draw.io---一款强大且支持在线编辑和到处的画图软件
画图软件面面观Windows:其实画图软看还真是蛮多的,最强大的且老牌的自然是Visio,但是如果想在线、想在Windows平台上,就优点费劲了Processon:强大的在线作图软件,很流行,但是如果不是会员就只能存储几幅图,那是果断不够的。StartUML:Mac上使用非常好,但是在线搞还是有些费劲了。Draw.io简而言之,免费支持离线和在线,且可以导出到云盘,满足了众生的...原创 2020-04-12 21:17:01 · 19687 阅读 · 0 评论 -
架构系列---QR二维码和扫描二维码登陆原理
二维码发展二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。生成二维码原理简解用特定的几何图形按编排规律在二维方向上...原创 2020-04-05 14:58:30 · 1177 阅读 · 0 评论 -
架构系列---消息点击率翻倍的背后——闲鱼无侵入可扩展IFTTT系统
面临问题在闲鱼生态里,用户之间会有很多种关系。其中大部分关系是由买家触发,联系到卖家,比如买家通过搜索、收藏、聊天等动作与卖家产生联系;另外一部分是平台与用户之间的关系。对这些关系分析之后我们发现这些关系中存在两个问题: 用户产生关系的层次不够丰富; 现有系统只维护了一部分用户关系,包括收藏、点赞等,用户关系的层次还不够丰富。 用户之间关系是单向且不够实时; 在现有的玩法中,买...转载 2020-03-23 21:18:36 · 517 阅读 · 0 评论 -
架构系列---一个优秀的Push平台需要经历怎样的前世今生
对闲鱼用户来说,因为闲鱼商品库存只有一件,商品的时效性很强,因此当用户关注的卖家上新、浏览的商品发生降价或者平台为用户找到一批高性价比商品时,用户期望尽快被通知。Push已经成为用户与闲鱼平台联系的重要纽带。本文将以技术同学视角,介绍闲鱼Push从离线手工投放的1.0版本进化到智能个性化的2.0版本的发展过程,详细说明遇到的问题和技术方案选型,以期给读者带来一些思考和解决类似问题的思路。...转载 2020-03-23 21:15:25 · 609 阅读 · 0 评论 -
架构系列---集群环境下Redis分布式锁RedLock
在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedLock。Redlock是redis官方提出的实现分...原创 2020-02-23 01:13:04 · 681 阅读 · 0 评论 -
架构系列---一套高并发IM通信系统完整设计和实现
先行参考:架构秘境系列3---微信、陌陌、WNS著名IM软件设计架构详解1. 服务器端设计1.1 总体架构总体架构包括5个层级,具体内容如下图。1.1.1 用户端移动端重点是移动端,支持IOS/Android系统,包括IM App,嵌入消息功能的瓜子App,未来还可能接入客服系统。1.1.2 用户端API针对TCP协议,提供IOS/Android开发...转载 2020-03-13 00:49:34 · 3713 阅读 · 0 评论 -
架构系列---SSO单点登录实现的三种方案
单点登录(SSO——Single Sign On)对于我们来说已经不陌生了。对于大型系统来说使用单点登录可以减少用户很多的麻烦。就拿百度来说吧,百度下面有很多的子系统——百度经验、百度知道、百度文库等等,如果我们使用这些系统的时候,每一个系统都需要我们输入用户名和密码登录一次的话,我相信用户体验肯定会直线下降。当然,对于个人博客这类系统来说根本就用不上单点登录了。假如,我们的系统很庞大,但是就...转载 2020-03-07 01:31:43 · 4968 阅读 · 1 评论 -
Service Mesh 中的 Sidecar重要性分析之有赞应用
一、背景有赞是 SaaS 公司,向商家提供了全方位的软件服务,支撑商家进行采购、店铺、商品、营销、订单、物流等等管理服务。在这个软件服务里,能够满足大部分的商家,为商家保驾护航。SaasS 形成是追求共性的过程,SaaS 生态化是求同存异的过程,所以当我们能够满足大部分客户需求时,我们得考虑大客户的个性化需求场景。1.1 客户分析上面讲到我们要求同存异,我们要满足个性化需求,这...转载 2020-02-22 21:57:35 · 1258 阅读 · 0 评论 -
春晚红包:史上最难开卷考试,快手交卷了
春晚红包史堪称互联网公司宕机血泪史,再强的高并发能力在海内外超过 10 亿人的观看规模面前都显得那么脆弱。在互联网人的固有印象里,春晚活动是 BAT 三家轮番坐庄的技术盛事,毕竟只有具备足够的用户体量,才可能有足够的技术能力支撑起春晚级别的高并发流量。今年除夕,作为 BAT 以外第一家扛起春晚战旗的互联网公司,快手在今年的春晚红包活动中,红包互动总量达到 639 亿次,创春晚史上最大的视频点赞纪录...转载 2020-02-12 09:41:43 · 1318 阅读 · 0 评论