架构师之路

其他

CAS下的ABA问题及优化方案!技术交流,没必要张口闭口就...(第44讲)

《架构师之路:架构设计中的100个知识点》44.ABA问题《库存扣减异常怎么办?(41)》采用CAS思想,两行代码解决并发扣减异常。有童鞋留言:那ABA问题呢?今天和大家聊聊CAS下的ABA问题。前文回顾:如何巧用CAS机制,1行代码搞定并发导致的库存异常问题?将库存设置接口执行的:update
2025年3月11日
其他

巧用CAS,一分钟实现分布式ID生成器!(第43讲)

《架构师之路:架构设计中的100个知识点》43.CAS应用案例《库存扣减异常怎么办?(41)》采用CAS思想,两行代码解决并发扣减异常。《redis解决库存并发扣减异常问题?(42)》采用CAS思想,借助redis解决并发扣减异常。有童鞋留言,CAS还有其他应有场景吗?场景很多,今天分享一个巧用CAS实现分布式全局唯一ID生成的场景。如何快速生成全局唯一ID?可以借助DB自增键(auto
2025年3月10日
其他

有柳岩问:高并发库存扣减一致性问题,怎么用redis解决?(第42讲)

“先查后设,有条件的设”,CAS优化,解决并发问题;有留言说:可以用redis优化。redis方案是可以的,今天简单展开说说。redis一般如何操作库存?一般在redis客户端执行:$num
2025年3月6日
其他

系统重试,导致库存扣多啦,怎么办(两行代码破解)?(第41讲)

系统并发,导致库存设置错误;今天和大家聊一聊库存扣减里的方案设计。库存微服务一般提供什么接口?提供库存的查询、扣减、设置等RPC接口:1.
2025年3月5日
其他

保证session一致性究的5种方法!(第40讲)

《架构师之路:架构设计中的100个知识点》40.session一致性今天系统性和大家聊一聊session一致性。什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。
2025年3月4日
其他

第三方接口挂掉,我们的服务怎么能不背锅?(第39讲)

《架构师之路:架构设计中的100个知识点》39.跨公网调用优化第三方接口挂掉,你们的服务会受影响么?架构要如何优化,才能避免背这口锅呢?业务需要跨公网调用一个第三方服务提供的接口,为了避免每个调用方都依赖于第三方服务,往往会抽象一个边界服务:1.
2025年3月3日
其他

从“配置私藏”到“配置中心”,你到了哪个阶段?(第38讲)

《架构师之路:架构设计中的100个知识点》38.配置架构演进一、缘起随着业务越来越复杂,用户量与流量越来越大,“服务化分层”是架构演进的必由之路,此时:1.
2025年2月28日
其他

1743天,299万...

不知不觉,架构师之路视频号,从20年内测开始,到现在已经和大家一起走过了1743天。平台年终总结,2024年度的优秀创作者,在2024年里:
2025年2月24日
其他

是我们不如人家吗?中国和美国程序员的差距究竟在哪里?(一条360W阅读的帖子)

有朋友在评论区问我:全球开源软件排行里,为什么鲜有中国软件的影子?我们真的做不出来好的开源产品吗?有个近360W+阅读的帖子,讨论过这个话题。其中一个回答获得了近1W赞同,我看过之后,感慨万千。目前中国程序员和美国程序员的差距在哪里?https://www.zhihu.com/question/20941966回复者:老炮说Java1W赞同我在美国工作过两年,回国经历了逆文化冲击,现在勉强算是适应了国内互联网公司的节奏。随便聊聊,没有崇洋媚外的意图,只是刚好最近被剥削得很不爽,趁机吐槽一下下。1.年龄美国公司:同事里20多到70多岁的都有,众数是三四十的中年人,大部分工作目标都是为了早日退休,攒够钱就随时办退休party。也有些纯粹因为热爱工作、热爱写代码选择不退休的。我们组的核心成员之一,是位72岁的老头,他每天4点多起床到公司写一会儿代码,等天全亮就戴上头盔去骑山地车锻炼,9点多回公司继续工作。对这老头印象深刻,是因为他逻辑清晰、思锐利,他是code
2025年2月19日
其他

架构师之路,24年干货精选(收藏起来慢慢看)

2024年,迅猛过去了。今天,给大家做一个分类精选,选取24年发布的,质量还不错的一些文章,点击标题,直接阅读。特别是开辟第二曲线赚美刀的那篇,能消除信息差。【规范相关】《阿里巴巴MySQL规范,全量版》1.6W+《阿里巴巴日志与异常强制规范,Java篇》1.1W+强烈建议玩MySQL,玩Java的同学收藏。【架构相关】《网易云音乐崩了,据说和机房迁移存储方案有关...》1.5W+多机房多活架构,文章很长。《1亿数据量MySQL,如何实现秒级扩容?》1W+数据库架构,曾在58的数据库实践。《“三大分离”的架构设计(5000字)》创业公司早期性能优化。《REST之父,为了晋升答辩,搞了一个HATEOAS架构?》1.3W+REST之父搞的前端架构。《事务提交之前,数据库到底刷不刷盘?》《数据库预写日志WAL的核心思路》《数据库数据恢复算法,万变不离其宗》数据库内核原理的,三篇算是一个系列。【github项目推荐】两个中文项目:《github标星17W,前20唯一中文神项目》7.3W+《github标星28K,国人的骄傲》2.4W+技术学习项目:《github标星32W的宝藏项目》3W+《github标星31W神项目,架构师赶紧收藏》4W+《github标星28W神项目,技术人学习》2.8W+MySQL学习项目:《当年学MySQL,有这个项目就好了...》1.2W+《数据库架构github项目,3小时学完!》设计模式学习项目:《github小众神项目,给人学的23个设计模式》1.8W+【行业调研】我自己的调研:《后端研发工程师的薪水,深度解密》2.9W+《架构师的薪水真的不高,首次揭秘》1.1W+stackoverflow全球调研:《薪酬调研:程序员薪酬大揭秘》1.5W+《数据库调研:PostgreSQL超越MySQL》2.3W+《技术栈调研:什么技术栈最流行》6.5W+《程序员失业调研:美国印度居然比咱们更惨》3.8W+【职场心态】《为什么我愿意来北上广打拼?》《别做被大公司毁掉的年轻人》《我被大公司废掉的那5年...》3.1W+【知乎讨论】《为什么程序员的社会地位不高?》5.4W+《中国和美国程序员的差距究竟在哪里?》2.5W+《程序员能纯靠技术度过中年危机吗?》3.9W+《程序员意识到这一点,说明成熟了...》2.1W+《程序员最值得学习的语言是哪个》2.8W+【一个赚美刀的方法】《技术人,如何轻松赚美刀?(可以不用,但最好知道)》2.2W+【10W+】今年公众号流量下滑很严重,只有一篇10W+。大家觉得,为什么这一篇能10W呢?《中国程序员最大的悲哀!(1100W+阅读)》22W+【近几年系列作品】20年,架构系列(已完结):《架构师定会遇到的80个经典架构问题!》21年,架构系列(已完结):《关于即时通讯架构的一切!》24年,职场发展系列(已暂停):《涨薪400%,技术人这条路,到底有没有前途?》《别人的职业生涯,到底能不能复制?》反响不太好,写了2篇中断了。24年,架构系列(进行中,暂定100讲):《架构设计中的100个知识点》25年,AI系列(进行中,暂定20讲)《deepseek原理+应用+实践》已发布5讲,25年会完结。2025年,内容的重心会放在未完结的三个系列:职场系列,架构系列,AI系列。内容形式计划更加丰富:图文+短视频+直播+星球社群。2024,我很充实,希望你也一样!宝藏号,日更,欢迎置顶。一键三连,感谢。
2025年2月15日
其他

第5篇10W+,视频号的...

视频号的第5篇10W+,挺开心的。非常感恩,毕竟自己不太懂拍摄剪辑,不太懂运营套路,长得还不好看。只有一个架构师而已。《架构设计中的100个知识点》是我在24年启动的,第3个系列的架构类合集,主要以:1.
2025年1月23日
其他

平台突然涌入几亿外国人,架构要怎么改造?(第37讲)

《架构师之路:架构设计中的100个知识点》37.单元化多机房多活我去面试一个架构师岗位。面试官:我们平台突然涌入几亿外国人,架构要怎么改造?我:你们平台现在是什么架构?面试官:单机房架构。我:单机房架构,它最大的特点就是“全连接”分层架构。首先,系统架构是分层的:1.
2025年1月22日
其他

微信放大招,公众号AI智能体时代开启(这下要被撩拨了)...

昨天收到内测邀请,体验公众号AI智能回复功能。AI会学习历史发表文章,模仿号主风格,对用户的提问进行回复。我简单体验了一下。先随便问了一个问题:1.
2025年1月21日
自由知乎 自由微博
其他

全球首位AI程序员Devin的诞生,对于程序员的影响到底多大?(朋友,你怎么看?)

boy们,你们要小心了。因为CURD这种事儿,从来不是程序员的竞争核心能力,一直是用复制粘贴来完成工作的,AI的不断进化,无疑会提高CURD效率,最终导致CURD
2025年1月18日
其他

如果Kimi抄我的内容,能告它侵权吗?

前几天发了一条《uid分库,uname怎么查询》:有水友在评论区留言:相同的问题,问了下Kimi,怎么回答是类似的,莫不是...好奇心驱使,我也去试了一下。果不其然:1.
2025年1月17日
其他

如何发现架构中的耦合(5大场景)?(第36讲)

《架构师之路:架构设计中的100个知识点》36.耦合,解耦如何发现系统架构中的耦合?答:架构痛点是别人,被动修改配合方却是你。这是一个架构设计上“反向依赖”的问题,这就是典型的耦合特征。如果系统架构中经常出这类情况,往往架构上就有解耦优化的空间。案例一:公共库耦合。如上图所示,三个服务s123,通过一个公共的库biz.jar来实现一段业务逻辑,s123其实间接通过公共库耦合在了一起,一个业务s1主动修改一块公共的代码,导致影响s23被动受影响,这种耦合不合理。那怎么解耦呢?答:业务垂直拆分。公共库中应该是通用代码,不应该实现个性化很强的业务逻辑。可以将biz.jar拆分为biz1.jar/biz2.jar/biz3.jar,个性化的业务逻辑各回各家,来对s12s3进行解耦。这样的话,任何业务的改动,影响范围只是自己,不会影响其他人。案例二:通信机制不当耦合。什么是通信机制不当?有一类业务场景,消息发送方不关注消息接收方的执行结果,如果采用RPC调用的方式来通信,会导致系统上下游耦合。
2025年1月16日
其他

小红书的产品经理,麻烦您进来看一下...

【缘起】前段时间,小红书的官方创作者发现官加我微信,邀请我入驻小红书。我心里想着多发布一个渠道也不麻烦,于是应承下来参与了这个“曙光起航”。运营的童鞋也非常耐心,一步步教我怎么报名以获得流量扶持。大概一个月的时间,发布了20多条视频,遇到了不少问题,平台QA找不到答案,咨询创作者发现官也无法解决,我相信很多创作者应该也会遇到,在此咨询一下小红书的产品经理。【问题一】第6条视频《CAP为啥优先P,分区容忍到底容忍的是啥?》,系统通知违规,违规原因是:你的笔记可能包含违规内容。我一脸蒙圈,自己又看了一遍视频,似乎没问题呀,难道CAP(帽子叔叔)是平台关键词?无论如何,视频被平台处理:你的笔记已经不可被他人查看。我心想,平台提示是“你的笔记可能包含违规内容”,那就是平台也不确认,于是选择了申诉。平台处理还挺快,第二天就申诉成功。我尝试着拆解了一下这里的产品策略与流程:1.
2025年1月15日
其他

uid分库,uname究竟怎么查询(5种方法)?(第35讲)

《架构师之路:架构设计中的100个知识点》35.uid分库,uname怎么查询用户中心是每一个公司必备的基础服务,用户注册、登录、信息查询与修改都离不开用户中心。当用户中心单库数据量越来越大时,怎么办?单库存不下,水平切分,用多库。用什么业务属性水平切分?主键uid。如何进行数据路由?uid取模直接路由,例如:如上图所示,假设访问uid=124的数据,取模后能够直接路由db1。那对于登录名uname上的查询怎么办?方案一:扫全库法。如上图所示,假设访问uname=shenjian的数据,由于不知道数据落在哪个库上,往往需要遍历所有库。其潜在不足是:当分库数量多起来,性能会显著降低。还有没有其他更加高效的方法呢?常见的方案有以下几种。方案二:索引表法。其设计思路是:uid能直接路由到库,uname不能直接路由到库,如果通过uname能查询到uid,则问题解决。其具体步骤是:1.
2025年1月14日
其他

如何最小改变架构,快速实现流控的?(第34讲)

《架构师之路:架构设计中的100个知识点》34.快速流控传统架构,为何不是默认流控的?站点与服务,服务与服务上下游之间,一般如何采用两种通讯模式:其一,RPC直接调用。其二,MQ推送模式。画外音:这也是MQ的默认模式。这两种模式,都可能造成流量冲击:流量从端到站点,到服务,到数据库,流量会一路透传下来,引发雪崩。举个秒杀业务的栗子。1.
2025年1月13日
其他

那些“不合理”的需求,就是这个世界的一部分...

快过年了,大伙图个乐吧。知乎上4400W+阅读,最后一个回答看似戏谑,背后的真相却...主题:你碰到过最奇葩的需求是怎样的?https://www.zhihu.com/question/270783764【回答1:1900+赞同】甲方:凭啥不能在微信小程序中支付宝支付?【回答2:2200+赞同】甲方:这个功能有问题吧,和我想的不一样呀。我:我们排查过,浏览器不支持。甲方:浏览器是谁做的。我:谷歌。甲方:谷哥是谁,把他给我叫过来!【回答3:1300+赞同】甲方:我要做个真心交友的app,拒绝饭托、酒托!上面的人信息一定要真实!甲方:首先,加好友要一块钱,接受好友也要一块钱!女生可以不付钱,都让男生付!我:加好友还要钱?甲方:当然!你连一块钱都不肯出你还玩什么玩,肯定是骗子!甲方:还有,在我们平台上组织活动,报名要先交押金到我们平台,活动结束才退。如果有人举报你,你的押金就被其他人平分了。为了保证及时性,我们会雇佣客服24小时在线……我:原型图里好像还有随机视频通话?甲方:对,tiki你用过吗?就是抄那个!调用第三方,应该不难!我:额,有第三方的话应该不难吧……甲方:你们再加一个功能,就是视频的时候加上猫耳朵兔子耳朵墨镜什么的,跟着你脸一起动的那种,这个开发起来应该很容易。我:额......甲方:还有就是登陆,手机邮箱微信QQ豆瓣淘宝支付宝知乎我都要接,这样登陆方便......
2025年1月8日
其他

MQ如何实现,消息幂等(MQ真的不能再背锅了)?(第33讲)

有了这个inner-msg-id,就能保证上半场重发,也只有1条消息落到MQ-server的DB中,实现上半场幂等。下半场,如何做到幂等?MQ消息投递下半场,流程见上图456:4.
2025年1月7日
其他

MQ如何实现,消息必达到?(第32讲)

msg)SendCallback()蓝色MQ核心集群由MQ-server,zk,db,管理后台web等一系列子系统组成。黄色接收方也由两部分构成:1.
2025年1月6日
其他

弄懂《算法导论》,超过90%的人,也没什么好骄傲的...

有个小伙伴留言:沈老师,听说算法很重要,有人说弄懂了《算法导论》的90%,就超过了90%的程序员,是真的吗?最后一个高赞回答,直戳人心...主题:弄懂《算法导论》的
2025年1月5日
其他

又一篇10W+,感恩...

视频号又出了一篇10W+。这是视频号出的第四篇10W+,挺开心的。第一篇10W+,聊人生的。第二篇10W+,聊股市的。第三篇10W+,聊技术的,但都是骂我的。画外音:详见《又一篇10W+,但都是骂我的...》。有时候仔细想,一个不懂拍摄剪辑,不懂运营套路,长得还不好看的技术人,也能偶尔一篇10W+,真是挺感恩的。这一篇也快10W+了,大家帮忙三连一下。很幸运,讲技术也能出10W+。感谢大家的支持!推荐阅读:《github标星17.5W,榜单前20唯一中文神项目》《技术人如何轻松赚美刀?(可以不用,但得知道)》《如何管理1000w+延时任务?(第31讲)》
2025年1月4日
其他

这次AI革命,只可能大爆发于中国!

有个小伙伴留言:之前两拨区块链,元宇宙感觉中国都没有跟上节奏,这一波AI革命,中国跟上了吗?这个话题曾在网上讨论过,1300W+阅读,比较一致的认为咱们会在这一轮AI革命中胜出。除了最后一个,看似戏谑搞笑的回答...主题:中国跟上这轮AI革命了吗?https://www.zhihu.com/question/648487085【回答1:1800+赞同】跟不上,永远也跟不上。因为中国一旦跟上了,风口立刻就会改变,以确保中国永远也跟不上。【回答2:2700+赞同】我看了一百多个回答,凡是认为东大落后的,大部分都从制度等方面论述,还有人在哪答非所问,更有甚者认为东大就是不行...凡是认为东大处于是世界第一梯队,大部分都从现实的例子来论述,比如可灵,比如华为的昇腾芯片...我是这么看的:震惊!某大国的知名大学被爆抄袭。最开始死不承认,最后道歉删库跑路。你猜是哪个学校?竟然是斯坦福!【回答3:6800+赞同】跟上没跟上不知道,但希望不要成为漂亮国那个鬼样子。【回答4:1250+赞同】你就记住一件事就行了:人类真正能应用的技术革命只会诞生于工业规模最大的国家。第一次工业革命首先诞生于英国。第二次工业革命则几乎同时发生在几个先进国家。第三次工业革命则是集中爆发在美国。这都不是巧合,都是工业规模在合适时间的量变产生质变,没有足够工业规模的产业革命等于无根之木。所以,从来不存在中国是否能追上AI革命,而是AI革命或者真正的第四次工业革命只可能诞生或者集中爆发于中国。【回答5:900+赞同】你要看中国某一项高新技术,有没有跟上或者超越世界步伐,需要观察美国有没有制裁这个行业就行了。如果美国没有制裁,反而放心的向我们出口,那么,哦,我们还有一定差距。一旦发现美国制裁这个行业了,那么,别怀疑,我们就算没超越,也离超越不远了。所以你说,我们的AI技术有没有跟上国际先进水平?【回答6:5900+赞同】借用一张对比图,也不知道跟没跟上:究竟是,人的差距,技术的差距,算力的差距,还是...==全文完==近期更新:《github标星28K中文项目,国人的骄傲》《如何高效管理1000w+延时任务?(第31讲)》这个问题,你怎么看?
2025年1月3日
其他

架构师如何高效管理1000w+延时任务???(第31讲)

《架构师之路:架构设计中的100个知识点》31.海量延时任务管理什么场景会用到海量延时任务?例如:每天1000W订单,PM要求24小时自动5星好评,就可以用延时任务来进行处理。一般如何怎么实现这类需求?最容易想到的:启动一个定时任务,每小时跑一次,将完成时间超过24小时的未评价订单取出,自动评为5星。这个方法有什么缺点?时效性不够好,如果每小时跑一次定时任务,最差的情况下,时间误差会达到1小时。画外音:当然,对于24小时自动好评的场景,1个小时的误差业务可以接受。缩短定时任务执行周期,例如每秒一次,能解决时效性的问题吗?时效性能解决,但效率更低了:1秒钟搜索一次全量数据,却只捞出少量(几百个)符合要求的订单。有什么高效解决延时任务的方法吗?时间轮。时间轮的基础结构如何?1.
2025年1月2日
其他

架构师如何高效管理100w+定时事件???(第30讲)

《架构师之路:架构设计中的100个知识点》30.海量定时事件管理什么场景会用到海量定时事件?例如:有100W个用户uid在线接单,客户端每30s会有一个存活上报,如果30s没有上报,服务端要将用户的状态置为不可接单。一般如何怎么实现这类需求?大体来说,有三类方法:方案一:轮询扫描法。1.
2025年1月1日
其他

程序员,当你意识到这一点,说明你成熟了...

搞好人际关系在哪里都重要,没有哪里真正不需要处理人际关系,包括国企民企、国内国外,如果真碰到了不用处理人际关系的“理想"环境,这种环境中的自己一般是可以随时被代替的螺丝钉。5.
2024年12月31日
其他

程序员到架构师,定会遇到的80个经典架构问题!

过去15年,从百度,到58,到快狗打车,一直在互联网公司做架构设计。花了2年的时间,将自己15年的架构经验沉淀了下来。口罩期间,录制了大专栏《流量从10万到10亿,一定会遇到的80个架构问题》,讲述流量增长过程中,架构师将要面临的典型场景,会遇到什么架构问题,如何思考这些问题,如何解决这些问题。多年苦练的武功,算是对自己15年架构师生涯的一个交代。《大专栏》包含什么具体内容呢?10多章,50多节,几百个架构知识点,大纲如下。第0章,前言(1)写给,有志于成为架构师的工程师,开篇的话第1章,技术选型(2)创业初期,技术如何选型?(3)要不要自研,什么时候自研?(4)容量设计,架构师的基本功(5)伪分布式架构,快速扩容的必备方案第2章,接入层架构(6)反向代理与接入层扩容(7)DNS轮询,接入层架构演进(8)session一致性,N种架构方案(9)CDN就近访问,这次彻底懂了(10)TCP接入,架构设计第3章,快速性能优化(11)动静分离,快速优化利器?(12)读写分离,前台后台分离?(13)百万级流量,架构该怎么玩?第4章,微服务架构(14)为什么要实施,微服务架构?(15)微服务粒度,是不是越细越好?(16)高可用,一次搞定(17)高性能,一次搞定(18)负载均衡,一次搞定(19)连接池,微服务的关键(上)(20)连接池,微服务的关键(下)第5章,数据库架构(21)读性能,究竟如何提升?(22)垂直拆分,到底怎么实施?(23)主从一致性,究竟如何解决?(24)水平拆分,怎么做到无限容量?(25)扩展性,如何平滑迁移与扩容?(26)数据库如何秒级扩容?第6章,缓存架构(27)进程内缓存,究竟怎么玩?(28)缓存,你真的用对了吗?(29)Cache
2024年12月28日
其他

Google如何能搜出1分钟之前的新闻???(第29讲)

《架构师之路:架构设计中的100个知识点》29.实时搜索引擎技术网页数据量如此庞大,网上新闻更新如此之快,google为什么能搜出1分钟之前新闻?答:google使用了实时搜索引擎技术。首先,为了保证海量数据的检索效率,google并不会实时修改全量索引库,全量索引库是只读的。既然全量索引是只读的,如何检索出最新的网页呢?这里面有两个架构设计核心:其一,索引分级;其二,dump&merge;什么是索引分级?将索引分为全量索引库、日增量索引库、小时增量索引库:1.
2024年12月27日
其他

中国程序员前景一片灰暗?其实,全世界都差不多...

有个小伙伴留言:程序员找工作太难啦,感觉中国程序员现在前景一片黑暗,是这样吗?这个话题全网讨论1300W+阅读,分享给你,希望朋友早日振作起来。主题:中国程序员前景一片灰暗,是这样吗?https://www.zhihu.com/question/389889237【回答1:1000+赞同】你觉得哪个职业好混呢?我不知道。但是我知道,每个行业都有混的好的,也有混不好的。你戴着什么颜色的眼镜看这个世界,这个世界就是什么颜色的。只要喜欢这个职业,认为自己适合这个职业,你看到的就是光明。喜欢的职业,会奋不顾身投入,哪怕大家都说灰暗也要进去寻找光明。不喜欢的职业,总在外围犹豫彷徨,试图发现更多的灰暗好说服自己离开。【回答2:1900+赞同】把github停掉,全世界的程序员还能多活10年。全世界的程序员在github上卷生卷死,被别人一忽悠什么共享、创新,弄个简单的开源协议,利润被互联网巨头和云服务商们拿走,然后一群普通程序员现实里被裁员快饿死了。有公司开源最新的药品配方和制造工艺吗?有公司开源高级合金的配比和制造工艺吗?有公司开源光刻胶的化学成分和制造流程吗?英伟达开源H100的设计图纸吗?...开源对于一部分程序员来说,是时代的红利。但是对于程序员整个群体来说,是工程经验和技术经验的通货膨胀。【回答3:1400+赞同】程序员的薪资在所有行业当中,是能排名前2的,另外一个就是金融。很多进入这行就是因为钱多,写代码也确实赚钱,但是什么东西都是双向的,有收获就有付出:经常加班熬夜,学不完的框架数据结构底层知识,倒了一家又一家的公司...做程序员肯定是有前途的,自己要做好持之以恒的准备,晚上周末有时间要多学习,另外就是一定要去大厂,名气越大越好。对你的职业前途有大大的好处。最后不要人云亦云,相信自己即可!【回答4:2400+赞同】70%以上的程序员年包在10W+,这都前景灰暗,那其他行业岂不是...
2024年12月26日
其他

数据库如何实施垂直拆分,原理是啥???(第28讲)

《架构师之路:架构设计中的100个知识点》28.数据库垂直拆分当数据库的数据量非常大时,水平切分和垂直拆分都降低数据量大小,提升数据库性能,有什么差别?水平切分是指,以某个字段为依据(例如uid),按照一定规则(例如取模),将一个库(表)上的数据拆分到多个库(表)上,以降低单库(表)大小,达到提升性能的目的的数据库架构设计方法。水平切分后,各个库(表)的特点是:1.
2024年12月25日
其他

MySQL如何在线扩展表结构,内核原理??(第27讲)

《架构师之路:架构设计中的100个知识点》27.MySQL在线扩展表结构一个海量数据高并发的业务场景,产品经理前期没想清楚,现在想要增加业务属性,MySQL要扩展表结构,有什么办法吗?方案一:alter
2024年12月24日
其他

我怎么知道自己适不适合做程序员?(很严肃)

有个近乎抑郁的小伙伴,给我留言:怎么知道自己喜不喜欢编程?适不适合编程?众人的智慧,全网400W+阅读,分享给你。主题:如何确定自己是否适合做程序员?https://www.zhihu.com/question/35256075【回答1】子:「爸,我想当程序员。」父:「哦,那你先买40公斤面粉来!」子:「啊?为什么?我一个人怎么搬?」父:「自己想办法。20分钟之内搞定!」子:「时间也太短了吧!」父:「还有,不要面粉了。要低筋粉。还剩5分钟。」子:「要求变太多了吧!」父:「儿啊,我看你当不了程序员。」
2024年12月23日
其他

关于即时通讯架构的一切!

自己职业生涯前10年,都在做即时通讯。口罩期期间,花了一年的时间,将自己10年即时通讯架构积累沉淀下来。21年又花了半年的时间,录制了一个视频专栏《关于即时通讯架构的一切》。多年苦练的武功,算是对自己职业生涯前10年的一个交代。《关于即时通讯架构的一切》内容如何?架构有很多相通的地方,高性能,高可用,扩展性,一致性,架构问题解决思路......
2024年12月21日
其他

如何1分钟实现一个分布式锁?(第26讲)

《架构师之路:架构设计中的100个知识点》26.互斥的内核,分布式锁什么时候要做互斥?多个访问方,对同一个资源进行操作,要做互斥。实现互斥的核心是什么?需要利用一个多个访问方【同时】能够访问到的【锁资源】来实施互斥的。案例1:同一个进程内,多个线程,怎么做互斥?典型场景:生产者消费者对同一个queue进行操作。如上图所示,在同一个进程空间内,设定一个所有线程都能够访问到的flag,或者锁变量,就能实施互斥。大家一起抢锁变量,抢到的线程操作队列,操作完之后释放锁变量。案例2:同一台机器上,多个进程,怎么做互斥?典型场景:手机上多个APP对同一个日志文件进行写入。如上图所示,在同一台机器上,设定一个所有进程都能够访问到的锁资源,就能实施互斥。更具体来说,机器上文件系统里inode锁。大家一起抢inode锁,抢到的进程获得文件的操作权,操作完之后释放inode锁。案例3:多台机器的分布式环境下,多个进程,怎么做互斥?典型场景:多个微服务对同一个资源进行操作。如上图所示,在分布式环境下,设定一个所有微服务都能够访问到的锁资源,就能实施互斥。比如,可以setnx一个redis中key值,哪个微服务设置成功,就获得资源的操作权,操作完之后释放key值,让其他微服务再来抢。这,就是一个最简单的分布式锁。总结1.
2024年12月20日
其他

超经典,网页判重核心技术!(第25讲)

《架构师之路:架构设计中的100个知识点》25.网页判重核心技术,LSH,minhash,分句如何快速判断,1个网页是否属于1亿个网页中的重复网页?答:预处理,每个网页用一个hash签名代替。问题就转化为,判断1个hash签名是否属于某个hash签名集合,复杂度就大大降低了。有些网页,99%的内容一样,1%的内容不同(例如html标签),业务上也必须判断为相同的网页,此时要怎么办?hash的原则是,两个网页哪怕只有1bit的差异,其hash值差别也非常大,它只适合用作完整性检查。网页只有少量不同,也必须判断为相同的网页,本质上是相似性判断,如此一来,hash签名方案就行不通了。有没有一种hash,内容越相似,hash值也越相似呢?有。局部敏感哈希(Locality
2024年12月19日
其他

手贱删了DB,如何快速恢复?(第24讲)

《架构师之路:架构设计中的100个知识点》24.数据库高可用,安全性架构设计数据库最基本的防灾怎么设计?做主从架构:或者主主架构:加上探活与故障转移,能够防:1.
2024年12月18日
其他

你见过最差的程序员是怎样的?(6KW+的笑话)

这几天压力有点大,幸得看到一篇笑话,稍微缓解了一下。笑话的阅读量接近6KW,我在想,是不是很多人和我一样压力大呢?第6个回答,似曾相识。主题:你见过最差的程序员是怎样的?https://www.zhihu.com/question/31236086【回答1:1500+赞同】看到过一个海外简历,写的精通春靴,冬眠。画外音:SpringBoot,hibernate。面试问他怎么排序一个list,他说先insert到数据库,再order
2024年12月17日
其他

加速MySQL主从同步,核心架构设计思路!(第23讲)

《架构师之路:架构设计中的100个知识点》23.MySQL主从同步加速架构MySQL主从同步为什么这么慢?如上所示,主库binlog同步到从库,从库单线程落盘relaylog,单线程重放relaylog,在数据量大并发量大的时候,就会很慢。如何来进行优化?可以多线程并行重放relaylog来缩短同步时间。多线程并行重放能否保证与主库数据的一致性?例如:三个set语句,分在三个线程重放,不能保障与主库执行序列的一致性。update
2024年12月16日
其他

又一篇10W+,但都是骂我的...

视频号又出了一篇10W+。这是视频号出的第三篇10W+,但有喜有忧:可喜的是,首篇讲技术的内容,突破10W+。忧伤的是,是被评论骂上去的。这篇短视频脚本:1.
2024年12月14日
其他

谁能告诉我:软件测试到底有没有出路?

有位水友问我,研发测试都是搞技术,前景出路是不是一样的?网上对这个问题有过讨论,分享给大家。最后一个回答,值得思考!主题:软件测试到底有没有前景和出路?https://www.zhihu.com/question/317754170【回答1】没出路,千万别来!卷死了,不是本科别来!是本科也别来,行业饱和了!总之,别来,谁来谁后悔!【回答2】说下真实的测试现状:现在已经不是手工作坊的时代了,一个人撸不出大型商业软件的,所以需要分工,产品、开发、测试、运维各司其职。所以,第一点,别拿测试不当技术,测试岗位非常重要。可是,如果你只是想安安静静的点点点,确实不如产品研发,确实没有出路。但点其他技能树,测试的出路却比产品、开发、运维更广:1.
2024年12月11日
其他

PHP使用local-proxy的一种思路! | 架构师之路(19)

《架构师之路:架构设计中的100个知识点》19.脚本语言使用长连接的一种思路脚本类语言,例如PHP,不能像C++/Java那样能搞服务常驻内存,不能搞长连接?为什么脚本语言要搞长连接?脚本类语言每次访问后端数据库,服务,缓存,都需要经历上述四个步骤:1.
2024年12月9日
其他

把程序员的薪水涨上去,其实根本就不需要架构师(客观分析)

网上讨论过一个话题,为什么大部分技术人都做不了架构师呢?最后一个回答:“把程序员的薪水涨上去,其实根本就不需要架构师”,争议颇大。主题:为什么大部分码农做不了架构师?https://www.zhihu.com/question/36658435【回答1】两个方面:其一,人都是有惰性的,天天CRUD多简单,为什么要费劲去多学点东西呢?其二,就算你想努力,也没有做架构的机会!
2024年12月6日
其他

秒杀架构优化,掌握这一个核心原则! | 架构师之路(18)

《架构师之路:架构设计中的100个知识点》18.秒杀架构优化秒杀系统为什么难做?根本原因,是库存访问集中在一个地方,所有请求会在集中的时间读写库存数据,导致系统锁死。比如说:华为抢手机,可能库存只有5K部,但瞬时进入的流量可能是十万百万。又比如说,12306抢票,余票很少,瞬时流量会更高。怎么优化?最核心的优化思路是:尽量将请求拦截在系统的上游,而不要压到库存数据。怎么拦截?常见的分层架构如上,从上到下逐层拦截。首先,端上拦截。产品层面:用户点击“查询”或者“抢购”后,按钮置灰,禁止用户重复提交请求。技术层面:前APP端,或者H5端,限制同一个用户在10秒之内只能向服务端提交一次请求,重复的请求前端直接返回。如此限流,可拦截不少流量。有人要说了,这个可行吗?端上拦截,只能拦住小白用户,大部分流量都是程序员抓包写脚本,for循环,直接调用后端的HTTP接口访问,那怎么办?第二步,web-server站点层拦截。秒杀类的电商场景,用户需要登录,登录就有token,有uid的唯一标识。在站点层,同一个uid,做限速,限制同一个用户在10秒之内只能向service提交一次请求,重复的请求直接返回。如此限流,用脚本写for循环抢购的请求,99%又被拦住了。又有人要说了,同一个uid确实被拦住了,那万一有一个黑客,控制了10W个账号,10W个uid同时抢手机,该怎么办呢?第三步,service服务层拦截。系统上线,一般都做过压测,对service的服务能力是清楚的,假如每秒只能服务1W的吞吐,中间可以加一个MQ,采用拉模式来做削峰填谷,service根据自己的服务能力去处理请求,对自己实施保护。又有人要说了,万一没做过压测,不知道service的服务能力怎么办?业务层面,我们知道手机的库存量,假如库存只有5K部手机,放过去10W个请求,没有意义。还是加一个MQ,还是采用拉模式来做削峰填谷,service根据库存情况去处理请求,对自己实施保护。如此限流,只有非常少的读写请求,会压到后端数据层。最后,数据层怎么优化?如果做了前端,站点层,服务层的优化,数据库上的压力就很小了:1.
2024年12月5日
其他

会话保持的核心技术点,1分钟了解 | 架构师之路(17)

《架构师之路:架构设计中的100个知识点》17.会话保持相关技术点《为什么大家都不用session
2024年12月4日
其他

为啥中国诞生了世界级互联网公司,而很多互联网大国却没有?(1600W+阅读)

有人在评论区问我,为什么中国诞生出了很多像腾讯,阿里,百度,美团...
2024年12月3日
其他

好的架构师,至少要具备这6项技能! | 架构师之路(16)

《架构师之路:架构设计中的100个知识点》16.好的架构师需要具备的6项技能你是不是以为架构师懂技术就行,我告诉你,大错特错。一个好的架构师,至少要具备以下六大技能。技能一、架构能力与编码能力。这一点毋庸置疑,如果不是写过多年代码的优秀程序员,一定不是好的架构师。“架构师”这是一个听上去比较虚的职位,可它的主要价值在于“架构落地”,而不只是“指点江山”。团队要做一个产品,架构师要帮助团队把握技术可行性,技术方案权衡取舍。技术方案权衡取舍出来了,架构师要设计整体的技术实现步骤。技术实现步骤出来了,架构师要和开发团队一起,设计与编码。可能架构师无法细究全部细节,常见的实践是,系统最困难最核心最关键的部分往往由架构师亲自操刀。技能二、逻辑思维与抽象思维。“逻辑思维,抽象思维”比“写代码”对架构师而言更为重要,如果你不能让某个非技术人员明白某个概念在说什么,这个架构师注定也是失败的。逻辑思维不用展开多说,程序员的代码都是逻辑,if怎么样else怎么样,switch怎么样case怎么样,缺乏良好的逻辑思维能力基本不可能成为好的架构师,甚至好的程序员。抽象思维又分两点,一个是将实在的事物概念化,一个是将模糊的感觉数字化。一个苹果,抽象为质量、大小、颜色、形状、味道等,这是概念化。至于质量、大小、颜色、形状、味道如何转变成数字来描述,这是数字化。有了上述两点,架构师能将一个“虚”的架构概念描述清楚。技能三、技术前瞻性。架构师与技术高手的区别在于,架构师不仅局限于如何调用、如何并发、如何扩展等架构细节(技术高手对这些也非常熟练),还跳出三界,考虑未来问题和潜在风险的应对之道。要培养自己的技术前瞻性,必须要是学好英语,看懂外文技术文章,能与业界专家沟通交流,学习别人的实践方案。反面的例子是,成天将技术前沿的名词挂在嘴边,大谈“云计算,SaaS,微服务,AI”这些东西。架构师不能天天吹水,而落不了地。技术前瞻性还提现在对新技术的选型上,哪些东西适合自己团队,哪些不适合。学习成本、维护成本、硬件成本、潜在风险等等都是架构师需要考虑的。而不是哪个流行,就选型哪个。技能四、透过问题看本质。架构师要有将“业务需求”转化为“技术需求”的能力,这是一个本质的挖掘。例如,业务层面看到的是一个“电子商务网站”,架构师看到的是一个多人在线,并发交易,需要保证数据一致性的站点、服务、数据系统,功能、性能、扩展性、维护性、安全性、可用性这些字眼会惯性的蹦到架构师的脑子里。架构师之所以是架构师,他在庞大系统的面前,仍然能够敏锐发现其底层之真实,这就需要,他有多年多领域知识和经验的沉淀。技能五、跨域知识。架构师作为一名技术领袖,需要通过散发知识的光芒来温暖开发团队,如果只对一个领域内的知识烂熟于胸,那也仅仅是一名技术高手。要想更进一步,系统分层层面,需要对APP层面、服务层面、数据层面均要了解。职能层面,要对研发、测试、运维、安全也要有所了解。宏观与细节层面,上要对接口,下要对原理都有所了解,甚至,要在多个业务领域都有所涉猎。初级架构师所害怕的,是跳出自己的“独门绝技”,在一定程度上说,在一定深度之内成为一个“杂家”也没什么不好。技能六、沟通能力。架构师和项目经理,对沟通能力的要求都很高,很多互联网公司甚至直接由架构师担任项目经理的角色。如何成为一名“善于沟通”的架构师呢?在目标清晰的前提下,首先做到平和,不能将自己所在象牙塔上,颐指气使的发号施令,这样的态度必然遭恨,大家都是技术人员,只是分工不同,为何要受你的气呢?其次,架构师要有一定的绘图能力。人对图形的理解远大于对文字的理解,一个层次图,一块小白板,几只笔,真的更容易把问题讲清楚。总结,好的架构师少要具备这六大技能:1.
2024年12月2日
其他

技术人,如何轻松的赚美刀?(可以不用,但最好知道)

《程序员最值得学习的语言》中提到,英文是技术人最应该学习的语言。很多人在评论区吐槽:我不会英文,不看英文文档,有什么影响?如果你觉得没有影响,那就没有影响。我想说的是,你恐怕少了一个职场赚美刀的机会。站点名称:remote
2024年11月29日
其他

github标星28K,这个中文项目不知道就亏大了!(国人的骄傲)

《架构设计100讲:后台任务》中很多朋友说Quartz不好用,询问有没有推荐的分布式任务调度平台。这个国人的项目,必须推荐给你!项目名称:XXL-JOB项目地址:https://github.com/xuxueli/xxl-job项目双语介绍,是不是就必须顶一下?XXL-JOB是一个怎样的项目?这是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。XXL-JOB有什么特点?1.
2024年11月26日