分类:分布式系统

Dubbo的一次体验与分析

Dubbo是什么 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案; 其核心部分包含: 远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。 架构图如下:来自官网 Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的…

阅读全文 »

Kafka快速开始

入门 1.简介 Kafka is a distributed streaming platform,kafka是一个分布式流式平台,具有三个关键功能: 1.它允许您发布和订阅记录流。在这方面,它类似于消​​息队列或企业消息系统; 2.它允许您以容错方式存储记录流; 3.它允许您在记录发生时处理记录。 了解几个概念: 1.Kafka作为一个群集在一个或多个服务器上运行; 2.Kafka集群以称为Topic的类别存储记录流; 3.每个记录由一个键,一个值和一个时间戳组成。 来自Kafka官网的一张介绍Kafka的图片: 如上图所示,kafka提供了四个核心的API: 1.Producer API允…

阅读全文 »

基于ELK5.1(ElasticSearch, Logstash, Kibana)的一次整合测试

前言 开源实时日志分析ELK平台(ElasticSearch, Logstash, Kibana组成),能很方便的帮我们收集日志,进行集中化的管理,并且能很方便的进行日志的统计和检索,下面基于ELK的最新版本5.1进行一次整合测试。 ElasticSearch 1.概述: ElasticSearch是一个高可扩展的开源的全文搜索分析引擎。它允许你快速的存储、搜索和分析大量数据。ElasticSearch通常作为后端程序,为需要复杂查询的应用提供服务。 Elasticsearch是一个基于Lucene的开源分布式搜索引擎,具有分布式多用户能力。Elasticsearch是用java开发,提供Re…

阅读全文 »

Raft算法浅析

前言 在上一篇文章ZAB协议和Paxos算法中提到Zookeeper中的一致性协议ZAB本质上是对Paxos的简化和优化,可见Paxos的复杂性(主要是多个并发进程之间没有主次关系)以及甚至可能出现活锁问题,让具体实现起来比较复杂,下面要介绍的Raft一致性算法正是在这种环境下出现的。 Raft是斯坦福的Diego Ongaro、John Ousterhout两个人以易懂为目标设计的一致性算法,在2013年发布了论文:《In Search of an Understandable Consensus Algorithm》,到现在已经有了十多种语言的Raft算法实现框架,较为出名的有etcd,G…

阅读全文 »

Zookeeper序列化组件Jute分析

简介 Jute是Zookeeper中的序列化组件,最初也是Hadoop中的默认序列化组件,前身就是Hadoop Record IO,后来由于Apache Avro具有更好的跨语言性,丰富的数据结构和对MapReduce的支持,并且能够方便的用于RPC调用;因此Hadoop废弃了Record IO,开始使用Avro,并且将Record IO剥离出来,成为了一个独立的序列化组件,重新命名为Jute。 Zookeeper从最早的版本开始就一直使用Jute作为序列化工具,直到现在最新的版本zookeeper-3.4.9依然使用Jute;至于为什么没有换成性能更好,通用性更强的如:Apache Avro…

阅读全文 »

ZAB协议和Paxos算法

前言 在上一篇文章Paxos算法浅析中主要介绍了Paxos一致性算法应用的场景,以及对协议本身的介绍;Google Chubby是一个分布式锁服务,其底层一致性实现就是以Paxos算法为基础的;但这篇文件并不是介绍Chubby,而是介绍了一个和Chubby拥有类似功能的开放源码的分布式协调服务Zookeeper,以及Zookeeper数据一致性的核心算法ZAB。 Zookeeper简介 Zookeeper是一个分布式数据一致性的解决方案,分布式应用可以基于它实现诸如数据发布/订阅,负载均衡,命名服务,分布式协调/通知,集群管理,Master选举,分布式锁和分布式队列等功能。Zookeeper致…

阅读全文 »

Paxos算法浅析

前言 在文章2PC/3PC到底是啥中介绍了2PC这种一致性协议,从文中了解到2PC更多的被用在了状态一致性上(分布式事务),在数据一致性中很少被使用;而Paxos正是在数据一致性中被广泛使用,在过去十年里,Paxos基本成为了分布式领域内一致性协议的代名词。Google的粗粒度锁服务Chubby的设计开发者Burrows曾经说过:“所有一致性协议本质上要么是Paxos要么是其变体”。Paxos的提出者LeslieLamport也因其对分布式系统的杰出理论贡献获得了2013年图灵奖。 在介绍Paxos之前,先介绍一下数据一致性到底被用在什么场景中,下面以副本状态机来表述 副本状态机 在分布式环境…

阅读全文 »

2PC/3PC一致性协议

前言 在上一篇文章从ACID到CAP/BASE中我们介绍了CAP理论,其中最重要的一点就是一个分布式系统不可能同时满足一致性、可用性和分区容错性这三个基本需求,最多只能同时满足其中的两项;而一般都会在一致性和可用性之间进行权衡,于是产生了一系列的一致性协议。 在介绍有哪些一致性协议之前,我们先来看看一致性模型 一致性模型 一致性模型大体上可以划分为2个大类:强一致性和弱一致性 弱一致性可以划分为:最终一致性,因果一致性,读你所写一致性,会话一致性,单调读一致性,单调写一致性 其中最常见的两项就是:强一致性和最终一致性 强一致性:新的数据一旦写入,在任意副本任意时刻都能读到新值 最终一致性:当你…

阅读全文 »