- 博客(20)
- 资源 (6)
- 问答 (14)
- 收藏
- 关注
转载 缓存架构设计细节二三事
本文主要讨论这么几个问题:(1)“缓存与数据库”需求缘起(2)“淘汰缓存”还是“更新缓存”(3)缓存和数据库的操作时序(4)缓存和数据库架构简析一、需求缘起场景介绍缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。例如对于用户的余额信息表account(uid, money),业务上的需求是:(1)查询用户的余额,SE...
2019-09-28 20:00:45
153
1
转载 主从DB与cache一致性
本文主要讨论这么几个问题:(1)数据库主从延时为何会导致缓存数据不一致(2)优化思路与方案一、需求缘起上一篇《缓存架构设计细节二三事》中有一个小优化点,在只有主库时,通过“串行化”的思路可以解决缓存与数据库中数据不一致。引发大家热烈讨论的点是“在主从同步,读写分离的数据库架构下,有可能出现脏数据入缓存的情况,此时串行化方案不再适用了”,这就是本文要讨论的主题。二、为...
2019-09-28 16:59:32
165
转载 MySQL双主一致性架构优化
一、双主保证高可用MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点。在一个MySQL数据库集群中可以设置两个主库,并设置双向同步,以冗余写库的方式来保证写库的高可用。二、并发引发不一致数据冗余会引发数据的一致性问题,因为数据的同步有一个时间差,并发的写入可能导致数据同步失败,引起数据丢失:如...
2019-09-28 15:58:56
193
转载 DB主从一致性架构优化4种方法
需求缘起大部分互联网的业务都是“读多写少”的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用“一主多从,读写分离,冗余多个读库”的数据库架构来提升数据库的读性能。这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据:(1)系统先对DB-master进行了一个写操作,写主库(2)很短的时间内并发进行了一个读操作,读从库,此时主从同步没有完成,故读取到了一个旧数...
2019-09-28 15:45:03
164
转载 session一致性架构设计实践
一、缘起什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。Web开发中,web-server可以自动为同一个浏览器的访问用户自动创建session,提供数据存储功能。最常见的,会把用户的登录信息、用户信息存储在session中,以保持登录状态。什么是session一致性问题?只要用户不重启浏览器,每次http...
2019-09-28 14:04:19
120
转载 互联网公司为啥不使用mysql分区表?
缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。解决什么问题?回答:当mysql单表的数据库过大时,数据库的访问速度会下降,“数据量大”问题的常见解决方案是“水平切分”...
2019-09-28 13:41:53
115
转载 100亿数据1万属性数据架构设计
对于version + ext方案,还是有很多朋友质疑“线上不可能这么用”。本篇将讲述一下58同城最核心的数据“帖子”的架构实现技术细节,说明不仅不是“不可能这么用”,而是大数据,可变属性,高吞吐场景下的“常用手段”。一、背景描述及业务介绍问:什么是数据库扩展的version + ext方案?使用ext来承载不同业务需求的个性化属性,使用version来标识ext里各个字段的含义...
2019-09-28 13:39:29
152
转载 数据量大的表增加一列属性
需求缘起产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计:user(uid, name, passwd, nick)第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成:user(uid, name, passwd, nick, age, sex)假设数据量和并发量比较大,怎么变?(1)alter table add column?不太可行,锁表时间长...
2019-09-28 13:11:07
1172
转载 MySQL主从延时这么长,要怎么优化?
MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重。为什么主从延时这么大?答:MySQL使用单线程重放RelayLog。应该怎么优化,缩短重放时间?答:多线程并行重放RelayLog可以缩短时间。多线程并行重放RelayLog有什么问题?答:需要考虑如何分割RelayLog,...
2019-09-28 12:30:12
165
转载 一分钟了解四层/七层反向代理
什么是代理?回答:[proxy]代表[访问用户],此时proxy是代理。例如:在家访问xxoo网站,不希望xxoo网站trace到我们的真实ip,于是就找一个proxy,通过proxy来访问,此时proxy代表用户,网站以为proxy的ip就是用户的ip。什么是反向代理?回答:[proxy]代表[被访问的服务器],此时proxy是反向代理。例如:web-server希望对用户屏蔽高可...
2019-09-28 12:28:57
356
转载 lvs为何不能完全替代DNS轮询
一、问题域nginx、lvs、keepalived、f5、DNS轮询,每每提到这些技术,往往讨论的是接入层的这样几个问题:1)可用性:任何一台机器挂了,服务受不受影响2)扩展性:能否通过增加机器,扩充系统的性能3)反向代理+负载均衡:请求是否均匀分摊到后端的操作单元执行二、上面那些名词都是干嘛的由于每个技术人的背景和知识域不同,上面那些名词缩写(运维的同学再熟悉不过了),还是花1分钟简...
2019-09-23 00:13:33
152
转载 究竟啥才是互联网架构“高并发”
一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间: 系统对请求做出响应的时间。例如系统处理一个HTTP请...
2019-09-22 22:56:28
112
转载 究竟啥才是互联网架构“高可用”
一、什么是高可用高可用HA**(**High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8....
2019-09-22 22:24:29
109
转载 MQ如何快速实现流量削峰填谷
问:站点与服务,服务与服务上下游之间,一般如何通讯?答:有两种常见的方式一种是“直接调用”,通过RPC框架,上游直接调用下游。在某些业务场景之下(具体哪些业务场景,见《到底什么时候该使用MQ?》),可以采用“MQ推送”,上游将消息发给MQ,MQ将消息推送给下游。问:为什么会有流量冲击?答:不管采用“直接调用”还是“MQ推送”,都有一个缺点,下游消息接收方无法控制到达自己的流量,如果调...
2019-09-22 21:17:22
468
转载 到底什么时候该使用MQ?
【典型场景一:数据驱动的任务依赖】什么是任务依赖,举个栗子,互联网公司经常在凌晨进行一些数据统计任务,这些任务之间有一定的依赖关系,比如:1)task3需要使用task2的输出作为输入2)task2需要使用task1的输出作为输入这样的话,tast1, task2, task3之间就有任务依赖关系,必须task1先执行,再task2执行,载task3执行。[外链图片转存失败(img-ih...
2019-09-22 20:45:04
145
转载 转载-10w定时任务,如何高效触发超时
一、缘起很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。例如:58到家APP实时消息通道系统,对每个用户会维护一个APP到服务器的TCP连接,用来实时收发消息,对这个TCP连接,有这样一个需求:“如果连续30s没有请求包(例如登录,消息,keepalive包),服务端就要将这个用户的状态置为离线”。其中,单机TC...
2019-09-22 19:54:50
168
转载 分片架构-粉丝关注,数据冗余
数据冗余,是多对多关系,在数据量大时,数据水平切分的常用实践。如何进行数据冗余接下来的问题转化为,好友中心服务如何来进行数据冗余,常见有三种方法。方法一:服务同步冗余顾名思义,由好友中心服务同步写冗余数据,如上图1-4流程: 业务方调用服务,新增数据 服务先插入T1数据 服务再插入T2数据 服务返回业务方新增数据成功 ...
2019-09-22 17:12:48
327
转载 分片架构实践-基因因子分片
一、用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, login_name, passwd, sex, age, nickname, …)其中: uid为用户ID,主键 login_name, passwd, sex, age, nickname, …等用户属性 数据库设计上,一般来说在业务初期,...
2019-09-22 17:11:03
1220
转载 分片架构-分片方法
转至——架构师之路公众号分片架构什么是分片?答:分片架构是大伙常说的水平切分(sharding)数据库架构: user-service:依旧是用户中心服务 user-db1:水平切分成2份中的第一份 user-db2:水平切分成2份中的第二份 分片后,多个数据库实例也会构成一个数据库集群。水平切分,到底是分库还是分表?答:强烈建议分库,而...
2019-09-22 17:09:07
824
原创 Mysql+Mybatis 批量插入返回主键
大家在做一些功能时,可能会遇见的。当表将主键设置为自增时,很多场景需要insert之后记录的ID,作为其他数据关连的ID。单条记录insert时,只需要添加keyProperty="orderId" useGeneratedKeys="true"<insert id="insertBatchOrder" parameterType="OrderModel" keyProperty="orde...
2018-03-29 22:56:19
2730
2
Hadoop技术内幕 mobi kindle
2017-09-21
[1分]Java编程思想 第四版 中文版.mobi (Kindle电子书格式)
2017-09-17
工行接口需要的commons-httpclient-2.0-rc2.jar
2017-05-25
[2分]windows Redis-3.2.100 下载
2017-10-17
使用springSession后带来的不便
2017-11-07
redis 哨兵模式频繁切换主从 遇到的问题
2017-10-24
redis cluster 集群的一些疑问
2017-10-18
jquery autocomplete无法访问到后台
2017-06-02
访问请求某个链接时 Connection is not open
2017-05-24
工行非NC方式向银行发送指令数据,求指导
2017-05-05
项目完善的防sql注入,但是前台提交的关键词有and,or怎么破
2017-04-24
ie9以上要使用兼容性视图才能打开网站,代码中应该如何解决此问题
2017-04-22
android PagerView里面的数据怎么改变
2016-04-12
embed标签导致js初始化方法不执行(ie 9以上)
2017-03-30
ie 11下图片验证码一直错误,其他浏览器验证正常 急急急!!!
2017-02-25
帮忙解决一下hessian使用中出现的异常----在线等
2016-12-19
【在线等】Android 写入文件的小问题,文件创建成功了,但是没写入成功
2016-06-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅