木西笔记

个人博客

TCP/IP系列(4)-SSL/TLS详解(1)

SSL/TLS详解(1)--安全规范

概述 SSL/TSL 协议 **SSL(安全套接字层)**是一种标准安全协议,用于在在线通信中建立Web服务器和浏览器之间的加密链接。 TLS:(Transport Layer Security): 是SSL协议(Secure Sockets Layer)的升级版,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。现在习惯将这个两个组合...

Thrift框架详解(四)

协议和编解码(2)-TCompactProtocol

概诉 上一届主要讨论了Thrift编解码中的二进制协议格式。这是一种比较大众的协议。本节来讨论二进制协议的另一种加强版本。TCompactProtocol 编解码 对于二进制编码,经常需要对数据进行压缩以节省空间,varint可以压缩较小的正数,但是对于负数varint反而更浪费空间,zigzag编码可以处理负数,使负数也可以使用varint编码压缩,protobuf和thrift都使用二者...

Thrift框架详解(四)

协议和编解码(1)-TBinaryProtocol

概诉 本节来讨论thrift 的编解码器。 核心组件 整体架构 Thrift的核心组件, 主要包含以下几个方面 IDL服务描述组件,负责完成跨平台和跨语言(针对不同语言完成了Server层和Client代码的生成) TServer和Client,服务端和客户端组件的实现 TProtocal 协议和解编码组件 TTransport 传输组件 TProcessor 服务调用组件,完成对服务实...

系统架构(一)

阿姆达尔定律

概诉 阿姆达尔定律 什么是阿姆达尔定律 阿姆达尔定律(英语:Amdahl’s law,Amdahl’s argument),一个计算机科学界的经验法则,因吉恩·阿姆达尔(Gene Amdahl)而得名。它代表了处理器平行运算之后效率提升的能力。 1967年计算机体系结构专家吉恩.阿姆达尔提出过一个定律阿姆达尔定律,说:在并行计算中用多处理器的应用加速受限于程序所需的串行时间百分比。 举两个例...

Thrift框架详解(三)

IDL生成文件详解

概诉 上一节,我们已经详解了IDL详细的语法,Thrift 就是根据这个语法,替我们生成目标代码的。下面我们来具体分析一下,生成的代码究竟是什么作用。 准备 目录结构 我们来看一下代码结构 1234567891011121314151617181920├── java│   └── learn│   └── thrift│   ├── bean│   ...

Thrift框架详解(二)

Thrift IDL 详解

概诉 前一章节,我们基本入门,了解了 Thrift 的基本用法,这一节继续来分析 Thrift IDL的内容。 Thrift 采用IDL(Interface Definition Language)来定义通用的服务接口,然后通过 Thrift 提供的编译器,可以将服务接口编译成不同语言编写的代码,通过这个方式来实现跨语言的功能。 IDL定义的规范 IDL 结构规范 123Document ...

Thrift框架详解(一)

概诉与入门

Thrift 简介 Thrift是一个轻量级、跨语言的远程服务调用框架,最初由Facebook开发,后面进入Apache开源项目。它通过自身的IDL中间语言, 并借助代码生成引擎生成各种主流语言的RPC服务端/客户端模板代码。 Thrift支持多种不同的编程语言,包括C++、Java、Python、PHP、Ruby等,本系列主要讲述基于Java语言的Thrift的配置方式和具体使用。 Thr...

JAVA多线程之AQS分析(3)

ReentrantReadWriteLock 读写锁源码分析

基础 所谓读写锁,是对访问资源共享锁和排斥锁,一般的重入性语义为:如果对资源加了写锁,其他线程无法再获得写锁与读锁,但是持有写锁的线程,可以对资源加读锁(锁降级);如果一个线程对资源加了读锁,其他线程可以继续加读锁。本文主要分析JDK(1.8+)JCU包中读写锁接口(ReadWriteLock)的重要实现类ReentrantReadWriteLock的细节,来阐述AQS的应用。 样例 我们来...

数据库原理篇(3)

InnoDB中的锁

InnoDB 介绍 InnoDB 中的锁 你可能听过各种各样的 InnoDB 的数据库锁,Gap 锁,共享锁,排它锁,读锁,写锁等等。但是 InnoDB 的标准实现的锁只有 2 类,一种是行级锁,一种是意向锁。 InnoDB的行级锁: 共享锁(读锁 S Lock),允许事务读一行数据。 排它锁(写锁 X Lock),允许事务删除一行数据或者更新一行数据。 行级锁中,除了 S 和 S 兼容,...

数据库原理篇(2)

InnoDB 的数据存储方式

InnoBD 的数据结构 InnoBD 中的数据结构概览 先来看一下 InnoDB 中的整体存贮逻辑 MySQL 使用 InnoDB 存储表时,会将表的定义和数据索引等信息分开存储,其中前者存储在 .frm 文件中,后者存储在 .ibd 文件中,这一节就会对这两种不同的文件分别进行介绍。 .frm 文件 无论在 MySQL 中选择了哪个存储引擎,所有的 MySQL 表都会在硬盘上创建一个 ...