- 博客(28)
- 资源 (3)
- 收藏
- 关注
原创 《京东技术揭秘》读书笔记
这几天看完了《京东技术揭秘》(下文简称《京东》),有些收获,通过博客记录一下。这本书不是专门讲解技术的书,而是一本记录京东技术演进历程的书。内容上类似之前看过《淘宝技术这十年》(下文简称《淘宝》),一本讲解淘宝技术演进历程的书。《淘宝》成书于2013年(出版日期,之前书中的内容已经以博文的形式发布于网上),《京东》成书于2014年。个人觉得《京东》应该是针对《淘宝》出版的,阿里和京东的竞争非常激烈
2015-01-29 23:36:56
1528
1
原创 分布式存储系统设计的关键问题
本文介绍下分布式系统设计中的一些关键问题及解决思路:数据的分布方式副本的保存方式副本的控制节点状态监控1)数据的分布方式hash分布用于key-value模型的存储系统中,数据库中的分表也可以使用这种方式。利用hash函数将对象散列到不同的机器。优点:散列型号,分布均匀,实现简单。缺点可扩展性(scalability)不强,增加新的机
2014-07-18 23:08:34
2268
原创 TCP状态转换图(state transition diagram)
TPC总共有11个状态,状态转换图:转换转换的要素状态:tcp定义的11个状态事件:触发TCP状态迁移。事件可以是:本地应用层调用;收到TCP消息(incoming segment);超时时间(timeout)动作:主要指针对远程Peer产生的动作,如发送确认等。转换中的角色本地应用层 Local App:产生事件。
2014-07-07 14:22:41
5734
原创 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
6327
原创 垃圾回收(garbage collection)介绍
垃圾回收用来实现内存的自动管理(automatic management),区别于人工管理(manual management)。人工管理内存容易出现的问题:1)悬垂指针,dangling pointer2)重复回收,Double free3)内存泄露,memory leak历史垃圾回收的概念及技术由John McCarthy于1959年发明,应用于List
2014-07-02 16:54:36
2285
原创 一个简易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
4324
原创 fastdfs storage server的设计与实现
fastdfs是一个针对互联网应用设计的分布式文件系统,具有架构简单,结构清晰,代码量小等特点。具体的介绍及架构请参考分布式文件系统FastDFS架构剖析(http://www.programmer.com.cn/4380/),这篇文章是由fastdfs的作者撰写。因为fastdfs的轻量级特点,所以也适合广大技术爱好者学习分布式文件系统的设计及实现技术。通过深入代码,了解
2014-06-24 15:39:18
2986
原创 分布式(集群)文件系统的设计
本文讲的分布式文件系统,是通过集群来实现的,因此也是集群文件系统。本文介绍下分布式文件系统中的常见问题及GFS中给出的解决方法。设计要点:性能提高性能的方法就是并行,讲一个任务分解成多个任务,同时执行。GFS中的思路是将文件分块,每个块是一个chunk,每个chunk单独保存,保存chunk的节点叫chunkserver。对文件的读写,可以转成对chun
2014-06-16 16:57:17
2235
原创 reactor模式与java nio
Reactor是由Schmidt, Douglas C提出的一种模式,在高并发服务器实现中广泛采用。改模式采用事件驱动方式,当事件出现时,后调用相应的事件处理代码(Event Handler)。这个模式是高并发服务器的基础,如nginx和lighttpd。这两种对大并发,但每个请求处理都很快的场景非常适合。通常的web访问就是这个特点。结构包括了5个部分,其中h
2014-06-14 22:49:22
2412
原创 财经作品推荐
中国经济史大败局 吴晓波大败局2 吴晓波激荡三十年 吴晓波跌荡一百年 吴晓波历代经济变革得失 吴晓波吴敬琏传:一个中国经济学家的肖像 吴晓波中国经济六十年 吴敬琏
2014-06-12 22:27:02
793
原创 小说推荐1
最近看了几本官场小说,获益匪浅,五星推荐!!收获总结:开阔眼界,扩展思路,感悟生活,指引人生!推荐大家读一读。国画 王跃文梅次故事 王跃文西州月 王跃文苍黄 王跃文
2014-06-12 22:06:55
1089
原创 什么是分布式系统
什么是分布式系统分布式系统有多个含义:1)表示计算机科学的一个研究领域,研究方向。这个层面的分布式系统比较学术,不是本文讨论的对象。2)工程领域的实际使用的分布式系统。分布式系统是互联网应用的基石,是底层的支撑平台。本文讲的分布式系统指这个层面。互联网应用的特点是:高并发,海量数据。互联网应用的用户数是没有上限的(取决于其开放特性),这也是和传统应用的本质区别。高并
2014-06-11 22:51:30
16518
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
2000
原创 linux1.0的磁盘缓存buffer cache
磁盘缓存磁盘缓存和其他类型的缓存系统目的一样,都是为了提高系统的性能。磁盘缓存的方法是利用内存来保存部分磁盘数据,内存数据的读写速度远远快于磁盘读写,来提高系统性能。缓存的位置内核空间(kernel space):缓存在内核中实现。对应用程序来说是透明的。用户空间(user space)缓存:由应用程序自己管理缓存,如C标准库中的stdio,就实现了缓存功能。用
2014-06-10 16:50:28
828
原创 什么是集群
计算机集群(cluster)指一些松散的计算机系统,通过告诉网络连接,协同工作。集群对用户来说就像单台计算机系统,只不过是有更高的性能和更高的可靠性。集群中的每台计算机叫做节点。常见集群类型高性能计算(HPC, high performance computing)主要用于科学计算,多用于科研领域,一般的商业领域较少用到该类集群。最开始出现的集群就是为了高性能计算设计的
2014-06-06 15:45:14
4228
原创 openstack学习之neutron_ml2_plugin
neutron中定义了许多Rest API,API的具体实现放到plugin中实现。neutron pluginneutron设计了plugin的机制来实现这些定义的API。网络虚拟化的是实现技术可以有很多种(可以参考博文《网络虚拟化技术》),不同的是实现技术可以使用一个plugin来实现。每种plugin代表了一种网络虚拟化的实现技术。不同的实现技
2014-06-04 12:27:07
6825
原创 网络虚拟化技术
网络虚拟化似于服务器虚拟化,可以在一个物理网络上创建多个虚拟网络。网络虚拟化出现的时间并不长,是随着IaaS的出现而出现。IaaS中的核心技术是虚拟化,包括服务器虚拟化,存储虚拟化和网络虚拟化。其中服务器虚拟化和存储虚拟化出现的时间远远早于IaaS的概念,可以说非常成熟,有很多产品。成熟的关键标识就是行业巨头(们)的出现,行业巨头一般会占据绝大多数的市场份额。有一个结论是,在I
2014-06-02 15:47:14
11104
原创 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
6327
原创 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
12643
原创 openstack学习之知识准备
列举一下个人学习openstack过程中涉及到的知识点,供同学们参考。了解这些知识,对学习openstack的代码有很大帮助。pythonopenstack使用pthon开发的,所以pthon知识是必不可少的。python是一种脚本(python)语言,对于习惯了使用传统的编译型语言的同学,可以开始有点不适应,需要慢慢习惯。python的学习:1) 语法学习
2014-05-27 23:26:33
1484
原创 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
3402
原创 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
4441
原创 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
5493
原创 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
3104
原创 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
5760
原创 openstack学习之白话Openstack
Openstack是一个IaaS的开源实现。IaaS的核心是虚拟化,而虚拟化功能是由各种各样的虚拟化软件实现。常用的虚拟化软件有:Linux平台的Xen,qemu; Windows平台上的Oracle VirtualBox, VMWare Player(免费非商业用途产品,还有其他的付V费商用版,Workstation等)。本文就来比较一下Openstack和这些虚拟化软件有什么不同。不了
2014-05-24 22:15:17
4685
原创 openstack学习之RPC
什么是RPCRPC即Remote Procedure Call(远程方法调用),是Openstack中一种用来实现跨进程(或者跨机器)的通信机制。Openstack中同项目内(如nova, neutron, cinder...)各服务(service)及通过RPC实现彼此间通信。Openstack中还有另外两种跨进程的通信方式:数据库和Rest API。Openstack中
2014-05-23 23:31:15
4883
原创 openstack学习之概念篇
OpenStack(这个是官方正式写法)是一个基础设施服务(IaaS, Infrasture as a service)的开源实现。具体介绍可以参考官方网站https://www.openstack.org/,http://en.wikipedia.org/wiki/OpenStack也可以参考。IaaS只是一个概念或者说是一个想法,它到底应该是一个什么样子的,业界并没有什么规
2014-05-09 22:42:35
1583
virtual_network_technology
2014-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人