一.概念  说起堆,我们就想起了土堆,把土堆起来,当我们要用土的时候,首先用到最上面的土.类似地,堆其实是一种优先队列,按照某种优先级将数字"堆"起来,每次取得时候从堆顶取.  堆是一颗完全二叉树,其特点有如下几点:  1.可以使用一维数组来表示.其中,第i个节点的父节点.子节点index如下:   - parent(i) = (i - 1) / 2; (取整)   - leftChild(i) = i * 2 + 1:   - rightChild(i) = i * 2 + 2;  …
爱生活,爱编码,微信搜一搜[架构技术专栏]关注这个喜欢分享的地方. 本文 架构技术专栏 已收录,有各种视频.资料以及技术文章. 一.问题 今天有个小伙伴跑过来告诉我有个奇怪的问题需要协助下,问题确实也很奇怪.客户端调用RT比较高并伴随着间歇性异常Connection reset出现,而服务端CPU .线程栈等看起来貌似都很正常,而且服务端的RT很短. 这里先说下结果: 因为TCP全连接队列太小导致的连接被丢弃,因为项目使用Spring Boot 内置的Tomcat,而默认accept-count…
1.引言 很多初涉网络编程的程序员,在研究Java NIO(即异步IO)和经典IO(也就是常说的阻塞式IO)的API时,很快就会发现一个问题:我什么时候应该使用经典IO,什么时候应该使用NIO? 在本文中,将尝试用简明扼要的文字,阐明Java NIO和经典IO之间的差异.典型用例,以及这些差异如何影响我们的网络编程或数据传输代码的设计和实现的. 本文没有复杂理论,也没有像网上基它文章一样千篇一律的复制粘贴,有的只是接地气的通俗易懂,希望能给你带来帮助. (本文同步发布于:http://www.5…
相信各位同学在阅读一些源码分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,经常看到UML类图但还不太熟悉的小伙伴赶紧来一起认识一下它吧:)   一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field)和方法(method)且带有分隔线的矩形来表示,比如下图表示一个Employee类,它包含name.age和email这3个属性,以及modifyInfo()方法. 那么属性/方法名称前的加号和减号是什么意思呢?它们表示了这个属…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是周一Python专题,给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就足够了.但是在我后来Python的使用以及TensorFlow等学习使用当中,我发现很多地方都用到了迭代器和生成器,或者是直接使用,或者是借鉴了思路.所以我们不能掉以轻心,今天就让我们仔细来看看,它们到底是怎么回事. 迭代器 我们先从…
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者.而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术领域. 这么牛的语言,你是不是想知道怎样学习和掌握它呢?接下来请看经过小编整理过C/C++工程师必备知识的思维导图. 初学者看到这么密集的知识点,是不…
背景 “If you are not growing, then you are dying. ”(如果企业不在增长,那么就是在衰亡!) 这句话适用于企业,也适用于个人.人生毕竟不像企业,是非成败,似乎都无可厚非,所以我们常常放飞自我偏离轨道,以至于有时候不得不提醒自己“不在成长,就在消亡”. 你来人间一趟,有没有全力以赴想要成全的事?可以反复尝试.不断接近吗?你的北极星又在哪里呢?增长黑客,黑客式增长,讲来讲去,也不仅仅是商业的事,到底都是人的事. 移动互联网经历早期的野蛮生长之后,进入到下半…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题第6篇文章,给大家介绍的是Python当中三个非常神奇的方法:map.reduce和filter. 不知道大家看到map和reduce的时候有没有什么感觉,如果看过之前我们大数据系列介绍MapReduce文章的同学,想必有些印象.这个MapReduce不是一个分布式的计算方法么,怎么又变成Python中的方法了?其实原因很简单,因为Python是一门很年轻的语言,它在发展的过程当中吸收了很多其他领域的精华,MapR…
一个执着于技术的公众号 前言 在前面的章节中,我们已经学习了nginx基础知识: 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文件详解 理解正向代理与反向代理的区别 今天我们通过两个实例,带大家读懂nginx反向代理 Nginx反向代理实例 1 1.实现效果 打开浏览器,在地址栏输入地址www.test.com,跳转到百度首页. 2.准备工作 (1)在Linux系统安装nginx 1)创建用于运行Nginx的用户 usera…
一个执着于技术的公众号 一.背景 随着云计算.虚拟化相关技术的发展,传统网络无法满足大规模.灵活性要求高的云数据中心的要求,于是便有了overlay网络的概念.overlay网络中被广泛应用的就是vxlan技术.首先我们了解下随着云计算的发展,传统网络面临哪些挑战. 1.虚拟机迁移范围受到网络架构限制 虚拟机迁移,顾名思义,就是将虚拟机从一个物理机迁移到另一个物理机,但是要求在迁移过程中业务不能中断.要做到这一点,需要保证虚拟机迁移前后,其IP地址.MAC地址等参数维持不变.这就决定了,虚拟机迁…