Posts
All the articles I've posted.
-
UDP 套接字编程入门
概述 在使用TCP编写的应用程序和使用UDP编写的应用程序之间存在一些本质差异,其原因在于这两个传输层之间的差别:UDP是无连接不可靠的数据报协议,不同于TCP提供的面向连接的可靠字节流。从资源的角度来看,相对来说UDP套接字开销较小,因为不需要维持网络连接,而且因为无需花费时间来连接连接,所...
-
Windows 编程概述
本文对windows编程中涉及的一些基本概念作一个简单的概述。 事件驱动 Windows 应用程序基于事件驱动模型,windows应用程序启动后会一直等待事件的发生。 常见的事件包括,键盘某个按键被按下,鼠标单击,窗口按钮被点击,窗口可见,等等。 消息与消息队列 Windows 操作系统使用消...
-
图解UNIX的I/O模型
一、简述 UNIX系统将所有的外部设备都看作一个文件来看待,所有打开的文件都通过文件描述符来引用。文件描述符是一个非负整数,它指向内核中的一个结构体。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。而对于一个socket的读写也会有相应的文件描述符,称为socketfd(s...
-
Google Protocol Buffers 体验日志
最近在看RPC的相关的实现,其中google的 gRPC 默认使用 Protocol Buffers 来作为其接口描述语言(IDL,Interface Definition Language)以及使用 Protocol Buffers 实现消息的序列化与反序列化。因此,很有必要对 protoc...
-
TCP的连接管理
简述 TCP是面向连接的协议,TCP把连接作为最基本的抽象。每一条TCP连接唯一地被通信两端的两个端点所确定。那么,TCP连接的端点是什么呢?TCP连接的端点又叫套接字(socket),根据TCP协议的规定,端口号拼接到IP地址即构成了套接字,即 > 套接字 socket = (IP地址:端口...
-
Redis Sentinel 学习笔记
概述 Redis Sentinel 是用来实现 Redis 高可用的一套解决方案。Redis Sentinel 由两个部分组成:由一个或者多个 Sentinel 实例组成 Sentinel 系统;由一个主 Redis 服务器(master redis)和多个从 Redis 服务器(slave ...
-
ZooKeeper的Znode剖析
在ZooKeeper中,节点也称为znode。由于对于程序员来说,对zk的操作主要是对znode的操作,因此,有必要对znode进行深入的了解。 ZooKeeper采用了类似文件系统的的数据模型,其节点构成了一个具有层级关系的树状结构。例如,图1展示了zk节点的层级树状结构。 图1:ZooKe...
-
ZooKeeper命令简介
ZooKeeper的客户端包括Java版本和C语言版本。使用Java版本连接zk的命令以下: 执行此命令,客户端成功连接上zk,会有类似以下的输出,其中,包括“Welcome to ZooKeeper!”的欢迎语,以及其他一些连接的信息等。 连接成功后,便可以使用命令与zk服务进行交互。
-
ZooKeeper的安装与部署
本文讲述如何安装和部署ZooKeeper。 一、系统要求 ZooKeeper可以运行在多种系统平台上面,表1展示了zk支持的系统平台,以及在该平台上是否支持开发环境或者生产环境。 表1:ZooKeeper支持的运行平台 系统 生产环境 ----------------Linux 支持 So...
-
ZooKeeper概览
一、简介 ZooKeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步,集群管理,命名空间,配置维护等。ZooKeeper使用了我们熟悉的文件树状结构作为自己的数据模型,因此是易于使用的。 我们知道,由于资源竞争等因素...