自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 从Storm学习集群管理

从Storm看集群管理 简介Storm是当前最流行的分布式实时计算平台,使用场景是根据Storm定义的接口规范编写一个实时处理流,然后提交到Storm平台处理,Storm平台解析该处理流,使其并行、分布式地在集群中运行,并附带相应的状态监控。本文主要描述Storm的集群管理这块的内容,处理流的相关接口逻辑规范不作涉及。       Storm集群监控管理的目标是管理和监控用户提交的

2015-01-31 16:43:12 2704 1

原创 Erlang应用系统内部状态监控

开发一个基于erlang/OTP的应用系统,实际上是构建了一个由几十万甚至上百万的erlang进程构成的一个actor系统。系统的内部健康状态完全可以由内部的进程状态来体现。一般关心的进程状态有:内存占用、消息队列大小、执行归约数reduction等等。attach到一个启动的erlang节点的命令:erl -sname node_1 -remsh node_2@other

2014-06-10 20:31:31 1073

原创 Actor编程模型——akka

介绍akka之前需要简单说一下Scala,Scala号称下一代jvm语言,集成了Java的面向对象,以及函数式编程于一体,异常强大,但也复杂,此文不作争论,姑且简单介绍。Akka框架是基于scala以及少量java代码实现的,Scala从其2.11.0版本起将自有的底层actor库替换成了akka,可见akka的强大。Akka官网的自吹:Akka is

2014-05-02 17:25:10 1114

原创 Actor编程模型——Erlang/OTP

Erlang是一门编程语言,OTP是根据Erlang的编程哲学实现的一套系统库,以帮助程序员高效和正确地编写程序。Erlang的编程思想是和上述actor编程思想是差不多的,只是叫法不一样。在Erlang中每个actor用一个“进程”来表示,此处的进程是Erlang语言级的进程,不是OS级的进程,或我们熟悉的java线程。进程是Erlang中的基本单位,表示一个actor,可以根据

2014-05-02 17:16:07 2257

原创 Actor编程模型——简介

一、            引言之前系统中有这样一处代码:在线上运行一段时间后,这个任务线程竟然莫名其妙地退出了,要不是后来添加了一些日志信息,以及thread-dump分析,根本不晓得这个任务早都没有了。原因就是handler方法里面抛出了unchecked异常NullPointerException,导致该任务直接退出了,while循环直接退出结束。后来用try…cat

2014-05-02 17:04:27 1123

原创 时间轮盘TimeWheel

在管理网络连接时,经常要对大量的连接进行超时管理,如将超时的连接断开。如果将这些大量的连接放在一个map中,然后用一个线程进行扫描,把超时的连接找到,如果连接很多,则这种做法很难接受的。目前有个通用的做法,即时间轮盘方式:TimeWheel设想有个时间钟,每隔一段时间(如100ms)有个滴答,每个滴答处对应一个list,存放了一些定时任务。但时间走到一个滴答处时就触发其对应的任务lis

2011-12-17 14:46:48 3797

原创 一致性哈希算法与Java实现

一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。    因此,引入了一致性哈希算法:把数据用ha

2011-12-11 14:25:39 12506 3

原创 Netty框架之网络线程模型

Netty网络线程模型主要有两类线程组成:boss线程、worker线程。启动一个server实例只会产生一个boss线程,boss线程主要负责监听端口,当有新的连接请求时就会产生一个task交给worker线程池处理,worker线程池中线程的个数默认是cpu个数的2倍。Netty网络I/O操作采用了目前流行的I/O多路选择器Selector方式(具体的实现是select

2011-12-11 12:12:43 3079

原创 Netty框架之异步事件驱动模型

Netty使用了异步的事件驱动模型,来触发网络I/O的各种操作,其在socket层上面封装一层异步事件驱动模型,使得业务代码不需要关心网络底层,就可以编写异步的无网络I/O阻塞的代码。Netty的异步事件驱动模型主要涉及到下面几个核心的概念:  Channel:表示一个与socket关联的通道 ChannelPipeline:管道,一个Channel拥有一个ChannelPipel

2011-12-11 12:04:48 2874

原创 工厂模式之commons-pool

工厂模式主要有抽象工厂和工厂方法两种方式,抽象工厂针对的是多个产品结构,而工厂方法针对的是一个产品结构。commons-pool是一个开源的对象池,其代码实现充分利用了工厂模式,本文将就其代码中实现的工厂模式简单介绍一下:      commons-pool中有两种对象池:objectpool、keyobjectpool,代码中将这两者独立开来,使得代码结构更加清晰,其实这两个对象池也可以抽象

2011-11-27 18:08:01 1064

原创 作业调度器——quartz

一个任务或作业定时执行需求在我们的系统中普遍存在,Quartz是一个很著名的开源作业调度器,可以创建大量job,按照丰富的自定义日历表进行调度执行。官网:http://www.quartz-scheduler.org本文首先介绍一下quartz的使用,然后分享一个自己在使用的过程中遇到的小陷阱——job的状态问题quartz的使用:    quartz的介绍和使用网上有很多,可

2011-11-26 18:28:11 800

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除