月份:2017年1月

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…

阅读全文 »

Java Random分析

前言 最近测试经常反应游戏中出现随机的地方,比如:开宝箱,装备的掉落以及属性的随机等,表现的不尽如意;所以开始怀疑我们的随机算法,而我们使用的就是JDK自带的Random类,跟他们解释他们也不太明白,没办法只能以一种更加直观的方式展示给他们看更具有说服力,刚好也可以更加深入的了解一下Random类。 简介 打开Random类的源代码,在类注释中可以看到如下说明: 此类的实例用于生成伪随机数流。此类使用48位的种子,使用线性同余公式 (linear congruential form) 对其进行了修改(请参阅 Donald Knuth 的The Art of Computer Programmi…

阅读全文 »

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…

阅读全文 »