51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
WOT技术大会
IT证书
公众号矩阵
移动端
短视频
免费课程
课程排行
直播课
软考学堂
全部课程
厂商认证
IT技术
24年11月软考
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
意见反馈
社区规则
社区活动
默认
发布时间
热度
原创
精华
热门标签
HarmonyOS
HarmonyOS NEXT
Harmony OS NEXT
一个单例还能写出花来吗?(二)
为了看到更详细的内容,我们执行javapcSingleton。通过最终生成的字节码,我们其实发现本质上枚举的初始化通过static代码块来进行初始化。考虑下类加载的几个步骤,加载>验证>准备>解析>初始化,最终初始化就是执行static代码块,而static代码块是绝对线程安全的,只能由JVM来调度,这样保证了线程安全。枚举的实现方式好处还不止于此,除了一目了然的实现简单之外,还能防止其他几种实现方式避免不了的几个问题。再说几种方式...
wg204wg
0回复
4255浏览
Java
男人要慢,SQL要快:记一次慢SQL优化
问题这是一个线上问题,从日志平台查询到的SQL执行情况,该SQL执行的时间为11.146s,可以认定为是一个慢查询,美化后的SQL如下:先找到这个表的定义以及索引情况如下:可见,主要有两个联合索引:status,toaccountid和status,fromaccountid问题分析我们先用explain查看执行计划:先看看explain的含义吧。id:没什么就是ID而已,如果没有子查询的话,通常就一行。selecttype:大致分为简单查询和复杂查询两类,复杂查询又分为简...
wg204wg
0回复
5144浏览
MySQL
为什么数据库字段要使用NOT NULL?(一)
最近刚入职新公司,发现数据库设计有点小问题,数据库字段很多没有NOTNULL,对于强迫症晚期患者来说,简直难以忍受,因此有了这篇文章。基于目前大部分的开发现状来说,我们都会把字段全部设置成NOTNULL并且给默认值的形式。通常,对于默认值一般这样设置:整形,我们一般使用0作为默认值。字符串,默认空字符串时间,可以默认1970010108:00:01,或者默认0000000000:00:00,但是连接参数要添加zeroDateTimeBehaviorconvertToNul...
wg204wg
0回复
4736浏览
Mysql
听说你对explain 很懂?(三)
eqref通常通过主键索引或者唯一索引查询时会看到eqref,它最多只返回一条数据。userid是唯一索引,为了测试就关联以下主键索引。ref也是通过索引查找,但是和eqref不同,ref可能匹配到多条符合条件的数据,比如最左前缀匹配或者不是主键和唯一索引。最简单的办法,随便查一个普通索引就可以看到。fulltext使用FULLTEXT索引refornull和ref类似,但是还要进行一次查询找到NULL的数据。这相当于是对于ISNULL查询的优化,如果表数据...
wg204wg
0回复
4548浏览
explain
Arm多个开源项目从GitHub迁移到GitLab
根据GitLab官网消息,ArmOpenSource已决定将公司的多个开源项目从GitHub迁移到GitLab。GitLab概述了ArmOpenSource选择其平台的重要原因:最大化选择和成本效益,最小化供应商锁定。Arm所创建的软件扮演着赋能件(enablementpieces)的角色,能够在其架构上集成其他软件。目前超过95%的移动设备都采用Arm处理器,而这些开源项目覆盖从传感器到云计算的诸多领域。Arm公司的杰出工程师和软件社区高级主管AndrewWafaa解释说:“就其...
开源news
0回复
6517浏览
开源
github
开源项目
【修正版】QPS、TPS、RT、并发数、吞吐量理解和性能优化深入思考
吞吐量在了解qps、tps、rt、并发数之前,首先我们应该明确一个系统的吞吐量到底代表什么含义,一般来说,系统吞吐量指的是系统的抗压、负载能力,代表一个系统每秒钟能承受的最大用户访问量。一个系统的吞吐量通常由qps(tps)、并发数来决定,每个系统对这两个值都有一个相对极限值,只要某一项达到最大值,系统的吞吐量就上不去了。QPSQueriesPerSecond,每秒查询数,即是每秒能够响应的查询次数,注意这里的查询是指用户发出...
wg204wg
0回复
1.7w浏览
QPS
TPS
RT
面试官:缓存一致性问题怎么解决?| 文末送书
关于Redis的其他的一些面试问题已经写过了,比如常见的缓存穿透、雪崩、击穿、热点的问题,但是还有一个比较麻烦的问题就是如何保证缓存一致性。对于缓存和数据库的操作,主要有以下两种方式。先删缓存,再更新数据库先删除缓存,数据库还没有更新成功,此时如果读取缓存,缓存不存在,去数据库中读取到的是旧值,缓存不一致发生。解决方案延时双删延时双删的方案的思路是,为了避免更新数据库的时候,其他线程从缓存中读取不到...
wg204wg
0回复
1.3w浏览
Redis
《我想进大厂》之分布式事务篇(二)
SAGASaga源于1987年普林斯顿大学的Hecto和Kenneth发表的如何处理longlivedtransaction(长活事务)论文。主要思想就是将长事务拆分成多个本地短事务。如果全部执行成功,就正常完成了,反之,则会按照相反的顺序依次调用补偿。SAGA模式有两种恢复策略:向前恢复,这个模式偏向于一定要成功的场景,失败则会进行重试向后恢复,也就是发生异常的子事务依次回滚补偿由于这个模式在国内基本没看见有谁用的,不在赘述。消息队列基于...
wg204wg
0回复
5846浏览
事务
修正版 | 面对千万级、亿级流量怎么处理?(二)
消息队列对于MQ的作用大家都应该很了解了,削峰填谷、解耦。依赖消息队列,同步转异步的方式,可以降低微服务之间的耦合。对于一些不需要同步执行的接口,可以通过引入消息队列的方式异步执行以提高接口响应时间。比如在交易完成之后需要扣库存,然后可能需要给会员发放积分,本质上,发积分的动作应该属于履约服务,对实时性的要求也不高,我们只要保证最终一致性也就是能履约成功就行了。对于这种同类性质的请求就可以走MQ异...
wg204wg
0回复
5925浏览
流量
阿里二面:什么是mmap?(一)
平时在面试中你肯定会经常碰见的问题就是:RocketMQ为什么快?Kafka为什么快?什么是mmap?这一类的问题都逃不过的一个点就是零拷贝,虽然还有一些其他的原因,但是今天我们的话题主要就是零拷贝。传统IO在开始谈零拷贝之前,首先要对传统的IO方式有一个概念。基于传统的IO方式,底层实际上通过调用read()和write()来实现。通过read()把数据从硬盘读取到内核缓冲区,再复制到用户缓冲区;然后再通过write()写入到socket缓冲区,...
wg204wg
0回复
5127浏览
mmap
修正版 | QPS过万,Redis大量连接超时怎么解决?
之前负责的一个服务总是在高峰时刻和压测发生大量的redis连接超时的异常redis.clients.jedis.exceptions.JedisConnectionException,根据原有的业务规则,首先会从数据库查询,然后缓存到redis中,超时时间设置为3分钟。并且由于业务的特性,本身未做降级、限流等处理措施,而在巅峰的QPS基本上快达到20000的样子,虽然这个现象只是单纯的一个异常,并不会导致整个主链路的流程不可用,但是我们还是要找出问题的原因并且解决。...
wg204wg
0回复
5081浏览
Redis
阿里二面:什么是mmap?(二)
sendfile相比mmap来说,sendfile同样减少了一次CPU拷贝,而且还减少了2次上下文切换。sendfile是Linux2.1内核版本后引入的一个系统调用函数,通过使用sendfile数据可以直接在内核空间进行传输,因此避免了用户空间和内核空间的拷贝,同时由于使用sendfile替代了read+write从而节省了一次系统调用,也就是2次上下文切换。整个过程发生了2次用户态和内核态的上下文切换和3次拷贝,具体流程如下:用户进程通过sendfile()方法向操作...
wg204wg
0回复
5525浏览
mmap
《我想进大厂》之Zookeeper夺命连环9问(二)
那选举之后又是怎样进行数据同步的?那实际上Zookeeper在选举之后,Follower和Observer(统称为Learner)就会去向Leader注册,然后就会开始数据同步的过程。数据同步包含3个主要值和4种形式。PeerLastZxid:Learner服务器最后处理的ZXIDminCommittedLog:Leader提议缓存队列中最小ZXIDmaxCommittedLog:Leader提议缓存队列中最大ZXID直接差异化同步DIFF同步如果PeerLastZxid在minCommittedLog和maxCommittedLog之间,那么则说明...
wg204wg
0回复
5491浏览
Zookeeper
真实字节二面:什么是伪共享?
这个问题来自最近一个朋友字节面试碰到的,最后他也成功拿到了字节offer,这个问题我想可能挺多人不太清楚,所以想拿出来单独说一说。好了,让我们进入正题。什么是伪共享首先大家都知道,随着CPU和内存的发展速度差异的问题,导致CPU的速度远远快于内存,所以一般现在的CPU都加入了高速缓存,就是常说的解决不同硬件之间的性能差异问题。这样的话,很简单的道理,加入了缓存,就必然会导致缓存一致性的问题,由此,又引入了缓...
wg204wg
0回复
4906浏览
伪共享
不管卷不卷,面试还是得问问你G1原理!
所有的垃圾回收器的目的都是朝着减少STW的目的而前进,G1(GarbageFirst)回收器的出现颠覆了之前版本CMS、Parallel等垃圾回收器的分代收集方式,从2004年Sun发布第一篇关于G1的论文后,直到2012年JDK7发布更新版本,花了将近10年的时间G1才达到商用的程度,而到JDK9发布之后,G1成为了默认的垃圾回收器,CMS也变相地相当于被淘汰了。G1结构G1抛弃了之前的分代收集的方式,面向整个堆内存进行回收,把内存划分为多个大小相等的独...
wg204wg
0回复
5406浏览
G1
我摊牌了,大厂面试Linux就这5个问题(一)
说真的,这就是《我想进大厂》系列第八篇,但是Linux的问题确实很少,就这样,强行编几个没有营养的问题也没啥意义。1.CPU负载和CPU利用率的区别是什么?首先,我们可以通过uptime,w或者top命令看到CPU的平均负载。LoadAverage:负载的3个数字,比如上图的4.86,5.28,5.00,分别代表系统在过去的1分钟,5分钟,15分钟内的系统平均负载。他代表的是当前系统正在运行的和处于等待运行的进程数之和。也指的是处于可运行状态和不...
wg204wg
0回复
5066浏览
Linux
修正版 | 面对千万级、亿级流量怎么处理?(三)
水平分表首先根据业务场景来决定使用什么字段作为分表字段(shardingkey),比如我们现在日订单1000万,我们大部分的场景来源于C端,我们可以用userid作为shardingkey,数据查询支持到最近3个月的订单,超过3个月的做归档处理,那么3个月的数据量就是9亿,可以分1024张表,每张表的数据大概就在100万左右。比如用户id为100,那我们都经过hash(100),然后对1024取模,就可以落到对应的表上了。分表后的ID唯一性因为我们主键默认都...
wg204wg
0回复
4830浏览
流量
没人告诉过你更复杂的缓存穿透怎么解决
你应该从网上看过太多的文章说缓存穿透怎么解决?无非就是布隆过滤器,缓存空值什么的。但是,更深入的一个问题,缓存空值有没有问题?如果缓存的空值太多怎么办?如果用的redis,那么太多的空值会不会打爆你的redis?如果用的本地缓存,会不会打爆你的内存?继而引发的问题就是还是会打爆你的数据库。从线上问题说起前不久,我们线上环境压测,在QPS压倒2W之后RT达到了几十秒,排查后发现是redis的连接数不够导致大量的连接超...
wg204wg
0回复
4782浏览
redis
修正版 | 面对千万级、亿级流量怎么处理?(一)
这是一道很常见的面试题,但是大多数人并不知道怎么回答,这种问题其实可以有很多形式的提问方式,你一定见过而且感觉无从下手:面对业务急剧增长你怎么处理?业务量增长10倍、100倍怎么处理?你们系统怎么支撑高并发的?怎么设计一个高并发系统?高并发系统都有什么特点?......诸如此类,问法很多,但是面试这种类型的问题,看着很难无处下手,但是我们可以有一个常规的思路去回答,就是围绕支撑高并发的业务场景怎么设计系统...
wg204wg
0回复
4850浏览
流量
《我想进大厂》之网络篇夺命连环12问(二)
说下浏览器请求一个网址的过程?首先通过DNS服务器把域名解析成IP地址,通过IP和子网掩码判断是否属于同一个子网构造应用层请求http报文,传输层添加TCPUDP头部,网络层添加IP头部,数据链路层添加以太网协议头部数据经过路由器、交换机转发,最终达到目标服务器,目标服务器同样解析数据,最终拿到http报文,按照对应的程序的逻辑响应回去。知道HTTPS的工作原理吗?用户通过浏览器请求https网站,服务器收到请求,选择浏览器支...
wg204wg
0回复
4883浏览
TCP/IP
暂无内容
1
127
128
129
130
131
132
133
134
135
151
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅