`
sungyang
  • 浏览: 20219 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
一、TCP连接: 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。   三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:   (1)第一次握手:Client将标志位SYN置为1,随机产生一个值 ...
注:以下内容摘自网络! Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器、镜像等。 我们先来回顾一下传统虚拟化技术的体系架构: 可见,我们在宿主机的操作系统上,可安装了多个虚拟机,而在每个虚拟机中,通过
1、在HDFS中,fsimage和eidts是NameNode两个非常重要的文件。 其中,fsimage是HDFS文件系统存于硬盘中的元数据检查点,里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息;而edits保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等等。 2、在NameNode启动时候,会先将fsimage中的文件系统元数据信息加载到内存,然后根据eidts中的记录将内存中的元数据同步至最新状态;所以,这两个文件一旦损坏或丢失,将导致整个HDFS文件系统不可用。这两种文件存放在${dfs.namenode. ...

dubbo

注:以下内容摘自dubbo官网用户指南。 背景 (#) 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
转自: http://wenku.baidu.com/view/52b477b765ce0508763213c8.html 今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步发展的基本过程,读完后,请思考,你现在在哪个阶段。   架构演变第一步:物理分离WebServer和数据库   最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设 ...

hadoop block

1、Block,文件块:最基本的存储单位。文件被切成多个Block,存在dataNode之上,dataNode上会有多个不同Block,相同Block存在于多个dataNode上。 对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block. 2、不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。Replication,多复本:默认情况下每个块有三个副本(h ...
都知道运行job时可以通过Job.setNumReduceTasks(int tasks)来设定Reduce任务数,那么Map任务数如何设定呢,API中并没有提供像直接指定Reduce任务数那样来直接指定Map任务数的方法,先来理下逻辑: 首先,文件在上传到Hdfs文件系统的时候,被切分成不同的Block块(默认大小为128MB,这里是hadoop2,hadoop1是64M)。但是每个Map处理的分块有时候并不是系统的物理Block块大小。实际处理的输入分块的大小是根据InputSplit来设定的,那么InputSplit是怎么得到的呢? 看源码可知计算splitSize过程以下是部分代 ...
注:本文转载于网络!     大型网站架构从来都不是一个预先定义的架构,而是一个演进式的架构。很少有一个网站从建站开始,就能够因具备大型网站的所有属性而一成不变的,从最简单的LAMP架构,再到基于IOE的大型集中 ...
java写程序时使用集合是再正常不过的了,经常用,做个简单的总结: 1、List Vector: 早在1.0版本就出现了,底层数据结构是可变长度数组,百分之百延长,是同步的; ArrayList: 1.2版本出现.底层数据结构是也可变长度数组,百分之五十延长,是不同步的; LinkedList: 底层数据结构是链表结构,不同步; 2、Set HashSet:数据结构是哈希表(底层数据结构是数组,但是比数组高效); TreeSet:数据结构是二叉树; 3、Map HashMap:
之前项目中经常会碰到线程共享数据的场景,简单总结下: 1、通常情况会用java.lang.ThreadLocal来实现线程范围的共享变量,线程内共享,线程外独立; 2、ThreadLocal的作用和目的:用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。 应用场景:订单处理、银行转账; 3、demo package cn.cloudBy.concurrent; import java.util.Random; /** * @description:different modules(d ...
使用JAVA到现在,总结下类加载器: 1、什么是类加载器? 顾名思义,类加载器就是加载类的工具。 2、JVM中的类加载器 JVM中可以安装多个类加载器,系统默认有三个主要类加载器,每个类负责加载特定位置的类,系统默认有三个主要类加载器分别是:BootStrap、ExtClassLoader、AppClassLoader 3、类加载器也是
谨记,拍死"负能量",才能获得正能量,积极向上,共同进步! 注:本人在以往及现在的工作中也多次出现以下“负能量”,归其原因主要是自身心态不定,多少也有客观因素的影响,比如领导、同事带来的影响等,但是不管怎样,当自己意识到自己有了这些“负能量”的时候,一定要即刻调整过来! 1、抱怨——杀伤力最大辐射面最广的负能量 团队里的"祥林嫂"可男可女,他们总爱数落工作和生活中的种种不满,自怜自艾。工作中谁没有压力,成天抱怨咒骂,让本来安心工作的人也容易被负面情绪困扰。抱怨是团队中最易传播,辐射最快最广最具杀伤力的"负能量"。抱怨让自己和他 ...
各位看官,之前所有博客因个人原因现已删除废弃,此刻开始本人所有博客统一发表在iteye,望关注,多多指教!
Global site tag (gtag.js) - Google Analytics