自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Jersey的绑定机制

一:简介    因为项目需要,最近研究了下restful风格的编程方式,这里也Jersey为例。Jersey是一个restful框架,其提供了面向切面的Providers功能,一般情况下我们可以手动注册到Application中,但是它支持更加灵活的方式,这就是jersey提供的绑定机制。二:客户端封装   Jersey Client的每次创建连接都必须耗资源,我们可以用连接池模式...

2017-01-09 18:03:54 555

原创 kafka的文件格式和副本的Leader选举

一、kafka的文件存储     在kafka中,一个topic可以有多个分区,分区在物理上是单独存放的,为了数据安全,一个分区可以有多个副本,而每个分区都有单独的leader来负责读写请求。我们可以通过命令 bin/kafka-topics.sh --create --zookeeper master:2181 --replication-factor 2 --partitions 3 ...

2017-01-09 16:39:01 695 2

使用storm trident消费kafka消息

一、前言    storm通过保证数据至少被处理一次来保证数据的完整性,由于元祖可以重发,对于一些需要数据精确的场景,可以考虑用storm trident实现。    传统的事物型拓扑中存在几种bolt: 1.1 BasicBolt   这是最基本的Bolt,BasicBolt每次只能处理一个tuple,而且必须等前一个tuple成功处理后下一个tuple才能继续处理,显然效率不高。 1.2 ...

2017-01-05 08:10:20 315

了解kafka

一:kafka简介   Kafka 是一个分布式的,可划分的,多订阅者,冗余备份的持久性的日志服务,可以简单理解为一个消息中间件。二:kafka的特点  1:分布式    kafka的producer,consumer,broker都是分布式的,可水平扩展,无需停机。  2:持久化    kafka将日志持久化到磁盘,通过将消息持久化到磁盘(磁盘线性读写)以及它的replication机制,保...

2017-01-04 13:00:27 197

原创 kafka的高可用和一致性探究

一、kafka基础   本篇文章讨论的kafka版本是目前最新版 0.10.1.0。1.1 kafka种的KafkaController     所有broker会通过ZooKeeper选举出一个作为KafkaController,来负责:监控所有broker的存活,以及向他们发送相关的执行命令。分区的状态维护:负责分区的新增、下线等,分区副本的leader选举...

2016-12-29 16:45:48 275

storm trident实战 filter,function的使用

一、Storm trident filter      filter通过返回true和false。来判断是否对信息过滤。     1.1 代码 public static void main(String[] args) throws InterruptedException, AlreadyAliveException, InvalidTopologyException,...

2016-12-26 10:17:05 200

原创 storm trident实战 trident state

一、认识storm trident    trident可以理解为storm批处理的高级抽象,提供了分组、分区、聚合、函数等操作,提供一致性和恰好一次处理的语义。    1)元祖被作为batch处理    2)每个batch的元祖都被指定唯一的一个事物id,如果因为处理失败导致batch重发,也和保证和重发前一样的事物id    3)数据更新操作严格有序,比如batch1必须在batch2之前...

2016-12-25 10:56:49 247

zookeeper事件监听实战

一:事件监听    原生zookeeper的事件监听采用Watcher实现,不过Watcher监听是一次性的,如果需要继续监听该事件,必须重新注册。Curator中采用cache来封装了对事件的监听,包括监听节点,监听子节点等,下面分别做介绍1.1 NodeCache    NodeCache主要用来监听节点本身的变化,当节点的状态发生变更后,回调NodeCachaListener p...

2016-12-23 08:36:05 838

zookeeper权限控制实战

一:Zookeeper权限控制    在zk集群中,不同的应用之间一般不会存在共享数据,为了避免某一个数据被不同的进程修改,这就需要进行相应的权限控制。二:ACL介绍  Zookeeper使用ACL机制来实现权限的控制,ACL机制主要分为3个方面,权限模式,权限ID和权限  2.1 权限模式   1)IP     ip模式是指权限针对这个ip而设置的,比如"ip:1...

2016-12-23 08:28:12 610

原创 redis学习总结

一:redis过期键删除策越   1:惰性删除:每次get的时候才判断key是否过期,如果过期才会执行删除,这样会导致大量的过期key占用内存。   2:定期删除:通过设置删除频率和时长(需要根据实际情况,可以压数据,看某个时间范围内过期的key有多少,占用多少内存,大概需要多久才能删除完),在某个时候执行删除操作,并只执行设置的时长时间,这样既降低了CPU消耗时间(不会长时间占用cpu去执行...

2016-12-23 08:12:03 85

原创 storm trident实战 分组聚合

一、前言      groupBy分组操作,根据指定属性进行分组,如果后面是aggregate()的话,先根据partitionBy分区,在每个partition上分组,分完组后,在每个分组上进行聚合。二、实战   main:public static void main(String[] args) throws Exception { /** * 多设置几...

2016-12-23 08:04:46 421

原创 storm 如何编写可靠的spout和bolt

一、前言   对于不使用trident的人来说,使用基本的storm spout,bolt操作,需要理解storm的ack机制,保证消息的完整性,Storm 提供了三种不同层次的消息保证机制,分别是 At Most Once、At Least Once 以及 Exactly Once。消息保证机制依赖于消息是否被完全处理。   怎样才认为消息被完全处理?每个从 Spout发出的 Tup...

2016-12-23 08:02:22 566

storm trident实战 分区聚合

一、前言      先有batch,因为trident内部是基于batch来实现的,然后有partition,分区后再分配并发度,然后才能进行并发处理。并发度的分配是利用parallelismHint来实现。二、实战   main方法public static void main(String[] args) throws AlreadyAliveException, ...

2016-12-22 18:43:31 308

storm重定向实战

一、 重定向       重定向定义了我们的tuple如何被route到下一个处理层,当然不同的层之间可能会有不同的并行度。storm提供了如下的重定向操作:    shuffle:通过随机分配算法来均衡tuple到各个分区    broadcast:每个tuple都被广播到所有的分区,这种方式在drcp时非常有用,比如在每个分区上做stateQuery    partitionBy:根据...

2016-12-22 18:12:29 120

原创 基于数组的有界阻塞队列ArrayBlockingQueue源码分析

一:功能介绍         基于数组的有界阻塞队列,基于FIFO的存储模式,支持公平非公平锁。二:源码分析 //数组 final Object[] items; //出队索引 int takeIndex; //入队索引 int putIndex; //队列大小 int count; //可重入锁 ...

2016-12-22 17:46:51 183

原创 基于单向链表有界阻塞队列LinkedBlockingQueue源码分析

一:功能介绍       基于单项链表,FIFO的有界阻塞队列,内部采用可重入锁ReentrantLock实现,一个take锁,一个put锁,相应的等待条件也为二个。二:源码分析package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concur...

2016-12-22 17:42:22 142

原创 zookeeper事件监控源码解析

一:zk的客户端注册Watcher源码剖析     zookeeper有很多中方式都可以传入一个watcher对象,比如exist,getData等,下面我们以getData的源码来剖析zk的client和server端是如何处理实现整个watcher机制的。   原生的zookeeper API在获得节点数据的时候,可以通过getData方法获取,并且可以传入一个watcher对象,表示对当...

2016-12-21 16:50:33 218

空空如也

空空如也

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

TA关注的人

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