自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

anjing900812的博客

一个安静的美男子

  • 博客(59)
  • 收藏
  • 关注

原创 最近参与的项目小结

参与实现的模块的功能:基于Kafka low level API实现一个消费者,消费到消息先反序列化,之后通过HTTPClient发送给指定的url。一、KafkaConsumerKafkaConsumer基于之前项目中的HadoopConsumer的框架实现,但一个partition开启了一个消费者线程,同时修改了持续消费的实现逻辑:不停地轮询offsetRange是否改变,是否生成

2017-04-17 18:16:38 517 1

转载 mapreduce框架详解

原文链接:http://www.cnblogs.com/sharpxiajun/p/3151395.html作者总结的特别棒,读完之后终于明白了MapReduce的架构、工作原理。强烈推荐。开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密。这个可能是

2016-12-05 10:20:36 409

原创 Maven的隐式依赖导致Jar包冲突的问题

部署好jstorm后,运行一个例子程序,提示slf4j的jar包冲突问题,如下:解决方法:参考链接:http://stamen.iteye.com/blog/2030552eclipse中打开工程的pom.xml文件,有一个Dependency Hierarchy窗口显示maven导入的jar包之间的依赖关系,搜索slf4j相关的,之后右键删除此依赖。又get了一个

2016-11-29 15:15:30 664

转载 Java日志框架:SLF4J, Apache Common-Logging, Log4J和Logback

原文链接:http://liuzidong.iteye.com/blog/776072同时可参考另一篇:http://blog.csdn.net/kobejayandy/article/details/17335407  http://www.cnblogs.com/zhuawang/p/3999235.htmlLog4j Apache的一个开放源代码项目,通过使用Log4j,我们

2016-11-11 15:41:36 617

转载 Java类加载器之线程上下文类加载器

面试时被问到,又一个盲点:原文链接,感谢作者,讲得很清楚:http://blog.onlycatch.com/post/Java%E7%B1%BB%E5%8A%A0%E8%BD%BD%E6%9C%BA%E5%88%B6Thread.setContextClassLoader(ClassLoader cl)在Java中提供了对于线程设置ContextClassLoader

2016-09-27 11:06:10 631

原创 项目09-23

一java中的锁机制:JUC包中的lock类,先说了这个包下的ConcurrentHashMap,锁分离机制,完全并发读和一定程序的并发写,HashMap线程不安全,如何体现的?多个线程同时调用put方法新增key-value对,可能会覆盖?lock:内部实现原理:http://www.cnblogs.com/chenssy/p/4742221.html 锁有状态,获得锁后修改

2016-09-24 20:18:20 262

原创 项目08-31

OK,7月16日到今天,已经40多天了,果然是一场马拉松,good luck!Zookeeper管理kafka的哪些元数据信息,看书《从PAXOS到Zookeeper分布式一致性原理与实践》管理broker集群:brokers的父节点/brokers/ids,一个broker启动在其下创建子节点/brokers/ids/[0..N],所以一个broker由唯一的id标识,(可以随意

2016-09-01 13:21:36 351 2

原创 对只包含0、1、2三种元素的数组进行排序

时间复杂度:o(n)两种方法,都是只遍历一次;/*借鉴《算法》中,当数组中存在大量重复元素时,对快排partition方法的改进。 *即三个指针,把数组划分成三部分,x*/public void sortarray2(int[] nums){ int a = 0;//指向下一个存放0的位置 int b = nums.length-1;//从右向左,下一个存放2的位置 int i

2016-08-27 13:44:29 2578

原创 项目08-25

1有向图中两个点之间是否存在一条路径:广搜图的遍历以及广搜、深搜、最短路径问题;HashMap的rehash原理:介绍kafka;TCP、UDP的区别,TCP面向流,UDP面向数据报的理解:http://blog.csdn.net/ce123/article/details/8976006 http://www.cnblogs.com/jason2013/articles/4346

2016-08-26 11:21:53 338

原创 对LinkedHashMap的理解

最初的认识:可以维护元素的插入顺序,按照插入顺序遍历;实现原理:LinkedHashmap的Entry除了该节点的hash值、key值、value值、next指向冲突时的后一个节点,还增加了指向前一个节点和后一个节点的指针:before、after,从而构成双向链表;除此之外,还有双向链表的头结点head和尾节点tail;LinkedHashMap的具体实现:节点:

2016-08-19 17:27:33 449

原创 工作总结8-16

1手写快速排序,算法和算法导论两个版本;链表的快排;单链表中交换指定的两个节点;ok,leetcode刷题找未排序数组中的中位数:partition选择排序;流式数据的中位数:同时使用最大堆和最小堆;两个已排序数组的中位数?lt数组右旋、字符串旋转;海量数据:统计一分钟内查询关键词的TOK10,划分、负载均衡、一致性哈希、先统计部分结果、修改进行hash的key(uid#1)进一步划分

2016-08-17 13:58:11 457 2

原创 项目08-15

最痛的领悟:写算法题之前先确认需求,输入输出是什么,之后举例子,理清思路,并和面试官沟通,最后才动手写;打手,打手。。。最后一道算法题:给定一个字符数组,产生长度为n的所有字符串;用递归的思想:public static ArrayList makestring(char[] str,int n){ ArrayList rst = new ArrayList();

2016-08-15 16:24:14 310 1

转载 Flume日志收集分层架构应用实践

面试时被问到flume,好久没看了,回答很不好。整理知识点时搜到这篇文章,好强大,感谢作者;时延军(包含链接:http://shiyanjun.cn) 原文链接:http://shiyanjun.cn/archives/1497.htmlFlume作为一个日志收集工具,非常轻量级,基于一个个Flume Agent,能够构建一个很复杂很强大的日志收集系统,它的灵活性和优势,主

2016-08-11 21:11:19 454

转载 数据库的乐观锁与悲观锁

锁( locking )业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “ 锁 ” ,

2016-08-07 22:14:22 353 5

转载 数据库事务管理原理

好系统的一篇文章;可惜没有图片;http://www.cnphp6.com/archives/58402主题 数据库事务数据库是一个共享资源,可以提供多个用户使用。这些用户程序可以一个一个地串行执行,每个时刻只有一个用户程序运行,执行对数据库的存取,其他用户程序必须等到这个用户程序结束以后方能对数据库存取。但是如果一个用户程序涉及大量数据的输入/输出交换,则数据库系统的

2016-08-07 21:27:48 407 4

转载 java泛型(一)、泛型的基本介绍和使用

更深入地了解泛型:感谢原文作者:http://blog.csdn.net/lonelyroamer/article/details/7864531作者还有两篇更深入的:java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题java泛型(三)、通配符的使用  现在开始深入学习java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原

2016-08-07 15:41:07 231

原创 项目08-05

T1:ZooKeeper的应用:管理集群,实现分布式锁,其他没有深入了解,ok,看书;ZK选leader的过程,投票;如果选主的过程中有一台服务器宕掉了,会发生什么?过半数投票一致leader就产生了;flume接平台数据使用了socket编程:通信的过程:server端:socket-bind-listen-accept-read/write-close,更底层的实现原理,丢数据、丢

2016-08-06 15:26:16 462

原创 堆和堆排序

堆定义:二叉堆,每个节点的值大于等于他的两个子节点;采用的数据结构:数组,二叉堆层次遍历存放在数组中,通过下标找到孩子、父亲结点,2k、2k+1、k/2,保证对数级别的时间复杂度实现插入(新插入的元素放在数组尾部,逐渐上升,调整维护堆的性质)和删除最大元素(删除堆顶,调整);关键操作:Be:数组中从1开始存储元素;由下至上的堆的有序化:节点比其父节点的值大,需要交换public

2016-08-03 17:00:54 275

原创 项目08-03

java泛型:容器类限定存放的对象类型,取出时不需强制类型转换,且编译时就可发现对象不匹配的错误,抛出java.lang.ClassCastException异常;可参考:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html操作系统实现线程多种方式:可以在用户模式下 or 内核模式下实现线程,或者两者结合实现?Java中创建多线程的几种方式:继承Thr

2016-08-03 14:26:13 290

原创 常用排序算法总结

选择排序基本思想:遍历数组,找到最小的元素和第一个元素(nums[0])交换。次小的和第二个元素交换,也就是每次找到未排序部分中的最小值放在适当的位置。复杂度分析:长度为N的数组,比较次数:N^2/2  交换次数:N  时间复杂度:N^2特点:运行时间和输入无关,每次都需遍历未排序部分找到最小值;数据的移动交换次数是最少的;代码:public void select_sort(int[

2016-08-02 17:18:07 330

转载 理解Java垃圾回收

一系列很好的java译文,受益匪浅。转载and MARK:http://www.cnblogs.com/enjiex/p/5093920.html原文链接:http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/了解Java的垃圾回收(GC)原理能给我们带来什么好处?对于软件工程

2016-07-24 14:58:34 197

转载 ActiveMQ简介

原文链接:http://www.cnblogs.com/kgdxpr/p/3381974.htmlActiveMQ简介1.  什么是ActiveMQActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可以对其实现代码进行修改。Active

2016-07-21 20:48:12 353

转载 关于消息队列的使用

原文链接:http://www.cnblogs.com/chenpingzhao/p/5262050.html一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队

2016-07-21 20:19:12 905

转载 分布式系统常用思想和技术总结

原文链接:http://www.cnblogs.com/chenying99/p/4350915.html一、分布式系统的难点分布式系统比起单机系统存在哪些难点呢?1. 网络因素由于服务和数据分布在不同的机器上,每次交互都需要跨机器运行,这带来如下几个问题:1. 网络延迟:性能、超时同机房的网络IO还是比较块的,但是跨机房,尤其是跨IDC,网络IO就成为不可忽视的性能瓶颈了

2016-07-20 15:28:02 2663

转载 paxos分布式一致性算法--讲述诸葛亮的反穿越

一个好难理解的算法,so,还是不太懂原文链接:http://blog.csdn.net/russell_tao/article/details/72445300、引子一日,诸葛亮找到刘备,突然献上一曲《独角戏》,而后放声大哭。刘备正沉醉于新曲,暗叹孔明大才,竟作得如此不凡仙乐,看到孔明忽而大悲,慌问:“水,何事悲恸?” 诸葛亮止住抽泣:“亮自主公三顾茅庐出山以来,蒙主公

2016-07-20 14:55:30 314

转载 CAP 理论

原文链接:http://www.cnblogs.com/mmjx/archive/2011/12/19/2290540.htmlCAP理论被很多人拿来作为分布式系统设计的金律,然而感觉大家对CAP这三个属性的认识却存在不少误区。从CAP的证明中可以看出来,这个理论的成立是需要很明确的对C、A、P三个概念进行界定的前提下的。在本文中笔者希望可以对论文和一些参考资料进行总结并附带一些思考。 

2016-07-19 16:33:19 305

原创 项目07-16

清晰地介绍自己的项目:数据量、集群大小、输入、输出、功能;kafka的介绍;short i=1; i = i+1;有什么问题;short i=1; i += 1;有什么问题;类型转换,具体编译实现;java finalize方法,什么作用;是否使用过框架,入Spring、Structs等;大数据平台的生态圈,了解;设计一个网站全流量镜像的安全分析平台,从架构、算法、平台等方

2016-07-16 20:27:12 289

转载 Java跨平台原理

此篇博文主要源自网络xiaozhen的天空的博客:http://xiaozhen1900.blog.163.com/blog/static/1741732572011325111945246/  1、是么是平台Java是可以跨平台的编程语言,那我们首先得知道什么是平台,我们把CPU处理器与操作系统的整体叫平台。CPU大家都知道,如果计算机是人,那CPU就是人的大脑,

2016-07-14 11:39:10 225

转载 java 反射机制详解--概念+例子

原文链接:http://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.htmlhttp://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html一、什么是反射机制         简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名

2016-07-06 15:18:21 2990

转载 java静态代理和动态代理

原文链接:http://layznet.iteye.com/blog/1182924本文动态代理部分内容大量引自:http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/ 一、代理概念 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负

2016-07-05 16:21:13 180

转载 你应该知道的 RPC 原理

原文链接:http://www.cnblogs.com/LBSer/p/4853234.html     在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。  而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负

2016-07-04 16:49:34 270

原创 kafka总结系列(五)

ImplementationLog        现有一个topic“my_topic”,两个分区,则在配置选项“log.dirs”指定的存储日志文件的目录下有两个文件夹:my_topic_0和my_topic_1。        每个文件夹下面有.index和.log两种类型的文件,.log由本文件内第一条消息的offset命名;每个日志文件大小不得超过指定值;        .

2016-06-27 19:14:54 870 2

原创 Kafka总结系列(四)

Replication        kafka中一个topic有若干分区,以分区为单位进行备份。创建topic时可以指定该topic的分区个数以及副本数m,一个partition有一个leader broker以及(m-1)个follower broker。follower像普通的consumer那样从leader同步消息,producer和consumer只和leader进行通信交互。所以

2016-06-26 15:46:03 999 2

原创 Kafka总结系列(三)

继续上一篇。The consumer:      kafka的消费者通过向broker发送“fetch”请求获取他要消费的partition的信息。消费者在每个请求中标记他已经消费到的offset值,broker将以该offset作为起始位置的a chunk of log即一批消息返回给consumer。可见消费者自己维护消费状态,broker是无状态的,如有需要可重复消费。Push

2016-06-26 13:38:29 1242 2

原创 Kafka总结系列(二)

DesignPersistence:    kafka高度依赖于文件系统来存储和缓存消息。对于磁盘的正确认识:对磁盘的线性读写比随机读写快很多倍,且有研究表明:对磁盘的线性读写在有些情况下可以比内存的随机访问要更快!Efficiency:    在消息队列系统中,如果磁盘的因素被排除之后(线性读写磁盘的速度并不那么慢),还有两个原因会导致inefficiency:太多IO操作(to

2016-06-25 21:16:33 653 1

原创 Kafka总结系列(一)

Apache kafka:一个高吞吐量的分布式发布订阅消息系统        从最初的了解、学习kafka,到后来基于其API进行开发,再到后来有意识地了解其实现原理,是一个漫长的过程。趁周末有空梳理一下期间读过的官方文档、技术博客等,以便自己日后复习。特性如下:Fast:单台broker节点每秒便可处理来自数千个client的(hundreds of megabyte

2016-06-25 15:31:15 940

翻译 Java Synchronized Blocks

一篇很好的讲解synchronized关键字的文章,原文链接:http://tutorials.jenkov.com/java-concurrency/synchronized.html       Java synchronized block(下面称之为同步块)可以将一个方法或者一个代码块标记为synchronized。synchronized block可以用于避免竞争条件(race

2016-06-24 14:02:37 281

原创 java String类相关的问题

创建String对象的方式:两种,每种方式分别创建了几个对象,存储在哪里,常量池还是堆中;String字符串常量编译期间器就会进行优化;学会用代码+反编译验证一些想法;参考链接:String s=new String("abc")创建了几个对象?String s=new String("xyz") 创建了几个对象(详细解析)java中的堆、栈、常量池Java堆、

2016-06-17 11:06:58 269 1

原创 Java Static关键字引发的思考

看技术博客介绍static关键字时,想起了之前的面试问题:static函数的特点。当时只说了可以在不创建对象的前提下使用类名直接调用,并没有举例子。总结面经时才想起本可以举main函数和单例模式的例子。main函数:作为java程序的入口,此时没有创建任何类的任何对象,所以他只能是static,用类名直接调用从而执行此java程序。 单例模式:单例类只能有一个实例对象、单例类必须自己创

2016-06-14 10:52:09 305

转载 Java集合细节:subList的缺陷

原文链接:Java集合细节(三):subList的缺陷我们经常使用subString方法来对String对象进行分割处理,同时我们也可以使用subList、subMap、subSet来对List、Map、Set进行分割处理,但是这个分割存在某些瑕疵。一、subList返回仅仅只是一个视图        首先我们先看如下实例:[java] view p

2016-06-12 20:18:37 426

空空如也

空空如也

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

TA关注的人

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