Jersey的绑定机制

一:简介     因为项目需要,最近研究了下restful风格的编程方式,这里也Jersey为例。Jersey是一个restful框架,其提供了面向切面的Providers功能,一般情况下我们可以手动注册到Application中,但是它支持更加灵活的方式,这就是jersey提供的绑定机制。...

2017-01-09 18:03:54

阅读数 46

评论数 0

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

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

2017-01-09 16:39:01

阅读数 64

评论数 0

使用storm trident消费kafka消息

一、前言    storm通过保证数据至少被处理一次来保证数据的完整性,由于元祖可以重发,对于一些需要数据精确的场景,可以考虑用storm trident实现。    传统的事物型拓扑中存在几种bolt: 1.1 BasicBolt   这是最基本的Bolt,BasicBolt每次只能处理一个...

2017-01-05 08:10:20

阅读数 63

评论数 0

了解kafka

一:kafka简介   Kafka 是一个分布式的,可划分的,多订阅者,冗余备份的持久性的日志服务,可以简单理解为一个消息中间件。二:kafka的特点  1:分布式    kafka的producer,consumer,broker都是分布式的,可水平扩展,无需停机。  2:持久化    ka...

2017-01-04 13:00:27

阅读数 30

评论数 0

kafka的高可用和一致性探究

一、kafka基础    本篇文章讨论的kafka版本是目前最新版 0.10.1.0。 1.1 kafka种的KafkaController      所有broker会通过ZooKeeper选举出一个作为KafkaController,来负责: 监控所有broker的存活,...

2016-12-29 16:45:48

阅读数 29

评论数 0

storm trident实战 filter,function的使用

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

2016-12-26 10:17:05

阅读数 15

评论数 0

storm trident实战 trident state

一、认识storm trident    trident可以理解为storm批处理的高级抽象,提供了分组、分区、聚合、函数等操作,提供一致性和恰好一次处理的语义。    1)元祖被作为batch处理    2)每个batch的元祖都被指定唯一的一个事物id,如果因为处理失败导致batch重发,...

2016-12-25 10:56:49

阅读数 31

评论数 0

zookeeper事件监听实战

一:事件监听     原生zookeeper的事件监听采用Watcher实现,不过Watcher监听是一次性的,如果需要继续监听该事件,必须重新注册。Curator中采用cache来封装了对事件的监听,包括监听节点,监听子节点等,下面分别做介绍1.1 NodeCache    NodeCach...

2016-12-23 08:36:05

阅读数 70

评论数 0

zookeeper权限控制实战

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

2016-12-23 08:28:12

阅读数 150

评论数 0

redis学习总结

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

2016-12-23 08:12:03

阅读数 11

评论数 0

storm trident实战 分组聚合

一、前言       groupBy分组操作,根据指定属性进行分组,如果后面是aggregate()的话,先根据partitionBy分区,在每个partition上分组,分完组后,在每个分组上进行聚合。 二、实战    main: public static void main(St...

2016-12-23 08:04:46

阅读数 78

评论数 0

storm 如何编写可靠的spout和bolt

一、前言    对于不使用trident的人来说,使用基本的storm spout,bolt操作,需要理解storm的ack机制,保证消息的完整性,Storm 提供了三种不同层次的消息保证机制,分别是 At Most Once、At Least Once 以及 Exactly Once。消息...

2016-12-23 08:02:22

阅读数 64

评论数 0

storm trident实战 分区聚合

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

2016-12-22 18:43:31

阅读数 63

评论数 0

storm重定向实战

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

2016-12-22 18:12:29

阅读数 8

评论数 0

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

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

2016-12-22 17:46:51

阅读数 25

评论数 0

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

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

2016-12-22 17:42:22

阅读数 14

评论数 0

zookeeper事件监控源码解析

一:zk的客户端注册Watcher源码剖析     zookeeper有很多中方式都可以传入一个watcher对象,比如exist,getData等,下面我们以getData的源码来剖析zk的client和server端是如何处理实现整个watcher机制的。   原生的zookeeper A...

2016-12-21 16:50:33

阅读数 22

评论数 0

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