04 2020 档案
Zookeeper学习之Jute序列化以及通信协议详解
摘要:一、Jute序列化工具 1、Jute概述 Zookeeper的客户端与服务端之间会进行一系列的网络通信来实现数据传输,Zookeeper使用Jute组件来完成数据的序列化和反序列化操作,其用于Zookeeper进行网络数据传输和本地磁盘数据存储的序列化和反序列化工作。 实体类要使用Jute进行序列化 阅读全文
posted @ 2020-04-20 13:08 kosamino 阅读(1980) 评论(0) 推荐(0) 编辑
Zookeeper学习之Zab一致性协议
摘要:一、什么是Zab算法 Zab借鉴了Paxos算法,是特别为Zookeeper设计的支持崩溃恢复的原子广播协议。基于该协议,zk实现了一种主备模型(即Leader和Follower模型)的系统架构来保证集群中各个副本之间数据的一致性。这里的主备系统架构模型,就是指只有一台客户端(Leader)负责处理 阅读全文
posted @ 2020-04-18 04:05 kosamino 阅读(1434) 评论(2) 推荐(1) 编辑
Zookeeper学习之ZooKeeper源码分析
摘要:一、宏观分析ZooKeeper源码结构 ZooKeeper宏观分析源码,如下图所示: 要想分析源码,首先需要宏观分析整个ZooKeeper结构,要知道ZooKeeper分为两部分:服务端集群、客户端。 其中服务端: 每台ZooKeeper服务器都有三个状态:初始化、运行中、结束关机。因此当服务器都处 阅读全文
posted @ 2020-04-17 20:58 kosamino 阅读(6525) 评论(0) 推荐(3) 编辑
Zookeeper学习之特性详解及客户端源码详解
摘要:一、Zookeeper核心概念 1、什么是znode ZooKeeper操作和维护的为一个个数据节点,称为 znode,如上图所示,znode采用类似文件系统的层级树状结构进行管理。如果 znode 节点包含数据则存储为字节数组(byte array)。 创建 znode 时需要指定节点类型,zno 阅读全文
posted @ 2020-04-16 20:19 kosamino 阅读(722) 评论(0) 推荐(0) 编辑
Zookeeper学习之Zookeeper应用场景及部署
摘要:一、什么是Zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 Github源码:ht 阅读全文
posted @ 2020-04-15 19:47 kosamino 阅读(848) 评论(0) 推荐(0) 编辑
深入浅出吃透多线程、线程池核心原理及代码详解
摘要:一、多线程详解 1、什么是线程 线程是一个操作系统概念。操作系统负责这个线程的创建、挂起、运行、阻塞和终结操作。而操作系统创建线程、切换线程状态、终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情。 2、线程生命周期 Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡: 创 阅读全文
posted @ 2020-04-10 07:21 kosamino 阅读(1666) 评论(0) 推荐(0) 编辑
Spring可二次开发常用接口、类及其源码详解
摘要:Spring为了用户的开发方便和特性支持,开放了一些特殊接口和类,用户可进行实现或者继承,常见的如这些: ApplicationContextAware接口、ApplicationEvent抽象类、ApplicationListener接口、BeanNameAware接口、BeanFactoryAw 阅读全文
posted @ 2020-04-09 21:54 kosamino 阅读(2329) 评论(0) 推荐(1) 编辑
Redis学习之Redis集群模式缺陷及其处理
摘要:一、Redis使用有哪些常见问题 在我们已经有了Jedis客户端、集群模式支持后,Redis基本使用已经没有大的问题了。关于Jedis以及集群模式请参考博文: Redis学习之4种模式实践及机制解析(单机、主从、哨兵、集群) Redis学习之API学习及Jedis源码原理分析 Redis学习之Jed 阅读全文
posted @ 2020-04-08 22:10 kosamino 阅读(3403) 评论(0) 推荐(1) 编辑
Redis学习之API学习及Jedis源码原理分析
摘要:Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 我们在进行Java项目开发的时候,如果要使用Redis数据库,那么常常是通过Redis的Java客户端来简化Redis的使用,例如Redisso 阅读全文
posted @ 2020-04-08 02:43 kosamino 阅读(444) 评论(0) 推荐(0) 编辑
Redis学习之4种模式实践及机制解析(单机、主从、哨兵、集群)
摘要:Redis在日常部署的时候,可以有多种部署模式:单机、主从、哨兵、集群(分区分片),因此本例将对上面这四种模式进行详细的讲解,特别是集群模式将进行最细致的讲解(现行普遍使用的方式)。 一、单机部署 单机部署很简单,直接下载Redis进行安装即可,此处不作详细讲解,具体Redis的安装请参考:Mac下 阅读全文
posted @ 2020-04-07 07:26 kosamino 阅读(2461) 评论(0) 推荐(1) 编辑
Redis学习之Redis概述及原理、基本操作及持久化
摘要:一、Redis介绍 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合 阅读全文
posted @ 2020-04-05 00:08 kosamino 阅读(575) 评论(0) 推荐(0) 编辑
设计模式之备忘录模式(Memento)详解及代码示例
摘要:一、备忘录模式的定义与特点 备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。 备忘录模式能记录一个对象的内部状态,当用户后悔时能撤销当前操作,使数据恢复到它原先的状态。 阅读全文
posted @ 2020-04-02 05:24 kosamino 阅读(2692) 评论(1) 推荐(2) 编辑
设计模式之访问者模式(Visitor)详解及代码示例
摘要:一、访问者模式的定义与特点 访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。 二、 阅读全文
posted @ 2020-04-02 04:41 kosamino 阅读(2510) 评论(0) 推荐(1) 编辑
设计模式之中介者模式(Mediator)详解及代码示例
摘要:一、中介者模式的定义与特点 中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。 二、中介者模式优缺点 中介者模式是一种对象行为型模式,其主要优点如下: 降低了对 阅读全文
posted @ 2020-04-02 04:06 kosamino 阅读(1296) 评论(0) 推荐(0) 编辑
设计模式之命令模式(Command)详解及代码示例
摘要:一、命令模式的定义 命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。 二、命令模式优缺点 命令模式的主要优点如下: 降低系统的耦合度。命令模式能将调用操作的对 阅读全文
posted @ 2020-04-02 03:07 kosamino 阅读(2853) 评论(0) 推荐(0) 编辑
设计模式之迭代器模式(Iterator)详解及代码示例
摘要:一、模式的定义与特点 迭代器(Iterator)模式的定义:迭代器模式是一种对象行为型模式,提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 二、迭代器模式优缺点 其主要优点如下: 访问一个聚合对象的内容而无须暴露它的内部表示。 遍历任务交由迭代器完成,这简化了聚合类。 它 阅读全文
posted @ 2020-04-01 05:34 kosamino 阅读(2286) 评论(0) 推荐(0) 编辑
设计模式之状态模式(State)详解及代码示例
摘要:一、状态模式的定义与特点 应用程序中的有些对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态会发生改变,从而使得其行为也随之发生改变。 状态(State)模式的定义:对有状态的对象 阅读全文
posted @ 2020-04-01 05:17 kosamino 阅读(7639) 评论(0) 推荐(0) 编辑
设计模式之责任链模式(Chain of Responsibility)详解及代码示例
摘要:一、责任链模式的定义与特点 责任链(Chain of Responsibility)模式的定义:责任链模式也叫职责链模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 在 阅读全文
posted @ 2020-04-01 04:25 kosamino 阅读(5129) 评论(0) 推荐(0) 编辑
设计模式之解释器模式(Interpreter)详解及代码示例
摘要:一、解释器模式的定义与特点 解释器(Interpreter)模式的定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。 这里提到的文法和句子的概念同编译 阅读全文
posted @ 2020-04-01 04:01 kosamino 阅读(3790) 评论(1) 推荐(1) 编辑
设计模式之观察者模式(Observer)详解及代码示例
摘要:一、模式的定义与特点 观察者(Observer)模式的定义:观察者模式又被称为发布-订阅/模型-视图模式,属于行为型设计模式的一种,是一个在项目中经常使用的模式。指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 二、观察者模式优缺点 观察者模式 阅读全文
posted @ 2020-04-01 03:03 kosamino 阅读(5511) 评论(0) 推荐(0) 编辑