系统设计
文章平均质量分 93
hongmingover
。。。。。。。
展开
-
Kafka 架构原理解析
Kafka 架构原理解析臧远慧分布式实验室2020-04-10本文主要讲解 Kafka 是什么、Kafka 的架构包括工作流程和存储机制,以及生产者和消费者。最终大家会掌握 Kafka 中最重要的概念,分别是 Broker、Producer、Consumer、Consumer Group、Topic、Partition、Replica、Leader、Follower,这是学会和理解 Kafka 的基础和必备内容。定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(M...转载 2021-04-07 12:56:57 · 159 阅读 · 0 评论 -
一致性哈希算法的理解与实践
一致性哈希算法的理解与实践过往记忆大数据2019-03-05本文原文(点击下面 阅读原文即可进入):https://yikun.github.io/2016/06/09/一致性哈希算法的理解与实践/在维基百科中,是这么定义的一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中K是关键字的数量, n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。引出我们在上文中已经介绍了一致性.原创 2021-03-28 22:13:04 · 172 阅读 · 0 评论 -
说说MySQL事务的实现原理
面试官:说说MySQL事务的实现原理小小木的博客业余草2020-09-27你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起精进!编辑:业余草来源:cnblogs.com/wyc1994666/p/11367051.html推荐:https://www.xttblog.com/?p=5107开篇相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及..转载 2021-03-28 11:38:06 · 185 阅读 · 0 评论 -
数据库面试没那么难,不信你看这24道题!
数据库面试没那么难,不信你看这24道题!让我来处理高并发关注12020.12.29 13:21:53字数 5,298阅读 3,936一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE原创 2021-03-28 11:02:29 · 159 阅读 · 0 评论 -
一文读懂Redis中的多路复用模型
一文读懂Redis中的多路复用模型服务端思维5天几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而I/O 多路复用就是为了解决这个问题而出现的。阻塞IO先来看一下传统的阻塞 I/O 模型到底是如何工作的:当使用read...转载 2021-03-28 10:55:32 · 255 阅读 · 0 评论 -
如果叫你设计一个短链接系统,你会从那些方面来提高性能呢?
如果叫你设计一个短链接系统,你会从那些方面来提高性能呢?# 前言今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。本文将会从以下几个方面来讲解,每个点包含的信息量都不少,相信大家看完肯定有收获短链跳转的基本原理 短链生成的几种方法 高性能短链的架构设计1、链接变..转载 2021-03-28 10:48:35 · 429 阅读 · 0 评论 -
出现这 4 种情况,才是考虑分库分表的时候!
出现这 4 种情况,才是考虑分库分表的时候!点击关注 ????架构之路1月25日点击上方“架构之路”,关注、置顶公众号架构干货,第一时间送达!前言当数据库的数据量过大,大到一定的程度,我们就可以进行分库分表。那么基于什么原则,什么方法进行拆分,这就是本篇所要讲的。数据库瓶颈不管是 IO 瓶颈还是 CPU 瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务 Service 来看, 就是可用数据库连接少甚至无连接可用,接下来就可以想象原创 2021-03-24 14:18:09 · 134 阅读 · 0 评论 -
微博千万级规模高性能高并发的网络架构设计
微博千万级规模高性能高并发的网络架构设计zhishengFlink 实时计算框架基础&进阶&实战&源码解析,死磕Flink&Spark&ElasticSearch&Kafka&...! 坑要一个个填,路要跟着zhisheng走!137篇原创内容公众号架构以及我理解中架构的本质在开始谈我对架构本质的理解之前,先谈谈自己的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战...转载 2021-03-17 19:07:01 · 121 阅读 · 0 评论 -
灰度发布系统的实现
灰度发布系统的实现灰度发布,已经不是一个很新的概念了.一个产品,如果需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题那么可以很快的控制影响面,就需要设计一套灰度发布系统.灰度发布系统的作用在于,可以根据自己的配置,来将用户的流量导到新上线的系统上,来快速验证新的功能修改,而一旦出问题,也可以马上的恢复,简单的说,就是一套A/BTest系统.它大抵的转载 2017-04-17 10:26:25 · 1397 阅读 · 1 评论 -
灰度发布
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。原创 2017-04-17 10:30:19 · 457 阅读 · 0 评论 -
高并发实战之幂等处理
高并发实战之幂等处理一、背景1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;3. 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;4. 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题。二、什么事幂等转载 2017-06-02 11:52:24 · 9158 阅读 · 0 评论 -
PHP实现文件下载断点续传详解
PHP实现文件下载断点续传详解如果我们的网站提供文件下载的服务,那么通常我们都希望下载可以断点续传(Resumable Download),也就是说用户可以暂停下载,并在未来的某个时间从暂停处继续下载,而不必重新下载整个文件。通常情况下,Web服务器(如 Apache)会默认开启对断点续传的支持。因此,如果直接通过Web服务器来提供文件的下载,可以不必做转载 2017-10-09 13:29:36 · 275 阅读 · 0 评论 -
从理论到实践落地「微服务
从理论到实践落地「微服务」作者|程超编辑|小智若论近年来大热的技术名词,微服务必定有一席之地。对于微服务的阐述已有很多,但很多不过流于框架、架构介绍,恍若空中楼阁。这是一篇理论与实践结合谈微服务的文章,回复关键词「微服务」,下载作者80页PPT的呕心之作。如果你想更深入学习微服务,请看今日次条推送。写在前面一直对微服务非常感兴趣,因为公司的架构改造正好有机会能够接触微服务,买来一些转载 2017-10-10 09:35:45 · 6354 阅读 · 4 评论 -
幂等理论与实践
作者:潜龙勿用链接:https://www.zhihu.com/question/27744795/answer/234251693来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。与题主分享一点在高并发的核心技术中如何实现幂等性问题的研究,希望对题主有所帮助。实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。转载 2017-10-31 11:14:11 · 226 阅读 · 0 评论 -
PHP做APP接口时,如何保证接口的安全性(登陆验证)
PHP做APP接口时,如何保证接口的安全性PHP做APP接口时,如何保证接口的安全性?1、当用户登录APP时,使用https协议调用后台相关接口,服务器端根据用户名和密码时生成一个access_key,并将access_key保存在session中,将生成的access_key和session_id返回给APP端。2、APP端将接收到的access_key和sessio原创 2017-10-31 11:26:34 · 3962 阅读 · 0 评论 -
TCC 分布式事物最终一致性
说说分布式事务最终一致性(一)TCC简介TCC是由支付宝架构师提供的一种柔性解决分布式事务解决方案,主要包括三个步骤:TCC流程TCC的关键流程如下图(以下单和扣减库存为例子)Q: 预生成订单失败了,为什么要通过TCC执行预处理数据回滚?A: 可能预生成订单成功,但是接口返回失败(超时失败),所以预处理转载 2017-11-01 10:05:47 · 13176 阅读 · 0 评论 -
分布式事务之说说TCC事务
分布式事务之说说TCC事务在当前如火如荼的互联网浪潮下,如何应对海量数据、高并发成为大家面临的普遍难题。广大IT公司从以往的集中式网站架构,纷纷转向分布式的网站架构,随之而来的就是进行数据库拆分和应用拆分,如何在跨数据库、跨应用保证数据操作和业务操作的一致性、原子性,又成为需要解决的新的问题。从分布式事务的需求来源来看:1、跨数据库数据库拆分(水平、垂直)带来的分布式事务->保转载 2017-11-01 10:37:00 · 374 阅读 · 0 评论 -
分布式事务的典型处理方式:2PC、TCC、异步确保和最大努力型
1. 柔性事务和刚性事务柔性事务满足BASE理论(基本可用,最终一致)刚性事务满足ACID理论本文主要围绕分布式事务当中的柔性事务的处理方式进行讨论。柔性事务分为两阶段型补偿型异步确保型最大努力通知型几种。 由于支付宝整个架构是SOA架构,因此传统单机环境下数据库的ACID事务满足了分布式环境下的业务需要,以上几种事务类似就是针对转载 2017-11-01 10:41:56 · 1584 阅读 · 0 评论 -
deepLink技术打开app内的某个页面
现在很火的app上的deeplink技术,到底是什么?2016-12-27 11:39技术来源:魔窗合作伙伴[ 互联网数据官],第一家聚焦于基于数据和大数据的互联网营销、运营、产品和管理的中立平台。原创好文授权发布于魔窗,未经许可,谢绝转载。作者:郭宇洋 为iCDO独家撰稿本文版权为作者郭宇洋所有,未经作者许可,禁止转发。主编前言:Dee转载 2017-10-16 10:02:05 · 11138 阅读 · 1 评论 -
Innodb事务种类及实现
Innodb事务种类及实现innodb事务可以分为以下几种:1.扁平事务 2.带有保存点的扁平事务 3.链事务 4.嵌套事务 5.分布式事务各自分别介绍:1.扁平事务 这是事务中最简单的一种,也是使用最广泛的一种。在扁平事务中,所有的操作都在同一层次,由begin work开头,由commit work或者rollback wor转载 2017-11-01 20:36:46 · 394 阅读 · 0 评论 -
分库分表的几种常见玩法及如何解决跨库查询等问题
分库分表的几种常见玩法及如何解决跨库查询等问题在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合转载 2017-11-10 18:58:59 · 6261 阅读 · 0 评论 -
分布式ID生成方法
分布式ID生成方法转至元数据结尾转至元数据起一、需求缘起几乎所有的业务系统,都有生成一个记录标识的需求,例如:(1)消息标识:message-id(2)订单标识:order-id(3)帖子标识:tiezi-id这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(cluster原创 2017-11-02 11:55:10 · 222 阅读 · 0 评论 -
从银行转账失败到分布式事务:总结与思考
从银行转账失败到分布式事务:总结与思考2017/10/24 · IT技术 · 分布式分享到:5原文出处: xybaby 思考这个问题的初衷,是有一次给朋友转账,结果我的钱被扣了,朋友没收到钱。而我之前一直认为银行转账一定是由事务保证强一致性的,于是学习、总结了一下分布式事务的各种理论、方法。事务是一个非常广义的词汇,各行各业解读都不一转载 2017-10-26 11:19:07 · 430 阅读 · 0 评论 -
MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?
MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?昨天面试新人的时候,遇到了这么一个问题,按照自己的想法大体聊了一些,但大多是感性的,并没有完整的了解why and how.今天查了一些相关的资料,包括《MySQL性能调优与架构设计》、《高性能Mysql》,慢慢的整体理解,请大家指正。之一,为什么要分表?分表,按形式,有水平分表和主附转载 2017-11-14 19:45:21 · 5853 阅读 · 0 评论 -
分布式数据库架构--分库、分表、排序、分页、分组、实现
分布式数据库架构--分库、分表、排序、分页、分组、实现转载 2016年04月21日 17:40:395939MySQL分库分表总结:单库单表 :单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 单库多表 :转载 2017-11-14 19:48:08 · 458 阅读 · 0 评论 -
分布式事务:不过是在一致性、吞吐量和复杂度之间,做一个选择 分布式系统 消息系统
分布式事务:不过是在一致性、吞吐量和复杂度之间,做一个选择您的评价: 0.0收藏 1收藏这是一个开撕的话题,我经历过太多的关于分布式事务的需求:“有没有简单的方案,像使用数据库事务那样,解决分布式数据一致性的问题”。特别是微服务架构流行的今天,一次交易需要跨越多个“服务”转载 2017-11-14 20:20:04 · 440 阅读 · 0 评论 -
分布式事务XA
分布式事务XA1、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致转载 2017-11-14 20:24:12 · 300 阅读 · 0 评论 -
PHP开发 PHP|什么是CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI?
PHP|什么是CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI?什么是CGICGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。转载 2017-11-29 09:46:26 · 215 阅读 · 0 评论 -
OAuth的机制原理讲解及开发流程
OAuth的机制原理讲解及开发流程 本想前段时间就把自己通过QQ OAuth1.0、OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家,可一直很忙,今天抽点时间说下OAuth1.0协议原理,及讲解下QQ对于Oauth1.0的认证开发。闲话多说了点,下面直接进入主题。 1、OAuth的简述 OAuth(Open Authorization转载 2017-12-11 11:10:19 · 246 阅读 · 0 评论 -
OAuth2授权原理
OAuth2授权原理 最近在做第三方接入的,初步定下使用OAuth2协议,花了些时间对OAuth2的授权方式做了些了解。 我还记得一两年前,跟一位同事聊起互联网时,当时我说过一个想法: 目前不少较为稀有的资源,很多都是论坛提供下载的,论坛提供的下载往往要求一个论坛帐号,更有甚者,需回帖才可见,又或者下载需要消耗一定的虚拟货币,而这些货币可以用论坛活跃度而获得。假设转载 2017-11-24 14:37:41 · 605 阅读 · 0 评论 -
进程间通信的几种姿势
1、共享内存2、tcp/udp3、管道4、文件系统[数据数据库]5、窗口之间的消息转载 2017-12-21 14:10:57 · 164 阅读 · 0 评论 -
查询的qps计算--峰值计算
你好,每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS) 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器 问:每天30转载 2018-01-02 10:11:53 · 2469 阅读 · 0 评论 -
系统的容量总结
系统容量总结标签:class log com http la sp html 问题 数据 前几天聊过,pv 和并发 的概念,也大概解释了 并发,带宽等指标的计算。感兴趣的朋友,可以看看我前面那篇文章:《聊一聊PV和并发》。今天再来聊一聊容量预估。 电商公司的朋友,,这样的场景是否似曾相识:转载 2018-01-02 10:27:43 · 2117 阅读 · 0 评论 -
Web网站的几个并发量级
Web网站的几个并发量级评价一个网站的“大小”,处于视角的不同,有很多种衡量的方法,类似文章数,页面数之类的数据非常明显,也没有什么可以争议的。但对于并发来说,争议非常之多,这里就从一个技术的角度开始,谈谈几个Web网站的数量级。相信很多人谈论一个网站的热度,总免不了会询问日均PV,同时在线人数、注册用户数等运营数据,说实话从技术角度来说,这几个数值没有一个可以放在一起转载 2018-01-02 10:34:13 · 1018 阅读 · 0 评论 -
php 巧用str_shuffle()函数 生成每次都不一样的字符串
php 巧用str_shuffle()函数 php 巧用str_shuffle()函数str_shuffle():随机打乱字符串的顺序。可以通过str_shuffle()函数与substr()函数的组合,生成每次都不一样的字符串。以下是str_shuffle()函数的两个示例:示例一:随机生成长度为10位数字的字符串。转载 2017-12-27 12:38:12 · 1378 阅读 · 0 评论 -
ab,qps,服务器性能压力
ab,qps,服务器性能压力 http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E9%81%93/17732.shtml "ab,qps,服务器性能压力":关键词:ab qps 服务器 性能 压力 http://www.makaidong.com/program/64179转载 2018-01-03 10:48:22 · 778 阅读 · 0 评论 -
单进程单线程的Redis如何能够高并发
单进程单线程的Redis如何能够高并发参考文档: (1)http://yaocoder.blog.51cto.com/2668309/888374 (2)http://www.cnblogs.com/syyong/p/6231326.html1、基本原理 采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗) (1)为什么不采用多进程或多线程处理?多线程处理可转载 2018-01-18 16:09:03 · 457 阅读 · 0 评论 -
binlog,redo log,undo log区别
binlog,redo log,undo log区别1. binlog是MySQL Server层记录的日志, redo log是InnoDB存储引擎层的日志。 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。2. 选择binlog日志作为replication我想主要原因是MySQL的特点就是支持多存储引擎,为了兼容绝大部分引擎来支持复制这个特性,那么自然要采用My...转载 2018-03-19 14:39:21 · 157 阅读 · 0 评论 -
鉴权中心系统设计
鉴权中心系统设计转至元数据结尾转至元数据起始一、现有业务流程由于和钱相关的事件(借入、贷出、赚利差、转帐、扫码付款等)都需要前置校验,目前已有的鉴权方式有如下几项:拒绝操作短信交易密码(类型有:只有密码面板 OR 带余额以及支付方式)肖像认证登录密码指纹(TouchID)(目前仅仅适用于iPhone5S以上的用户)上传资料审核四要素鉴权(用户未绑卡,选择名字与身份证鉴权)身份认证+银行卡信息确认可...转载 2018-03-23 19:54:23 · 4468 阅读 · 0 评论 -
业务质量监控平台
业务质量监控平台转至元数据结尾转至元数据起始背景 业务维度的监控缺失,往往依赖于用户反馈;目标 业务质量平台建立,包括业务查询,异常监控,异常定位; 系统指标:召回率99%,准确率80%;模型 基本实体 请求ID【RequestID】:用户的一次请求; 事务ID【TransactionID】:用户的请求涉及到三态(...转载 2018-03-23 21:42:46 · 894 阅读 · 0 评论