自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大树叶 技术专栏

骨灰攻城狮 架构师

  • 博客(104)
  • 资源 (2)
  • 收藏
  • 关注

原创 linux TCP 和 socket 参数设置

tcp_syn_retries :INTEGER默认值是5对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的)tcp_synack_retries :INTEGER默认值是

2016-04-30 00:37:41 10052

原创 CompletionService 和ExecutorService的区别和用法

Java SE5的java.util.concurrent包中的执行器(Executor)将为你管理Thread对象,从而简化了并发编程。Executor在客户端和执行任务之间提供了一个间接层,Executor代替客户端执行任务。Executor允许你管理异步任务的执行,而无须显式地管理线程的生命周期。Executor在Java SE5/6中时启动任务的优选方法。Executor引入了一些功能类来

2016-04-30 20:55:57 7307 1

原创 DDOS反攻击措施

1:确保服务器的系统文件是最新的版本,并及时更新系统补丁。 2:关闭不必要的服务。 3:限制同时打开的SYN半连接数目。      在Linux中执行命令"sysctl -a|grep net.ipv4.tcp_max_syn_backlog",在返回的"net.ipv4.tcp_max_syn_backlog=256"中显示 Linux队列的最大半连接容量是256

2016-04-30 00:16:59 1523

转载 HTTPS

HTTPS本身并非协议,而是标准的HTTP协议架在SSL/TLS协议之上的一种结构。(一种不太合适的说法可以认为是两种协议的叠加)。HTTP是工作在OSI7层模型的最上层,就是第7层:Application Layer。而SSL/TLS是工作在第4层:Transport Layer。两层之间还是隔了Presentation Layer(6层)和Session Layer(5层)两层的。2、由于

2016-04-29 20:31:02 412

原创 RAID5 的那些事

一、raid什么意思?RAID是“Redundant Array of Independent Disk”的缩写,raid什么意思了?说白了,中文翻译过来通俗的讲就是磁盘阵列的意思,也就是说RAID就是把硬盘做成一个阵列,而阵列也就是把硬盘进行组合配置起来,做为一个整体进行管理,最关键的是这个阵列的磁盘之间具有冗余容错处理,这样可提高磁盘之间相互的安全性和稳定性,不存在“单点”硬盘现象,也就说

2016-04-29 17:10:43 634

原创 Java中的堆排序 (PriorityQueue )

PriorityQueue PriorityQueue是个基于优先级堆的极大优先级队列。 此队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序来指定排序(参阅 Comparable), 也可以根据 Comparator 来指定,这取决于使用哪种构造方法。优先级队列不允许 null 元素。 依靠自然排序的优先级队列还不允许插入不可比较的对象(这样做可能导致 ClassC

2016-04-29 16:06:42 2315

转载 exit()与_exit()的区别

从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构;exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干道工序。exit() 函数与 _exit() 函数的最大区别在于exit()函数在调用exit  系统调用前要检查文件的打开情况,把文件缓冲区中的内容写回文件。也就是图中的“清理I/O缓冲”。 所需头文件: e

2016-04-29 15:04:08 364

原创 linux 僵死进程及其处理方法

一、什么是僵死进程?一般情况下,程序调用exit(包括_exit和_Exit,它们的区别这里不做解释),它的绝大多数内存和相关的资源已经被内核释放掉,但是在进程表中这个进程项(entry)还保留着(进程ID,退出状态,占用的资源等等),你可能会问,为什么这么麻烦,直接释放完资源不就行了吗?这是因为有时它的父进程想了解它的退出状态。在子进程退出但还未被其父进程“收尸”之前,该子进程就是僵死进程,

2016-04-29 14:51:47 8707

原创 TCP协议中的SO_LINGER选项

SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成。没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回。如果设置了SO_LINGER选项,并且等待时间为正值,则在清理之前会等待一段时间。以调用close()主动关闭为例,在发送完FIN包后,会进入FIN_WAIT_1状态。如果没有延迟关闭(即设置SO_LINGER选项)

2016-04-29 13:47:59 606

转载 linux 下Time_wait过多问题解决

自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。现象:1、外部机器不能正常连接SSH2、内向外不能够正常的ping通过,域名也不能正常解析。问题排查:通过 netstat  -anp | grep TIME_WAIT | wc -l 命令查看数量,发现TIME

2016-04-29 13:17:29 1318

转载 RAID详解[RAID0/RAID1/RAID10/RAID5]

一.RAID定义RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发 挥出多

2016-04-29 11:06:36 4237

原创 CLOSE_WAIT状态的讨论

摘要:本文阐述了为何socket连接锁定在CLOSE_WAIT状态,以及通过什么措施力求避免这种情况。不久前,我的Socket Client程序遇到了一个非常尴尬的错误。它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那么程序会自动不断地重试建立连接。有一天发现程序在不断尝试建立连接,但是总是失败。用netstat查看,这个程序竟然有上千个sock

2016-04-29 01:22:55 548

转载 linux 解决大量SYN_RECV CLOSE_WAIT

[root@localhost ~]# netstat -nat | awk '/^tcp/{++S[$NF]}END{for (a in S) print a,S[a]}'[root@localhost ~]# netstat -antActive Internet connections (servers and established)Proto Recv-Q Send-Q Lo

2016-04-29 01:21:42 7515

转载 CLOSE_WAIT状态的原因与解决方法

这个问题之前没有怎么留意过,是最近在面试过程中遇到的一个问题,面了两家公司,两家公司竟然都面到到了这个问题,不得不使我开始关注这个问题。说起CLOSE_WAIT状态,如果不知道的话,还是先瞧一下TCP的状态转移图吧。关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机

2016-04-29 01:19:10 3810

转载 Java并发: CountDownLatch、CyclicBarrier和Semaphore

目录[-]CountDownLatch作用示例CyclicBarrier示例CyclicBarrier 和 CountDownLatch 在用法上的不同Semaphore示例:Semaphore 控制资源访问最后一句话总结(原来写过一篇相同标题的文章,不过因为 OSChina 编辑器的缘故,格式改乱了,所以重写一篇。原文已删除,收藏原文的朋友对不住。)这次说一下 JUC 中

2016-04-28 20:28:17 316

转载 MySQL索引背后的数据结构及算法(吐血推荐)

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为四个部分。第

2016-04-28 17:53:55 573

转载 bitmap与2bitmap实现

Bitmap就是用一个bit位来标记某个元素是否存在,而2Bitmap就是用两个bit为来标记某个元素的个数,00,01,10,11(分别表示0,1,2,3,0表示不存在,1表示存在1次,后面依次)。Bitmap能用来处理下面的两个问题:(1)、在2.5亿个整数找出不重复的整数,内存不足以容纳着2.5亿个整数(2)、腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序

2016-04-28 12:11:18 402

转载 Trie的java实现

关注Trie 这种结构已经很久,Trie有一个很有趣的用途,那就是自动提示。而且,前不久在一次面试里,也需要用Trie来解答。所以,在此对这个数据结构进行总结。Trie,又称单词查找树或键树,是一种树形结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。它有3个基本性

2016-04-28 11:20:34 369

转载 如何避免大量重复URL被百度收录

http://www.admin5.com/article/20150701/607371.shtml点击打开链接很多同学会有这样的疑惑,索引量工具显示索引量数值很高但流量总也上不去,也没有发现我们站内有低质内容,百度这是要闹哪样?6月中旬,艺龙SEO负责人刘明给我推荐了他写的文章《如何避免大量URL重复收录》,找到了索引量高流量低的一个原因并给出的解决方案。另外,如果各位同学还有工作经验

2016-04-27 21:29:14 669

转载 Bloom Filter 算法简介 (增加 Counting Bloom Filter 内容)

前言    本博客内曾已经整理过十道海量数据处理面试题与十个方法大总结。接下来,本博客内会重点分析那些海量数据处理的方法,并重写十道海量数据处理的面试题。如果有任何问题,欢迎不吝指正。谢谢。一、什么是Bloom Filter    Bloom Filter是一种空间效率很高的随机数据结构,它的原理是,当一个元素被加入集合时,通过K个Hash函数将这个元素映射成一个位阵列(B

2016-04-27 21:20:19 752

转载 教你如何迅速秒杀掉:99%的海量数据处理面试题

http://blog.csdn.net/v_july_v/article/details/7382693前言   一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。

2016-04-27 20:16:54 802

转载 Commons Collections Java反序列化漏洞深入分析

http://www.myhack58.com/Article/html/3/62/2015/69493.htm今年目前为止Java方面影响力最大的漏洞莫过于这段时间持续火热的CommonsCollections反序列化漏洞了。在2015年11月6日FoxGlove Security安全团队的@breenmachine 发布了一篇长博客里,借用Java反序列化和Apache Com

2016-04-27 19:33:12 13693

转载 load average的详细含义

$uptime11:12:26 up 3:44, 4 users, load average: 0.38, 0.31, 0.19系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:它没有在等待I/O操作的结果 它没有主动进入等待状态(也就是没有调用'wait') 没有被停止(例如:等待终止) 上面的输出,load

2016-04-27 00:09:09 5564

转载 Linux系统负载LoadAverage详解

运维工程师在日常运维中经常使用w、top、uptime等命令来查看系统当前运行的负载情况。那么作为运维工程师是如何通过以上命令来判断系统当前负载是否已经达到极限了呢?为此笔者总结了一下如何通过loadaverage返回的数据来判断系统运行情况。什么是Load?什么是Load Average? Load用最通俗的语言说就是当前cpu需要干的工作量的多少。简单的说是进程队列的长度。

2016-04-27 00:02:36 4932

原创 复合索引如何用

JD面试:复合索引如何用索引可以包含一个、两个或更多个列。两个或更多个列上的索引被称作复合索引。利用索引中的附加列,您可以缩小搜索的范围,但使用一个具有两列的索引不同于使用两个单独的索引。复合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序,然后按名字对有相同姓氏的人进行排序。如果您知道姓,电话簿将非常有用;如果您知道姓和名,电话簿则更为有用,但如果您只知道名不姓,

2016-04-26 23:29:39 8309

原创 约瑟夫环

JD面试:问题: n个人围成一个圆圈,从1到3开始报数,报到3的人出去,这样一直循环,直到只剩下一个人。问剩下的人在开始报数之前的编号?当时我想的是直接用循环链表来模拟整个报数的过程,即构造一个n个数的循环链表,进行循环遍历,每当数到3时删除当前指向的节点,直到剩下最后一个。但是该算法比较复杂,肯定还有简单的算法。约瑟夫环:递归算法假设下标从0开始,0,1,2 .. m

2016-04-26 21:49:59 403

转载 HotSpot JVM

英文原文:The Hotspot JVM is a Ponzi Scheme [guest post]  正好今天是愚人节,就来说点骗子的东西吧~  时不时的我就会听见有人抱怨说,他的 HotSpot JVM 不停的在垃圾回收,可是每次回收完后堆却还是满的。当他们发现这是因为 JVM 的内存已经不够了之后,通常会问这么个问题,为什么 JVM 不抛一个 OutOfMemoryError (O

2016-04-26 11:39:04 656

转载 JAVA8 JVM的变化: 元空间(Metaspace)

本文系翻译:原文地址你注意到了吗?JDK 8早期可访问版本已经提供下载了,java 开发人员可以使用java 8 提供的新的语言和运行特性来做一些实验。其中一个特性就是完全的移除永久代(Permanent Generation (PermGen)),这从JDK 7开始Oracle就开始行动了,比如:本地化的String从JDK 7开始就被移除了永久代(Permanent Generat

2016-04-26 10:22:38 11846 1

转载 Thread的suspend和stop方法的一些问题

反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,当在一个线程对象上调用stop()方法时,这个线程对象所运行的线程就会立即停止,假如一个线程正在执行:synchronized void { x = 3; y = 4;} 由于方法是同步的,多个线程访问时总能保证x,y被同时赋值,而如果一个线程正在执行到x = 3;时,被调用了 stop()方法,即使在同步块中,它也干脆地

2016-04-26 01:01:16 617

转载 停止Java线程,小心interrupt()方法

程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难题,如果没有被恰当的解决,将导致意外的行为以及细微的、难以发现的错误。  在本篇文章中,我们针对这些难题之一:如何中断一个正在运行的线程。 背景     中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作。线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于

2016-04-26 00:23:55 2863

转载 2013年阿里巴巴一道笔试题(大文件处理)

现有一个亿级别数据量的文件,其中有按key升序的记录,现要求通过输入key查找对应的记录。对于这种大文件读取,在读取时一般要采用内存文件映射, 另外,通常的处理操作就是对文件进行分隔。 把文件分隔为若干小文件后,记录下每个小文件中最小的key值,然后把输入值与这些key值依次比较便可以找到key对应的记录所在的小文件,然后把小文件读入内存,进行二分查找。下面是所有的程序代码,为方便

2016-04-25 23:50:12 474

转载 JAVA HashMap 实现原理

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。

2016-04-25 23:09:13 243

转载 115个Java面试题和答案——终极列表(下)

http://www.importnew.com/11028.html点击打开链接本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。异常处理Java小应用程序(Applet)SwingJDBC远程方法调用(RMI)ServletJSP异常处理43.Java中的两种异常类型是什么?他们有什么区别

2016-04-25 21:36:46 338

转载 115个Java面试题和答案——终极列表 (上)

http://www.importnew.com/10980.html本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,第二篇主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(

2016-04-25 21:35:04 487

原创 redis API 和 命令学习网站

http://www.redis.cn/commands/append.htmlhttp://redis.io/topics/data-types-intro#strings

2016-04-25 16:55:48 463

转载 Java 浅拷贝和深拷贝那些事

假如说你想复制一个简单变量。很简单: int apples = 5; int pears = apples;不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。但是如果你复制的是一个对象,情况就有些复杂了。假设说我是一个beginner,我会这样写:class Stude

2016-04-24 23:24:04 337

转载 Java 实例化类的的几种方法

Java中,类的实例化方法有四种途径:1)使用new操作符2)调用Class对象的newInstance()方法3)调用clone()方法,对现有实例的拷贝4)通过ObjectInputStream的readObject()方法反序列化类ClassInstance.javaimport java.io.*;class ClassInstance implements

2016-04-24 20:50:33 980

转载 CAP和BASE理论

1. CAP理论 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。CAP理论为:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(

2016-04-24 01:24:09 509

转载 mysql ndb集群备份数据库和还原数据库的方法

1、在管理节点上进行备份。 ndb_mgm> start backup nowait ndb_mgm> Node 3: Backup 4 started from node 1 Node 3: Backup 4 started from node 1 completed StartGCP: 43010 StopGCP: 43013 #Records: 2138 #LogReco

2016-04-24 00:06:00 1154

转载 mysqldump 用法

mysqldump常用于MySQL数据库逻辑备份。 1、各种用法说明     A. 最简单的用法:mysqldump -uroot -pPassword [database name] > [dump file]     上述命令将指定数据库备份到某dump文件(转储文件)中,比如:mysqldump -uroot -p123 test > test.dump

2016-04-23 23:53:55 463

程序员代码面试指南2-代码

《程序员代码面试指南第二版2》左程云 配套的所有的算法源代码

2019-07-07

dom4j jar包

dom4j v2.0 jar包。开发XML的必备利器

2016-02-10

空空如也

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

TA关注的人

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