自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (6)
  • 问答 (14)
  • 收藏
  • 关注

转载 缓存架构设计细节二三事

本文主要讨论这么几个问题:(1)“缓存与数据库”需求缘起(2)“淘汰缓存”还是“更新缓存”(3)缓存和数据库的操作时序(4)缓存和数据库架构简析一、需求缘起场景介绍缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。例如对于用户的余额信息表account(uid, money),业务上的需求是:(1)查询用户的余额,SE...

2019-09-28 20:00:45 109 1

转载 主从DB与cache一致性

本文主要讨论这么几个问题:(1)数据库主从延时为何会导致缓存数据不一致(2)优化思路与方案一、需求缘起上一篇《缓存架构设计细节二三事》中有一个小优化点,在只有主库时,通过“串行化”的思路可以解决缓存与数据库中数据不一致。引发大家热烈讨论的点是“在主从同步,读写分离的数据库架构下,有可能出现脏数据入缓存的情况,此时串行化方案不再适用了”,这就是本文要讨论的主题。二、为...

2019-09-28 16:59:32 119

转载 MySQL双主一致性架构优化

一、双主保证高可用MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点。在一个MySQL数据库集群中可以设置两个主库,并设置双向同步,以冗余写库的方式来保证写库的高可用。二、并发引发不一致数据冗余会引发数据的一致性问题,因为数据的同步有一个时间差,并发的写入可能导致数据同步失败,引起数据丢失:如...

2019-09-28 15:58:56 137

转载 DB主从一致性架构优化4种方法

需求缘起大部分互联网的业务都是“读多写少”的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用“一主多从,读写分离,冗余多个读库”的数据库架构来提升数据库的读性能。这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据:(1)系统先对DB-master进行了一个写操作,写主库(2)很短的时间内并发进行了一个读操作,读从库,此时主从同步没有完成,故读取到了一个旧数...

2019-09-28 15:45:03 119

转载 session一致性架构设计实践

一、缘起什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。Web开发中,web-server可以自动为同一个浏览器的访问用户自动创建session,提供数据存储功能。最常见的,会把用户的登录信息、用户信息存储在session中,以保持登录状态。什么是session一致性问题?只要用户不重启浏览器,每次http...

2019-09-28 14:04:19 74

转载 互联网公司为啥不使用mysql分区表?

缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。解决什么问题?回答:当mysql单表的数据库过大时,数据库的访问速度会下降,“数据量大”问题的常见解决方案是“水平切分”...

2019-09-28 13:41:53 82

转载 100亿数据1万属性数据架构设计

对于version + ext方案,还是有很多朋友质疑“线上不可能这么用”。本篇将讲述一下58同城最核心的数据“帖子”的架构实现技术细节,说明不仅不是“不可能这么用”,而是大数据,可变属性,高吞吐场景下的“常用手段”。一、背景描述及业务介绍问:什么是数据库扩展的version + ext方案?使用ext来承载不同业务需求的个性化属性,使用version来标识ext里各个字段的含义...

2019-09-28 13:39:29 104

转载 数据量大的表增加一列属性

需求缘起产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计:user(uid, name, passwd, nick)第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成:user(uid, name, passwd, nick, age, sex)假设数据量和并发量比较大,怎么变?(1)alter table add column?不太可行,锁表时间长...

2019-09-28 13:11:07 1055

转载 MySQL主从延时这么长,要怎么优化?

MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重。为什么主从延时这么大?答:MySQL使用单线程重放RelayLog。应该怎么优化,缩短重放时间?答:多线程并行重放RelayLog可以缩短时间。多线程并行重放RelayLog有什么问题?答:需要考虑如何分割RelayLog,...

2019-09-28 12:30:12 122

转载 一分钟了解四层/七层反向代理

什么是代理?回答:[proxy]代表[访问用户],此时proxy是代理。例如:在家访问xxoo网站,不希望xxoo网站trace到我们的真实ip,于是就找一个proxy,通过proxy来访问,此时proxy代表用户,网站以为proxy的ip就是用户的ip。什么是反向代理?回答:[proxy]代表[被访问的服务器],此时proxy是反向代理。例如:web-server希望对用户屏蔽高可...

2019-09-28 12:28:57 312

转载 lvs为何不能完全替代DNS轮询

一、问题域nginx、lvs、keepalived、f5、DNS轮询,每每提到这些技术,往往讨论的是接入层的这样几个问题:1)可用性:任何一台机器挂了,服务受不受影响2)扩展性:能否通过增加机器,扩充系统的性能3)反向代理+负载均衡:请求是否均匀分摊到后端的操作单元执行二、上面那些名词都是干嘛的由于每个技术人的背景和知识域不同,上面那些名词缩写(运维的同学再熟悉不过了),还是花1分钟简...

2019-09-23 00:13:33 116

转载 究竟啥才是互联网架构“高并发”

一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:​ 系统对请求做出响应的时间。例如系统处理一个HTTP请...

2019-09-22 22:56:28 71

转载 究竟啥才是互联网架构“高可用”

一、什么是高可用高可用HA**(**High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8....

2019-09-22 22:24:29 70

转载 MQ如何快速实现流量削峰填谷

问:站点与服务,服务与服务上下游之间,一般如何通讯?答:有两种常见的方式一种是“直接调用”,通过RPC框架,上游直接调用下游。在某些业务场景之下(具体哪些业务场景,见《到底什么时候该使用MQ?》),可以采用“MQ推送”,上游将消息发给MQ,MQ将消息推送给下游。问:为什么会有流量冲击?答:不管采用“直接调用”还是“MQ推送”,都有一个缺点,下游消息接收方无法控制到达自己的流量,如果调...

2019-09-22 21:17:22 411

转载 到底什么时候该使用MQ?

【典型场景一:数据驱动的任务依赖】什么是任务依赖,举个栗子,互联网公司经常在凌晨进行一些数据统计任务,这些任务之间有一定的依赖关系,比如:1)task3需要使用task2的输出作为输入2)task2需要使用task1的输出作为输入这样的话,tast1, task2, task3之间就有任务依赖关系,必须task1先执行,再task2执行,载task3执行。[外链图片转存失败(img-ih...

2019-09-22 20:45:04 98

转载 转载-10w定时任务,如何高效触发超时

一、缘起很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。例如:58到家APP实时消息通道系统,对每个用户会维护一个APP到服务器的TCP连接,用来实时收发消息,对这个TCP连接,有这样一个需求:“如果连续30s没有请求包(例如登录,消息,keepalive包),服务端就要将这个用户的状态置为离线”。其中,单机TC...

2019-09-22 19:54:50 107

转载 分片架构-粉丝关注,数据冗余

数据冗余,是多对多关系,在数据量大时,数据水平切分的常用实践。如何进行数据冗余接下来的问题转化为,好友中心服务如何来进行数据冗余,常见有三种方法。方法一:服务同步冗余顾名思义,由好友中心服务同步写冗余数据,如上图1-4流程: 业务方调用服务,新增数据 服务先插入T1数据 服务再插入T2数据 服务返回业务方新增数据成功 ...

2019-09-22 17:12:48 246

转载 分片架构实践-基因因子分片

一、用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, login_name, passwd, sex, age, nickname, …)其中: uid为用户ID,主键 login_name, passwd, sex, age, nickname, …等用户属性 数据库设计上,一般来说在业务初期,...

2019-09-22 17:11:03 1001

转载 分片架构-分片方法

转至——架构师之路公众号分片架构什么是分片?答:分片架构是大伙常说的水平切分(sharding)数据库架构: user-service:依旧是用户中心服务 user-db1:水平切分成2份中的第一份 user-db2:水平切分成2份中的第二份 分片后,多个数据库实例也会构成一个数据库集群。水平切分,到底是分库还是分表?答:强烈建议分库,而...

2019-09-22 17:09:07 699

原创 Mysql+Mybatis 批量插入返回主键

大家在做一些功能时,可能会遇见的。当表将主键设置为自增时,很多场景需要insert之后记录的ID,作为其他数据关连的ID。单条记录insert时,只需要添加keyProperty="orderId" useGeneratedKeys="true"<insert id="insertBatchOrder" parameterType="OrderModel" keyProperty="orde...

2018-03-29 22:56:19 2604 2

[2分]windows Redis-3.2.100 下载

这玩意最少都要两分了,真的是坑用户积分!这玩意最少都要两分了,真的是坑用户积分!这玩意最少都要两分了,真的是坑用户积分!

2017-10-17

【免费】Java并发编程的艺术

Java并发编程的艺术 (Java核心技术系列) kindle版电子书,有kindle的赶快下载观看吧 加油~奋斗~努力学习!!

2017-09-21

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版).pdf,完整,

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版).pdf,完整,带书签, 完整版

2017-09-21

Hadoop技术内幕 mobi kindle

Hadoop技术内幕:深入解析MapReduce架构设计与实现原理 kindle版电子书,Kindle在手的赶快下载吧 学习,奋斗!

2017-09-21

[1分]Java编程思想 第四版 中文版.mobi (Kindle电子书格式)

Java编程思想 第四版 中文版 Kindle电子书格式,有kindle的赶快入手吧摘要必须大于100个字节!?/??????

2017-09-17

工行接口需要的commons-httpclient-2.0-rc2.jar

工行提供的jar包,其他commons-httpclient - XXX .jar 会导致Connection is not open

2017-05-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除