架构师之路

Latest articles

7月份,打算看这些书

每周听2本,一年听50本书的flag立了几个月了,不知道坚持下来的小伙伴有多少?代码写久了,身上一堆毛病。《互联网人典型体检报告?》炼,还是要坚持锻。打游戏,看网剧,刷抖音久了,停下来,大脑一片空白。仔细想想,又是一阵空虚。书,还是要必须坚持读。架构师之路读书会,本月活动,7.11-7.19加入,送价值199元的榨汁杯。近期阅读+听书计划:一,《穷查理宝典》一本智慧宝典,一本影响工作与生活决策能力,提高个人影响力,掌握经济与理财哲学的书。二,《非暴力沟通》沟通最大的敌人,就是那些不假思索就说出来的话,当你不去控制自己的语言和情绪时,是绝对无法达到最初的沟通目的的。三,《运动改造大脑》在所有的努力中,可以说运动和读书是成本最低、见效最明显的提升方式,所有付出与汗水都会回报在我们身上。扫码加入,一起读书读一本书,不难。坚持读书,不简单。我读,你听,每周2本,每本15分钟。从今天开始,让我们一起读书。7.11-7.19加入,送价值199元的榨汁杯。...

除了解析域名,DNS还能干吗?

一个http请求,典型的执行流程是怎么样的呢?可以看到,典型流程为:(1)客户端请求dns-server,发起域名解析;(2)dns-server返回域名对应的外网ip(1.2.3.4);(3)客户端通过外网ip(1.2.3.4),访问反向代理;(4)反向代理通过内网ip(192.168.x.x),将请求分发给web-server;(5)web-server对请求进行处理;其中,第一个步骤,将域名转化ip的过程,发生在应用系统的外部,是通过DNS实现的。除了域名解析,在架构设计时,还能利用DNS做一些什么事情呢?一、用户就近访问DNS可以实现,用户所需资源的就近访问:(1)电信用户想要访问某一个服务器资源;(2)浏览器向dns-server发起域名解析请求;(3)dns-server识别出访问者是电信用户;(4)dns-server将电信机房的nginx外网ip返回给访问者;(5)访问者就近访问;根据用户ip来返回最近的服务器ip,称为“智能DNS”,CDN以及多机房多活中最常用。二、反向代理水平扩展典型的互联网架构中,可以通过增加web-server来扩充web层的性能,但反向代理nginx仍是整个系统的唯一入口,如果系统吞吐超过n...

为什么说,知道“游泳比Q支更危险”,是另一种眼界?

我们会习惯于用自己的认知去看待整个世界。可是,我们的认知,真的是对的吗?你知道Q支和游泳池对于孩子来说,哪个更危险吗?美国平均每年,每11000个住宅游泳池就会溺死一名儿童,而整个美国有大约600万个游泳池,这就意味着每年有550个儿童死在游泳池里。而每100万支Q,也仅会造成一名儿童的死亡。美国2亿支Q,一年也只不过杀死了175名儿童。对于孩子来说,游泳池远比Q危险的多。在20世纪90年代,是什么导致了犯罪率的下降?那是美国非常黑暗的一段历史,犯罪率居高不下,种种惨绝人寰的犯罪行为比比皆是,犯罪已经成为了笼罩在那个时代的人民心中的阴影。然而这种犯罪率却从某一年开始迅速下降,并且是持续不断的下降,这让所有人都始料未及。有人说,是因为经济发展。有人说,是因为Q支管制。有人说,是因为人们素质上升。这个时候,有一位经济学家站了出来,他说:是因为通过了堕胎合法化这条法案。学者们都觉得他是在胡扯,这完全不可能,然而最后,这位经济学家向所有人证明了,他是对的。这位经济学家就是《魔鬼经济学》的作者史蒂芬·列维特。列维特信奉的是:所有的事情其实都可以变的有趣,变的简单,我们需要的只是一种新的观察方法。正是这一人生信条,让他被誉为经济学领域的福尔摩斯,...

不到最后,你永远不知道会发生什么

【1】至今我仍认为,“高考”是中国最公平的选拔机制。至少,通过它,我完成了自己人生的重大转折。于我而言,如果没有高考,今天我可能不会坐在电脑前敲代码,写我喜欢的程序。我想,我大概率会像我的父亲母亲一样,在田间辛勤的劳作。【2】2003年,我的第二次高考。非典疫情。提前1个月,黑色7月首次变为黑色6月。全国教材改革。试卷泄密,启用备用卷。画外音:有经历过03年高考的童鞋么?2020年。新冠疫情。推迟1个月,黑色6月首次变为黑色7月。历史总是惊人的相似。杀不死你的,只会使你更强大。从前经历过别人未经历过的艰难痛苦,今后能比别人更从容的面对生活。我情愿,这些苦难,来得更早一些。【3】每次我说努力重要,总有水友抬杠,说:选择比努力更重要,搬砖再怎么努力,也赶不上F二代。为啥要和F二代比?今天的我比昨天的我更好,明天的我比今天的我更好,难道不应该是这个逻辑么?即使是搬砖,努力搬砖,比不努力搬砖,难道不会更好么?我从来都不是一个聪慧的人,死磕的那一年,是刷题的一年,是一周只放半天假,每天5:30起床,晚上做题到一两点,是尝试用最笨的方法,谱写自己人生篇章的一年。不管你信不信,反正我是坚信,“不懈的努力”一定有更好结果。【4】2005年,欧冠决赛,...

分布式事务,一种保守玩法

2PC,是分布式事务的一种常见实践。分布式事务为什么难?在分布式环境下,每个节点都可以知晓自己操作的成功或者失败,却无法知道其他节点操作的成功或失败。当一个分布式事务跨多个节点时,保持事务的原子性与一致性,是非常困难的。什么是两阶段提交?二阶段提交2PC(Two phase Commit)是一种,在分布式环境下,所有节点进行事务提交,保持一致性的算法。它通过引入一个协调者(Coordinator)来统一掌控所有参与者(Participant)的操作结果,并指示它们是否要把操作结果进行真正的提交(commit)或者回滚(rollback)。为什么叫两阶段提交?顾名思义,2PC分为两个阶段。第一个阶段,投票阶段(voting phase):参与者通知协调者,协调者反馈结果。画外音:可以理解为单机事务的trx.exec()。第二个阶段,提交阶段(commit...

如果,只让我选一本,历史书

历史书,如果只推荐一位作者,我推荐黄仁宇。历史书,如果只推荐一本书籍,我推荐黄仁宇的《万历十五年》。画外音:如果两本,次选黄仁宇《中国大历史》。朱翊钧,明朝的第十三位皇帝,年号万历。万历,是明朝在位时间最长的皇帝。画外音:你未必知道这一点。万历,最有名的一件事:28年不上朝。万历,不上朝,你以为他沉迷于后宫的莺歌燕舞,那你就大错特错了。万历,10岁即位,在位48年,从小就生活在他母亲和张居正等大臣的严加管教下。他每天凌晨5点起床,诵读《尚书》、《大学》各十遍,这两本书加起来大概是两万八千字,每次都要读好几个小时,读完后,老师还要一一细讲,这是皇帝每天的必修课。之后,老师累了,退到西厢房休息,万历皇帝开始看奏章,并提出批改意见;接着他要练书法,写若干幅字,让正字官点评。还没完,再接下来是老师讲解《资治通鉴》等史书经典,最后是问答课,皇帝要对当天的学习内容提问,老师来答疑。每天学习完课程,都已经是深夜了。更重要的是,他完全没有休息日!长大了,他还是被母后和张居正压着,凡事不能自己做主,太后对他的生活严加看管,张居正在朝政上是一把手。他本以为张居正死后,秋后算账打倒张居正,能够树立权威,大展宏图。没想到一个张居正倒下来,一百个张居正站了起来...

Java服务,内存OOM了,如何快速定位?

某Java服务(假设PID=10765)出现了OOM,如何快速定位?Java服务出现OOM,最常见的原因是:(1)内存确实分配过小,内存确实不够用;(2)某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽;(3)某一个资源被频繁申请,系统资源耗尽,例如:不断创建线程,不断发起网络连接;更具体的,可以按照以下步骤,使用以下工具排查。一、确认是不是内存本身就分配过小方法:jmap -heap 10765如上图,可以查看新生代,老生代堆内存的分配大小以及使用情况,看是否本身分配过小。 二、找到最耗内存的对象方法:jmap -histo:live 10765 | more如上图,输入命令后,会以表格的形式显示存活对象的信息,并按照所占内存大小排序:(1)实例数;(2)所占内存大小;(3)类名;是不是很直观?对于实例数较多,占用内存大小较多的实例/类,相关的代码就要针对性review了。画外音:需要说明的是,jmap -histo:live会执行一次FGC,如果仍无法定位,可dump内存,通过Java内存分析工具MAT(Memory...

从一道面试题谈起,大厂到底看重程序员的什么能力?

唐磊,他谦逊的自我介绍,是“在阿里云打工的清华学渣”。上周的一篇《字符串比较,居然暗藏玄机》,我最早是在唐磊《这10行比较字符串相等的代码给我整懵了》里看到的,我用通俗的语言,展开了“密码破解”案例。文末却没有提引用的出处,这里和唐磊道个歉。看了唐磊的其他一些文章,源于一线,深入细节,不禁想起了4-5年前提笔写技术文字的自己。希望他的好文被更多热爱技术的小伙伴看到,这里转一篇唐磊的好文。文章:《从一道面试题谈起,大厂到底看重程序员的什么能力?》这是我在面试过程中,经常问的一道题。一起看看,一起动笔试试吧。实现一个函数,完成开根号的操作:double sqrt(int v, double t)要求:(1)不能调用系统库函数,例如 Math.sqrt(v);(2)假设计算出的结果为 r,要求满足这个条件:  ,其中...

互联网人典型体检报告?

体检报告出来后,整个人都不好了。 自己也算是一个典型互联网人,我猜测,很多互联网人情况和我类似,故把典型症状以及医生建议同步出来,希望对大家有帮助。画外音:医生的建议,非常能够落地。 一般检查结果:体重指数大于24,体重超重。画外音:感谢没有使用“肥胖”字眼。什么是体重指数(body mass index)?BMI = [体重(kg)] 除以 [身高(m)的平方]如果BMI >= 24,则为超重;超重是心血管疾病,糖尿病,血脂等疾病的危险因素。 医生建议:(1)注意膳食平衡,饮食宜低脂,低糖,低盐;(2)控制主食摄入量,辅以优质蛋白(鱼、蛋、奶等),增加蔬菜摄入;(3)加强运动,消耗多余脂肪,例如走路,慢跑,跳舞,游泳等;(4)运动以微汗为宜,注意运动三要素:    - 频率:每周至少3次; ...

“我是为了你好”,行不行得通?

绝大多数父母,知道管教孩子不能太严厉,也不能太宠溺,却不清楚具体应该怎么做。有的时候,对孩子十分严厉,只要孩子犯了一点错,就会责骂或是惩罚。画外音:这是典型的“负面管教”。 有的时候,对孩子百依百顺,温柔无比。画外音:这是典型的“放任骄纵”。 骄纵久了,害怕孩子会学会坏,又严厉起来,就像这样反反复复,无限循环。时间一长,孩子的情绪也变得反反复复,难以捉摸。在这样环境下成长的孩子,会非常缺乏安全感。他的行为完全受到别人的态度控制,甚至会不知道到底什么是对的,什么是错的,做什么事情都要看父母的眼色。惩罚虽然能暂时制止不良行为,但不能永久性地解决问题。只有通过鼓励来帮助孩子体验到归属感和价值感,才能获得长期的积极效果。画外音:鼓励,就是典型的“正面管教”。 当我们注意维护孩子尊严、尊重孩子并且态度坚定时,孩子很快就会明白,他们的不良行为不会得到自己想要的结果,这会激励他们在保持自尊的情况下改变自己的行为。我们常常剥夺孩子以负责任的方式做出贡献来获得归属感和价值感的机会,然后却反过来埋怨孩子,嫌他们没有责任感。 “正面管教”,是一种区别于传统管教方式方法。这种方法既不会过于严厉,也不会太过骄纵,是一种可以培养孩子良好品格和能力并且长期有效的教...

Discover, share and read the best on the web

Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!