自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不止思考

奎哥的公众号「 不止思考 」技术架构、思考、认知。

  • 博客(107)
  • 资源 (1)
  • 收藏
  • 关注

原创 聊聊微服务架构

《聊聊微服务架构》

2020-12-09 10:28:43 194

原创 算法一看就懂之「 递归 」

之前的文章咱们已经聊过了「 数组和链表 」、「 堆栈 」和「 队列 」,今天咱们来看看「 递归 」,当然「 递归 」并不是一种数据结构,它是很多算法都使用的一种编程方法。它太普遍了,并且用它来解决问题非常的优雅,但它又不是那么容易弄懂,所以我特意用一篇文章来介绍它。一、「 递归 」是什么?递归就是指函数直接或间接的调用自己,递归是基于栈来实现的。递归的经典例子就是斐波拉契数列(Fi...

2019-09-12 11:09:39 414

原创 读「 人生护城河 」

如果把人看成一家公司,把人的一生看作这家公司的经营的过程。那么,你选好了你这家“公司”的商业模式了吗?你这家“公司”是否具有自己的独特优势?“公司”的商业护城河又是什么呢。张辉的这本《人生护城河》一书,买来有一段时间了,一直没时间读。上周末抽了2个小时快速读了一遍,挺有意思的,我把书中对我比较有启发的几点与大家分享一下。1、人生商业模式有哪些?如果把自己视为一家公司,那么作为公司...

2019-09-12 11:09:06 517

原创 算法一看就懂之「 队列 」

算法的系列文章中,之前咱们已经聊过了「 数组和链表 」、「 堆栈 」,今天咱们再来继续看看「 队列 」这种数据结构。「 队列 」和「 堆栈 」比较类似,都属于线性表数据结构,并且都在操作上受到一定规则约束,都是非常常用的数据类型,咱们掌握得再熟练也不为过。一、「 队列 」是什么?队列(queue)是一种先进先出的、操作受限的线性表。队列这种数据结构非常容易理解,就像我们平时去超...

2019-09-12 11:08:35 838

原创 算法一看就懂之「 堆栈 」

上一篇咱们聊完了数据结构中最基础的「 数组 」和「 链表 」,今天咱们再来继续看看「 堆栈 」吧,我写技术文章很少 show code,所以经常有人吐槽。好吧,这个算法系列的文章我打算每一篇的结尾处都找一道算法题写出代码示例,这总可以了吧。一、「 堆栈 」是什么?堆栈(stack)是一种先进后出的、操作受限的线性表,也可以直接称为栈。可以把栈想象成一个桶一样,往这个桶里面一层...

2019-09-12 11:07:14 879

原创 算法一看就懂之「 数组与链表 」

数据结构是我们软件开发中最基础的部分了,它体现着我们编程的内功。大多数人在正儿八经学习数据结构的时候估计是在大学计算机课上,而在实际项目开发中,反而感觉到用得不多。其实也不是真的用得少,只不过我们在使用的时候被很多高级语言和框架组件封装好了,真正需要自己去实现的地方比较少而已。但别人封装好了不代表我们就可以不关注了,数据结构作为程序员的内功心法,是非常值得我们多花时间去研究的,我这就翻开书...

2019-09-12 11:06:17 266

原创 「 牛逼的程序员 」+「 会写作 」= ?

一个代码敲得很6的程序员,再加上「 会写作 」,会产生什么效果?我在之前的文章中分享过一个观点,咱们程序员除了代码之外,还必须得会营销自己,建立个人的影响力。但是说归说,道理很容易理解,可是并非每个人都擅长营销啊(包括我自己)。作为码农的天性,我就喜欢与计算机对话,习惯于对着显示器码代码。如果让我到处找人吹嘘侃大山营销自己,内心是抗拒的啊。那怎么办?还有没有别的办法可以帮助咱们码农...

2019-09-12 11:05:15 535 2

原创 微服务架构之「 容器技术 」

现在一聊到容器技术,大家就默认是指 Docker 了。但事实上,在 Docker 出现之前,PaaS社区早就有容器技术了,以 Cloud Foundry、OpenShift 为代表的就是当时的主流。那为啥最终还是 Docker 火起来了呢?因为传统的PaaS技术虽然也可以一键将本地应用部署到云上,并且也是采用隔离环境(容器)的形式去部署,但是其兼容性非常的不好。因为其主要原理就是将本...

2019-09-12 11:04:06 339

原创 码农人生,我们到底在追寻着什么?

小学生都知道,每个人的生命都是有限的,当然这里指的是咱们普通人。至于有没有一些神秘人物,通过一些神奇的黑科技能够无限延续生命,那就不得而知了。既然生命是有限的,那么在这有限的时光里,我们得好好的规划自己的人生,有计划的去追寻。那么,我们每个人到底在追寻着什么呢?我们又到底有多少种可以追寻的方向呢?并且每个人对人生的不同追求有没有可比性呢?有没有高低之分?在我上大学的时候我倒是经常在琢磨...

2019-07-11 13:08:58 385

原创 微服务架构之「 下一代微服务 Service Mesh 」

Service Mesh 被大家称为下一代的微服务,是微服务领域的一颗新星,被大家讨论的非常多。我在大家的讨论中,还看到有人说 “目前的微服务架构我都没学会呢,现在又来一个下一代微服务,真学不动了”。哈哈,没办法,互联网技术就是发展得这么快,这些技术其实也都是由于大家所在的公司业务规模和复杂度变大以后所推动出来的。最开始 Service Mesh 的概念是由Buoyant公司在20...

2019-07-11 13:08:41 219

原创 咱们码农可以从曾国藩身上学到点什么呢(一)

曾国藩,这位晚清的四大名臣之首,应该不需要过多介绍。他创立湘军,平定太平天国、也是洋务运动发起人,同时是著名的战略家、理学家、文学家。我一直一来就对曾国藩很好奇,这样一个神一般的人物,到底是怎么成长起来的?我最不喜欢研究就是什么从小天资聪慧,什么几岁就知道天文地理的神童经历,因为那跟我没啥关系啊,我又没有这么高的智商,这类大神的经历看了也白看。但是我发现曾国藩不同,他可是考秀才,连...

2019-06-20 12:28:34 355

原创 微服务架构之「 访问安全 」

应用程序的访问安全又是我们每一个研发团队都必须关注的重点问题。尤其是在我们采用了微服务架构之后,项目的复杂度提升了N个级别,相应的,微服务的安全工作也就更难更复杂了。并且我们以往擅长的单体应用的安全方案对于微服务来说已经不再适用了。我们必须有一套新的方案来保障微服务架构的安全。在探索微服务访问安全之前,我们还是先来回顾一下单体应用的安全是如何实现的。一、传统单体应用如何实现「访问安全」...

2019-06-13 12:28:17 3055

原创 微服务架构之「 容错隔离 」

我们知道,在单体应用的架构下一旦程序发生了故障,那么整个应用可能就没法使用了,所以我们要把单体应用拆分成具有多个服务的微服务架构,来减少故障的影响范围。但是在微服务架构下,有一个新的问题就是,由于服务数变多了,假设单个服务的故障率是不变的,那么整体微服务系统的故障率其实是提高了的。比如:假设单个服务的故障率是0.01%,也就是可用性是99.99%,如果我们总共有10个微服务,那么我们整体的...

2019-06-04 16:38:28 588

原创 吴军博士眼中的五级软件工程师

有没有适用于咱们软件工程师的等级评价体系呢?世界上有一套针对专业人士的评价体系,它的发明人是苏联著名物理学家 列夫·达维多维奇·朗道。朗道(1908-1968),号称是“世界上最后一个全能的物理学家”,他不仅获得过诺贝尔物理学奖,而且还提出一种按照水平和贡献划分物理学家的方法,被称为物理学家的等级,也就是前面提到的专业人士的评价体系。其实,咱们 程序员/软件工程师 也是属于专业人士范畴...

2019-05-31 12:28:45 2075

原创 微服务架构之「 调用链监控 」

「 调用链监控 」是在微服务兴起后才有的一种新流行的监控模式。因为在我们传统单体应用的项目中,不存在服务链/调用链的概念,所以也就根本没有调用链监控的需求了。当我们开始微服务架构之后,我们的很多服务变成分布式的了,并且我们对服务进行了拆分,拆分之后,用户的一个请求进来,会依次经过不同的服务节点进行处理,处理完成后再返回结果给用户。那么在整个处理的链条中,如果有任何一个节点出现了延迟或者问题,都...

2019-05-28 16:17:09 1877

原创 「码农读书」:我们并没有自己想象的那么理性

作为码农/程序员,我们经常认为自己是非常理性的。其实不仅是我们自己这么认为,甚至我们身边的朋友们在谈到对我们的评价时,在聊到对程序员这个职业的印象时,都会普遍的认为这是一个非常理性、思维逻辑非常清晰的群体。但事实真的是这样吗?我曾经也非常自信于自己的理性。但最近看了一本大块头书《思考,快与慢》后,完全颠覆了我的认知。其实我们并没有自己想象的那么理性。很多时候,我们被自己的大脑欺骗了。我...

2019-05-23 10:33:18 380

原创 微服务架构之「 监控系统 」

在微服务架构的系列文章中,前面已经通过文章分别介绍过了微服务的「服务注册 」、「服务网关 」、「配置中心 」,今天这篇文章我们继续来聊一聊另外一个重要模块:「 监控系统 」。因为在微服务的架构下,我们对服务进行了拆分,所以用户的每次请求不再是由某一个服务独立完成了,而是变成了多个服务一起配合完成。这种情况下,一旦请求出现异常,我们必须得知道是在哪个服务环节出了故障,就需要对每一个服务,以及...

2019-05-21 14:19:40 3526 4

原创 微服务架构之「 配置中心 」

在微服务架构的系列文章中,前面已经通过文章《微服务架构之「服务网关 」》介绍过了在微服务中服务网关的原理和应用,今天这篇文章我们继续来聊一聊微服务中另外一个重要模块:「 配置中心 」。后面还会继续介绍 服务框架、服务监控、服务治理等。还是那句话,只有将这些基础设施弄清楚了,微服务实践的道路才能走的稳、走的远。「配置中心」,顾名思义,就是用来统一管理项目中所有配置的系统。虽然听起来很简单,但...

2019-05-17 13:52:54 3368 2

原创 与技术无关,但却值得码农们好好读一读的怪书:禅与摩托车维修艺术

最近在读《禅与摩托车维修艺术》这本书,说它很奇怪,其实是因为觉得书名很有意思。看书名,很容易被误解成是一本教人修摩托车的教程,事实上它是一本非常经典的哲学书籍,很多大牛都有推介过这本书。著名的物理学家 霍金 曾这样评价这本书:“我因为写了一部人们把它和《禅与摩托车维修艺术》相比较的书而感到甚受恭维,我希望拙作(《时间简史》)和《禅与摩托车维修艺术》一样使人们觉得他们不必自处于伟大的智...

2019-05-14 18:21:27 483

原创 微服务架构之「 服务注册 」

微服务架构是一个庞大复杂的工程,为什么说它庞大复杂呢?因为想要做好微服务,就必须先要建设好微服务所需的一系列基础设施和组件。我在前面的文章《架构设计之「 微服务入门 」》中已经初步介绍过了这些组件,包括:服务注册、服务网关、配置中心、服务框架、服务监控、服务追踪、服务治理等。只有将这些基础设施搭建完善了,微服务实践的道路才能走的稳、走的远。后面的文章中会依次把每一个基础组件都详细分析一下。...

2019-03-29 12:19:03 620

原创 别被「 稀缺心态 」控制了你的人生

先来解释一下「 稀缺 」这个概念。「 稀缺 」是指当你对某个资源的“拥有”程度少于你对它的“需要”程度时,你所产生的感觉,大白说就是说“欲望大于现实”,哈哈,当然这个也被称为「 稀缺心态 」。其实真正的资源匮乏并不可怕,可怕的就是由于资源匮乏之后导致你产生了这种稀缺心态。这也是最近在读《稀缺》这本书后所了解到的,以前还不觉得,但是搞懂了「 稀缺 」这个概念之后,对生活中以前很多不理...

2019-03-28 12:49:10 462

原创 架构设计之「 微服务入门 」

微服务这几年不可谓不火,很多技术团队都开始在自己的项目上引入了微服务。一方面这些团队确实很好的推动了微服务的应用和发展,另一方面也可以看到一些盲目追技术热点的行为所带来的危害,比如很多中小团队对微服务的基础知识只是做了很浅显的了解就开始盲目的推动微服务的实施,最后导致了项目的失败。微服务要想做好是一个非常复杂的架构,今天就先只聊一聊微服务的一些基础架构,算是入门篇。一、什么是「 微服务...

2019-03-28 12:48:08 295

原创 大多数人的努力程度都远远不够,远没有到拼运气的地步

看过了太多的鸡汤文章,导致我们常常以为只要通过个人努力就能获得成功,但事实上却并非如此简单。先抛出两个真相: 成功之路除了需要勤奋努力以外,还需要一点运气 大多数人的努力程度都远远不够,远没有到拼运气的地步 最近看了一本书《异类》,据说是很多大佬都有推荐,连微信之父的张小龙都推荐过。记得在很早之前罗永浩也推荐过这本书,当时还不太理解,现在看到锤子手机的商业局面,才大概明...

2019-03-20 11:01:39 772

原创 架构设计之「 CAP 定理 」

在计算机领域,如果是初入行就算了,如果是多年的老码农还不懂 CAP 定理,那就真的说不过去了。CAP可是每一名技术架构师都必须掌握的基础原则啊。现在只要是稍微大一点的互联网项目都是采用 分布式 结构了,一个系统可能有多个节点组成,每个节点都可能需要维护一份数据。那么如何维护各个节点之间的状态,如何保障各个节点之间数据的同步问题就是大家急需关注的事情了。CAP定理是分布式系统中最基础的原...

2019-03-15 10:43:46 918

原创 真的可以「 人人都是产品经理 」吗

现在互联网上各种媒体、各种课程 都在宣扬着「 人人都是产品经理 」的理念。虽然初衷是好的,是希望大家都能基于产品思维去思考问题和把握项目方向,但真正能做到的却寥寥无几。因为一名合格的产品经理需具备的素质和要求其实是非常高的。产品经理往往是大多数项目成功如否的关键因素之一, 产品经理必须要能探索出有价值的产品,还需要评估出产品的可用性、可行性,并最终按预期交付给用户。在这个号称「 人人都...

2019-03-12 11:00:21 319

原创 如何从程序员到架构师?

作为程序员,我们应该如何去规划好自己的职业道路?作为程序员群体的一员,我发现身边很多同学都非常的踏实,虽然这是一个很好的素质,但我们除了踏实做事以外,也需要多抬头看看路。才能让自己在职业道路上走的更稳更长久。身边很多同学都知道去追求升职加薪,但却很少去考虑一个完整的职业规划,很少去考虑自己的职业目标。对于以后自己是去做 技术管理?还是做 技术架构?又或者是干脆转行?很少去思考。因此...

2019-03-07 11:58:47 435

原创 除代码之外,程序员还有哪些能力也非常的关键?

程序员不应该只会写代码。我觉得在程序员群体中,很多人有个误区,就是觉得作为码农,每天安安静静的敲代码、默默的做好技术就可以了,其他的事情都不用去思考,以为一切都会水到渠成。但是还没等到水到渠成,却先等来了中年焦虑。慢慢的等到自己到了三十多岁的时候,发现公司里年轻且更能加班码农越来越多,带来了职业发展上的焦虑,同时上有老下有小且薪资也慢慢遇到职业瓶颈,又加重了生活财务的焦虑。最近又翻了翻...

2019-02-26 13:13:03 182

原创 从大数据技术变迁猜一猜AI人工智能的发展

目前大数据已经成为了各家互联网公司的核心资产和竞争力了,其实不仅是互联网公司,包括传统企业也拥有大量的数据,也想把这些数据发挥出作用。在这种环境下,大数据技术的重要性和火爆程度相信没有人去怀疑。而AI人工智能又是基于大数据技术基础上发展起来的,大数据技术已经很清晰了,但是AI目前还未成熟啊,所以本文就天马行空一下,从大数据的技术变迁历史中来找出一些端倪,猜一猜AI人工智能未来的发展。最...

2019-02-19 12:40:59 254

原创 产品研发团队如何融合OKR与Scrum敏捷开发?

「 OKR 」现在非常的火爆,很多公司都在使用,不仅国外的 Google、英特尔等大公司在用,国内的一线知名互联网企业今日头条和一些创业团队也都在使用。那为什么「 OKR 」这么受欢迎呢,因为把它可以帮助团队 达成共识、加深信任、加强协同。并且「 OKR 」这套方法,不仅可以帮助我们开展工作,还可以用它来管理个人生活。例如互联网大牛 吴军 就是固定使用「 OKR 」来管理他个人年度目标...

2019-02-14 10:27:01 1563

原创 RAID磁盘阵列是什么(一看就懂)

在单机时代,采用单块磁盘进行数据存储和读写的方式,由于寻址和读写的时间消耗,导致I/O性能非常低,且存储容量还会受到限制。另外,单块磁盘极其容易出现物理故障,经常导致数据的丢失。因此大家就在想,有没有一种办法将多块独立的磁盘结合在一起组成一个技术方案,来提高数据的可靠性和I/O性能呢。在这种情况下,RAID技术就应运而生了。一、RAID 是什么?RAID ( Redundant Arr...

2018-11-29 10:49:12 12032

原创 算法的时间与空间复杂度(一看就懂)

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算...

2018-11-21 11:17:45 68607 37

原创 技术人更应该学会即兴表达

最近特别忙,忙里偷闲还是抽空把网易云课堂大白老师的《即兴讲话,也能套公式》快速的学习了一遍,收获很大。作为一名程序员,为啥要去学习这种教我们怎么讲话的课呢?就做一名安静的美男子好好敲代码难道不好吗!这就是我今天想要跟大家聊的重点。大家对我们程序员群体的普遍印象就是:「 内向」、「 呆板」、「 不喜沟通」、「 不善表达」、「 熬夜敲代码」。虽然确实有些程序员或多或少有上述特征,但这并...

2018-11-05 12:13:46 462

原创 架构设计之「数据库集群方案」

在之前的文章中,我们知道数据库服务可能已经成为了很多系统的性能关键点,甚至是瓶颈了。也给大家介绍了数据库服务器从主备架构、到主从架构、再到主主架构的基础方案。但如果单台机器已经不能满足完整业务数据存储的时候,我们就需要考虑采用多机甚至多中心的部署方案了。今天我们就再来聊一聊,在多机环境下,数据库集群的架构方案。同样,这里先不看细节,不管底层数据源是什么数据库,我们先谈架构方案。因为无论底层...

2018-09-30 12:40:48 1046

原创 架构设计之「数据库从主备到主主的高可用方案」

在互联网项目中,当业务规模越来越大,数据越来越多,随之而来的就是数据库压力会越来越大。慢慢就会发现,数据库层可能已经成为了整个系统的关键点和性能瓶颈了,因此实现数据层的高可用就成为了我们项目中经常要解决的问题。本文我们就来聊一聊如何实现数据存储层的高可用方案。在保障数据层的高性能与高稳定方面,最容易想到的方式就是对数据进行分片、多份、冗余等,很多架构的本质其实也是基于这几点来实现的。这里先...

2018-09-27 19:21:24 3790

原创 网络中的「动态路由算法」,你了解吗?

在计算机网络中,路由器的一个很重要责任就是要在端对端的节点中找出一条最佳路径出来,通过自己与相邻节点之间的信息,来计算出从自己位置到目的节点之间的最佳线路,这类算法我们称之为路由算法。路由的模式又主要分为「静态路由」和「动态路由」。静态路由协议是由网络管理员手动输入配置的,适用于小型的不太复杂的网络环境中,或者有特定需求的网络场景中。而动态路由协议是现代计算机网络中最为常用的一种方式。动态路由算...

2018-09-21 10:34:12 3823

原创 当你「ping 一下」的时候,你知道它背后的逻辑吗?

当你「ping 一下」的时候,你知道它背后的逻辑吗?我们在遇到网络不通的情况,大家都知道去 ping 一下,看一下网络状况。 那你知道「ping」命令后背的逻辑是什么吗?知道它是如何实现的吗?一、「ping」命令的作用和原理?简单来说,「ping」是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。ping是定位网络通不...

2018-09-13 15:38:36 215

原创 不懂高性能的负载均衡设计?没关系,架构师带你飞

不懂高性能的负载均衡设计?架构师带你飞在软件系统的架构设计中,对集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。负载均衡本质上是用于将用户流量进行均衡减压的,因此在互联网的大流量项目中,其重要性不言而喻。一、什么是负载均衡?早期的互联网应用,由于用户流量比较小,业务逻辑也比较简单,往往一个单服务器就能满足负载需求。随着现在互联网的流量越来越大,稍微好一点的系统,访问量就...

2018-09-06 19:49:33 516

原创 架构师带你玩转分布式锁

大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。当某个资源在多系统之间,具有共享性的时候,为了保证大家访问这个资源数据是一致的,那么就必须要求在同一时刻只能被一个客户端处理,不能并发的执行,否者就会出现同一时刻有人写有人读,大家访问到的数据就不一致了。一、我们为什么需要分布式锁?在单机时代,虽然不需要...

2018-08-24 12:04:39 155

原创 数据库的这些性能优化,你做了吗?

数据库的这些性能优化,你做了吗?在互联网项目中,当业务规模越来越大,数据也越来越多,随之而来的就是数据库压力会越来越大。我们可能会采取各种方式去优化,比如之前文章提到的缓存方案,SQL优化等等,除了这些方式以外,这里再分享几个针对数据库优化的常规手段:「数据读写分离」与「数据库Sharding」。这两点基本上是大中型互联网项目中应用的非常普遍的方案了。下面我们来详细看一看,一、...

2018-08-21 18:46:08 353

原创 缓存服务的更新策略有哪些?

缓存服务的更新策略有哪些?在互联网项目开发中,缓存的应用是非常普遍了,缓存可以帮助页面提高加载速度,减少服务器或数据源的负载。1、为什么需要缓存?一般在项目中,最消耗性能的地方就是后端服务的数据库了。而数据库的读写频率常常都是不均匀分布的,大多情况是读多写少,并且读操作(select)还会有一些复杂的判断条件,比如 like、group、join 等等,这些语法是非常消耗性能的,所...

2018-08-17 13:06:16 6176

聊聊微服务架构.pdf

我写的《聊聊微服务架构》电子书。 包括微服务技术,从微服务的入门,搭建、部署以及各模块的使用的技术书籍。 整理来源于我写的CSDN文章。 我的博客:https://blog.csdn.net/jsjwk?spm=1001.2101.3001.5113

2020-12-08

空空如也

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

TA关注的人

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