自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

原创 《京东技术揭秘》读书笔记

这几天看完了《京东技术揭秘》(下文简称《京东》),有些收获,通过博客记录一下。这本书不是专门讲解技术的书,而是一本记录京东技术演进历程的书。内容上类似之前看过《淘宝技术这十年》(下文简称《淘宝》),一本讲解淘宝技术演进历程的书。《淘宝》成书于2013年(出版日期,之前书中的内容已经以博文的形式发布于网上),《京东》成书于2014年。个人觉得《京东》应该是针对《淘宝》出版的,阿里和京东的竞争非常激烈

2015-01-29 23:36:56 1445 1

原创 分布式存储系统设计的关键问题

本文介绍下分布式系统设计中的一些关键问题及解决思路:数据的分布方式副本的保存方式副本的控制节点状态监控1)数据的分布方式hash分布用于key-value模型的存储系统中,数据库中的分表也可以使用这种方式。利用hash函数将对象散列到不同的机器。优点:散列型号,分布均匀,实现简单。缺点可扩展性(scalability)不强,增加新的机

2014-07-18 23:08:34 2192

原创 TCP状态转换图(state transition diagram)

TPC总共有11个状态,状态转换图:转换转换的要素状态:tcp定义的11个状态事件:触发TCP状态迁移。事件可以是:本地应用层调用;收到TCP消息(incoming segment);超时时间(timeout)动作:主要指针对远程Peer产生的动作,如发送确认等。转换中的角色本地应用层 Local App:产生事件。

2014-07-07 14:22:41 5423

原创 posix thread介绍

posix thread是操作系统级(OS level)的API规范,主要用来定义线程及线程间同步的相关操作,采用C语言定义。posix规范主要在unix like类系统上实现;Windows类系统采用了自己的线程API。目前很多语言都在其标准库中提供了语言级的线程支持:如Java中的Thread,concurrenty包;python中的threading model;C++11标准

2014-07-03 15:26:06 6236

原创 垃圾回收(garbage collection)介绍

垃圾回收用来实现内存的自动管理(automatic management),区别于人工管理(manual management)。人工管理内存容易出现的问题:1)悬垂指针,dangling pointer2)重复回收,Double free3)内存泄露,memory leak历史垃圾回收的概念及技术由John McCarthy于1959年发明,应用于List

2014-07-02 16:54:36 2202

原创 一个简易JVM的实现

http://catpad.net/michael/jvm/是一个开源的简易的JVM实现。它实现了大多数的JVM功能,实现简单,适合广大技术爱好者了解JVM的内部工作原理。可以参考《Inside the Java Virtual Machine》by Bill Venners,本书对jvm结构,Java class的定义有详细的讲解。本文介绍下其中的一些关键实现点:类加

2014-06-26 13:10:49 4223 1

原创 fastdfs storage server的设计与实现

fastdfs是一个针对互联网应用设计的分布式文件系统,具有架构简单,结构清晰,代码量小等特点。具体的介绍及架构请参考分布式文件系统FastDFS架构剖析(http://www.programmer.com.cn/4380/),这篇文章是由fastdfs的作者撰写。因为fastdfs的轻量级特点,所以也适合广大技术爱好者学习分布式文件系统的设计及实现技术。通过深入代码,了解

2014-06-24 15:39:18 2912

原创 分布式(集群)文件系统的设计

本文讲的分布式文件系统,是通过集群来实现的,因此也是集群文件系统。本文介绍下分布式文件系统中的常见问题及GFS中给出的解决方法。设计要点:性能提高性能的方法就是并行,讲一个任务分解成多个任务,同时执行。GFS中的思路是将文件分块,每个块是一个chunk,每个chunk单独保存,保存chunk的节点叫chunkserver。对文件的读写,可以转成对chun

2014-06-16 16:57:17 2141

原创 reactor模式与java nio

Reactor是由Schmidt, Douglas C提出的一种模式,在高并发服务器实现中广泛采用。改模式采用事件驱动方式,当事件出现时,后调用相应的事件处理代码(Event Handler)。这个模式是高并发服务器的基础,如nginx和lighttpd。这两种对大并发,但每个请求处理都很快的场景非常适合。通常的web访问就是这个特点。结构包括了5个部分,其中h

2014-06-14 22:49:22 2370

原创 财经作品推荐

中国经济史大败局 吴晓波大败局2 吴晓波激荡三十年 吴晓波跌荡一百年 吴晓波历代经济变革得失 吴晓波吴敬琏传:一个中国经济学家的肖像 吴晓波中国经济六十年 吴敬琏

2014-06-12 22:27:02 750

原创 小说推荐1

最近看了几本官场小说,获益匪浅,五星推荐!!收获总结:开阔眼界,扩展思路,感悟生活,指引人生!推荐大家读一读。国画 王跃文梅次故事 王跃文西州月 王跃文苍黄 王跃文

2014-06-12 22:06:55 1026

原创 什么是分布式系统

什么是分布式系统分布式系统有多个含义:1)表示计算机科学的一个研究领域,研究方向。这个层面的分布式系统比较学术,不是本文讨论的对象。2)工程领域的实际使用的分布式系统。分布式系统是互联网应用的基石,是底层的支撑平台。本文讲的分布式系统指这个层面。互联网应用的特点是:高并发,海量数据。互联网应用的用户数是没有上限的(取决于其开放特性),这也是和传统应用的本质区别。高并

2014-06-11 22:51:30 16395 1

原创 linux文件打开模式

文件打开int open(const char *pathname, int flags, mode_t mode);普通方式(Canonical mode)flags中没有设置O_SYNC and O_DIRECT。这种方式中read是阻塞调用(blocking call),等到磁盘数据读取完毕后返回;write也是阻塞调用,不过write将数据写入到page cache

2014-06-10 22:34:33 1941

原创 linux1.0的磁盘缓存buffer cache

磁盘缓存磁盘缓存和其他类型的缓存系统目的一样,都是为了提高系统的性能。磁盘缓存的方法是利用内存来保存部分磁盘数据,内存数据的读写速度远远快于磁盘读写,来提高系统性能。缓存的位置内核空间(kernel space):缓存在内核中实现。对应用程序来说是透明的。用户空间(user space)缓存:由应用程序自己管理缓存,如C标准库中的stdio,就实现了缓存功能。用

2014-06-10 16:50:28 779

原创 什么是集群

计算机集群(cluster)指一些松散的计算机系统,通过告诉网络连接,协同工作。集群对用户来说就像单台计算机系统,只不过是有更高的性能和更高的可靠性。集群中的每台计算机叫做节点。常见集群类型高性能计算(HPC, high performance computing)主要用于科学计算,多用于科研领域,一般的商业领域较少用到该类集群。最开始出现的集群就是为了高性能计算设计的

2014-06-06 15:45:14 4026

原创 openstack学习之neutron_ml2_plugin

neutron中定义了许多Rest API,API的具体实现放到plugin中实现。neutron pluginneutron设计了plugin的机制来实现这些定义的API。网络虚拟化的是实现技术可以有很多种(可以参考博文《网络虚拟化技术》),不同的是实现技术可以使用一个plugin来实现。每种plugin代表了一种网络虚拟化的实现技术。不同的实现技

2014-06-04 12:27:07 6702 1

原创 网络虚拟化技术

网络虚拟化似于服务器虚拟化,可以在一个物理网络上创建多个虚拟网络。网络虚拟化出现的时间并不长,是随着IaaS的出现而出现。IaaS中的核心技术是虚拟化,包括服务器虚拟化,存储虚拟化和网络虚拟化。其中服务器虚拟化和存储虚拟化出现的时间远远早于IaaS的概念,可以说非常成熟,有很多产品。成熟的关键标识就是行业巨头(们)的出现,行业巨头一般会占据绝大多数的市场份额。有一个结论是,在I

2014-06-02 15:47:14 10798 1

原创 openstack学习之neutron_dhcp_agent

dhcp agent用来给一个网络提供DHCP服务。网络的IP地址可以再创建subnet时指定。dhcp agent启动命令dhcp_agent.py,启动是提供neutron.conf和dhcp_agent.ini配置文件。重要的配置项interface_driver ,dhcp agent使用interface_driver来创建tap设备。dhcp_drive

2014-05-29 23:11:58 6222

原创 openstack学习之neutron_linuxbridge_agent分析

linuxbridge是和linuxbridge plugin匹配的core agent,主要实现L2层的功能和security group的功能。security group的功能逐渐会被neutron firewall取代。linuxbridge的启动命令在linuxbridge_neutron_agent.py中启动的时候需要提供neutron.conf和linuxb

2014-05-29 15:48:30 12487

原创 openstack学习之知识准备

列举一下个人学习openstack过程中涉及到的知识点,供同学们参考。了解这些知识,对学习openstack的代码有很大帮助。pythonopenstack使用pthon开发的,所以pthon知识是必不可少的。python是一种脚本(python)语言,对于习惯了使用传统的编译型语言的同学,可以开始有点不适应,需要慢慢习惯。python的学习:1) 语法学习

2014-05-27 23:26:33 1437

原创 openstack学习之neutron_运行分析

neutron server启动启动命令入口:neutron.server.main#启动rest api serverneutron_api = service.serve_wsgi(service.NeutronApiService)NeutronApiServiceapp = config.load_paste_app(app_name)

2014-05-27 16:29:28 3344

原创 openstack学习之neutron_架构

neutron包括了如下几个组成部分:rest API定义,neutron server和agent。Rest API包括标准API(Networking Rest API)和扩展API(Networking Rest API extensions)。该部分是neutron的对外访问接口,neutron的所有功能全部通过这些api对外展现。标准apineutron的

2014-05-27 13:06:46 4237

原创 openstack学习之RPC服务实现分析

openstack中的服务主要有两种:一种是rest服务,提供Rest API;一种RPC服务,提供RPC API。本文讨论RPC服务的实现。Rest服务的实现在《openstack学习之各种API》有所涉及。RPC服务其实就是一个RPC server,client(客户)可以通过RPC API进行调用。以nova为例,nova中的多数服务(service)都是一个RPC se

2014-05-25 18:13:46 5448

原创 openstack学习之keystone

keystone项目提供了用户管理,权限管理,用户认证等功能,还提供了ServiceCatalog,即Openstack中所有服务的endpoint。endpoint就是rest api的base URL。keystone是openstack的入口,调用openstack Rest API都从keystone开始。rest API流程1)调用keystone Token

2014-05-25 14:54:38 3036

原创 openstack学习之各种API

初看openstack代码,会发现里边有各种和api相关的文件和目录,本文以nova为例,来分析一下这些api的组织与功能。nova中和api有关的文件/目录夹有:api目录多个rpcaip.py多个api.py本文不区分api和API,取决于输入法:)openstack中的几种api:rest api:项目对外接口。本地调用api(

2014-05-25 00:04:29 5673

原创 openstack学习之白话Openstack

Openstack是一个IaaS的开源实现。IaaS的核心是虚拟化,而虚拟化功能是由各种各样的虚拟化软件实现。常用的虚拟化软件有:Linux平台的Xen,qemu; Windows平台上的Oracle VirtualBox, VMWare Player(免费非商业用途产品,还有其他的付V费商用版,Workstation等)。本文就来比较一下Openstack和这些虚拟化软件有什么不同。不了

2014-05-24 22:15:17 4632

原创 openstack学习之RPC

什么是RPCRPC即Remote Procedure Call(远程方法调用),是Openstack中一种用来实现跨进程(或者跨机器)的通信机制。Openstack中同项目内(如nova, neutron, cinder...)各服务(service)及通过RPC实现彼此间通信。Openstack中还有另外两种跨进程的通信方式:数据库和Rest API。Openstack中

2014-05-23 23:31:15 4790

原创 openstack学习之概念篇

OpenStack(这个是官方正式写法)是一个基础设施服务(IaaS, Infrasture as a service)的开源实现。具体介绍可以参考官方网站https://www.openstack.org/,http://en.wikipedia.org/wiki/OpenStack也可以参考。IaaS只是一个概念或者说是一个想法,它到底应该是一个什么样子的,业界并没有什么规

2014-05-09 22:42:35 1525

virtual_network_technology

from HP, introduce vepa and vn-tag(port extension) in network virtulization.

2014-06-02

虚拟机网络接入技术

介绍主流的虚拟机网络接入技术。来源网络。

2014-06-02

空空如也

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

TA关注的人

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