LevelDB-03-log
Log
上节内容讲到log文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据。
因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Memtable中的数据没有来得及Dump到磁盘的SSTable文件,LevelDB也可以根据log文件恢复内存的Memtable数据结构内容,不会造成系统丢失数据,在这点上LevelDb和Bigtabl...
2018-09-06 23:44:19 |
Cache
LevelDB-02-为什么这么快
整体架构
LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口。为了便于理解整个系统及其处理流程,我们可以从两个不同的角度来看待LevleDb:静态角度和动态角度。从静态角度,可以假想整个系统正在运行过程中(不断插入删除读取数据),此时我们给LevelDb照相,从照片可以看到之前系统的数据在内存和磁盘中是如何分布的,处于什么状态等;从动态的角度,主要是了解系统是如何写入...
2018-09-06 23:44:19 |
Cache
LevelDB-01-入门
LevelDB
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
Features
键和值是任意的字节数组。
数据按键存储。
...
2018-09-06 23:44:19 |
Cache
Memcached
Memcached
官方定义
Memcached 是免费和开源、高性能、分布式内存对象缓存系统,本质上是通用的,但用于通过减轻数据库负载来加速动态web应用程序。
Memcached是内存中的一个键值存储,用于存储来自数据库调用、API调用或页面呈现结果的任意数据块(字符串、对象)。
Memcached简单而强大。其简单的设计促进了快速部署,易于开发,并解决了大型数据缓存所面临的许多...
2018-09-06 23:44:19 |
Cache
Serializable
序列化
概念
Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。
但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。
使用Java对象序列化,在保存对象时,会把其状态保存为一...
2018-09-06 03:44:07 |
Java
Serializable ID-02-序列化标识
Serializable ID 作用
简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。
在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。
不写的弊端
当实现 j...
2018-09-06 03:44:07 |
Java
Dubbo in action
记录 dubbo 中常见的问题总结。
基础概念
手写 dubbo
simple rpc
dubbo
dubbo 的概念
dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含:
集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
远程通讯: 提供对多种基于长连接...
2018-09-06 03:36:05 |
Dubbo
Service Mesh
Service Mesh
Service mesh 又译作 “服务网格”,作为服务间通信的基础设施层。
概念
A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable deliver...
2018-09-06 02:00:45 |
Architecture