随笔分类 - 开源研究
摘要:Kafka在0.10版本推出了Stream API,提供了对存储在Kafka内的数据进行流式处理和分析的能力。
本文将从流式计算出发,之后介绍Kafka Streams的特点,最后探究Kafka Streams的架构。
阅读全文
摘要:介绍什么是延迟消息,延迟消息在业界的实现情况,分析延迟消息的难点,分析RocketMQ延迟消息的实现,推导延迟消息的方案。
阅读全文
摘要:最近关注OpenMessaging项目,它尝试去定义一套MQ领域的行业标准。MQ目前确实没有一套标准的接口,如果我们尝试从更高的层次看自己的项目,即我们希望它成为行业标准,那么现在项目中接口的定义合适吗?是否够通用、简洁、易用、合理?
带着这样的疑问,最近把Kafka Consumer部分的源码读了一遍,因为:
1. Kafka应该是业界最著名的一个开源MQ了(RocketMQ最初也是参考了Kafka去实现的)
2. 希望通过读Kafka源码能找到一些定义MQ接口的想法
但是在读完Kafka Consumer部分的源码后稍稍有一些失望,因为它并没有给我代码我想要的,反而在读完后觉得接口设计和源码实现上相对于Kafka的盛名有一些名不副实的感觉。
阅读全文
摘要:Netty的ByteBuf是JDK中ByteBuffer的升级版,提供了NIO buffer和byte数组的抽象视图。
ByteBuf的主要类集成关系:
阅读全文
摘要:Kafka官方文档《实现》一章的翻译。
另附个人公众号,计划写一个系列的文章《MQ从入门到...》,会从最基础的MQ介绍到最终设计和实现一个MQ,欢迎长期关注和交流。
阅读全文
摘要:我们设计Kafka用来作为统一的平台来处理大公司可能拥有的所有实时数据源。为了做到这点,我们必须思考大量的使用场景。
它必须有高吞吐去支持大数据流,例如实时日志聚合。
它必须优雅的处理数据积压,以支持定期从离线系统加载数据。
这也以为这系统必须支持低延迟的分发来处理传统消息系统的场景。
阅读全文
摘要:Kafka是一个分布式的流平台。这意味着什么?
我们认为流平台有3个核心的能力
允许发布和订阅记录流。在这方面类似消息队列和企业级的消息系统。
允许以容错的方式存储记录流。
允许以流的形式处理记录。
阅读全文
摘要:对象池其实就是缓存一些对象从而避免大量创建同一个类型的对象,类似线程池的概念。对象池缓存了一些已经创建好的对象,避免需要时才创建对象,同时限制了实例的个数。池化技术最终要的就是重复的使用池内已经创建的对象。从上面的内容就可以看出对象池适用于以下几个场景:
1. 创建对象的开销大
2. 会创建大量的实例
限制一些资源的使用
阅读全文
摘要:排查、解决HDFS Browse the filesystem无效问题
阅读全文
摘要:Hive权限相关的介绍及Hive中超级管理员的实现。
阅读全文
摘要:想总结一下验证码(开源使用的验证码。当然,也可以自己去实现,不过有成熟的开源项目就用吧)的内容,然后看了几个开源项目,发现SimpleCaptcha使用比较简单,容易入手,就从它开始吧。
阅读全文
摘要:Ant是一个用于简单或复杂Java工程的自动化构建、部署工具,它对于那些具有分布式开发团队或者相信通过频繁的构建来进行不间断集成的公司尤其有用。对于那些建立传统全Java应用程序以及那些使用HTML、JSP和Java servlets创建Web应用程序的公司来说,Ant极具价值。无论你的Java开发者使用什么操作系统、集成开发环境或者构建环境,Ant都可以将你的工程集合在一起,用于那些重要的构建。Ant也能够自动化并且同步文档部署,这通常发生在软件开发过程中的没有正式文档和文档比较混乱的部分。
在构建和部署Java应用程序的时候,Ant处理着大量有用的任务。最基本的任务包括添加和移除目录、使用FTP拷贝和下载文件、创建JAR和ZIP文件以及创建文档。更高级的特性包括用源代码控制系统诸如CVS或者SourceSafe来检查源代码、执行SQL查询或脚本、将XML文件转换为人能识别的HTML,以及为远程方法调用生成stub(存根)文件。
Ant和Make(非常著名的构建工具,很多C语言开发人员都使用它)之间有什么不同?Ant是为Java而创建,带有属于其自身的
阅读全文
摘要:The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it is well-suited to sending binary data without any need to extend the protocol with attachments.
此文使用hessian为hessian-4.0.7,源码及jar包请自行下载。------当然是java版了,咱也不会别的。
开始吧!
阅读全文
摘要:工作中遇到了MINA,以前没接触过,所以就想搞搞明白这东西干嘛的,怎么玩起来的。最近花了几天时间去学习,这里做个小结以整理知识加深理解。 Apache MINA是一个网络应用框架框架,用来帮助用户简单地开发高性能和高可靠性的网络应用程序。它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的事件驱动的异步API。(至少知道是搞网络的框架了~~~) 直接看个例子吧!!! 实现一个简单的计算器服务,客户端发送要计算的表达式给服务器,服务器返回计算结果。比如客户端发送2+2,服务器返回4。 (怎么就直接上代码了,还糊涂着呢!!!~~~哈哈哈 Code Monkey总是如此
阅读全文