关闭

基于Flume+Log4j+Kafka的日志采集架构方案

Flume 基本概念 Flume是一个完善、强大的日志采集工具,关于它的配置,在网上有很多现成的例子和资料,这里仅做简单说明不再详细赘述。 Flume包含Source、Channel、Sink三个最基本的概念: Source——日志来源,其中包括:Avro Source、Thrift Source、Exec Source、JMS Source、Spooling Directory Sou...
阅读(28) 评论(0)

大数据学习(一):实时处理环境搭建

概述 为了实现搭建一套初步学习大数据实时分析的平台,用了5台linux虚拟机(Centos 7),安装 的组件包括: - FlumeNG:数据采集 - kafka集群:数据统一接入 - Storm集群:数据实时处理 - hadoop集群:这里只是用了其中HDFS组件来做数据存储 整个实时处理框架如下: 本人自己搭建环境的节点分布如下: 服务 节点 ...
阅读(6) 评论(0)

hashmap的滥用

具体滥用与否视你的项目而定 对于答主这样的内存敏感人士,一般不用java.util.HashMap 内存篇 以下举出一个例子 这个例子是以int为key,int为value的map,对比多种实现 说明java.util.HashMap占用内存相比其他数据结构或者hash map实现有时是不可接受的 package tmptest; import static javax.la...
阅读(2) 评论(0)

在 Java 中高效使用锁的技巧

在 Java 中高效使用锁的技巧--转载 竞争锁是造成多线程应用程序性能瓶颈的主要原因 区分竞争锁和非竞争锁对性能的影响非常重要。如果一个锁自始至终只被一个线程使用,那么 JVM 有能力优化它带来的绝大部分损耗。如果一个锁被多个线程使用过,但是在任意时刻,都只有一个线程尝试获取锁,那么它的开销要大一些。我们将以上两种锁称为非竞争锁。而对性能影响最严重的情况出现在多个线程同时尝试获取锁时。这...
阅读(5) 评论(0)

TCP 是互联网核心协议之一

TCP 是互联网核心协议之一 一、TCP 协议的作用 互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。 (图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。) 最底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(packet),解决了子网内部的点对点通信。 (图片说明:以太网协议解决了局域网的点对点通信。) 但...
阅读(8) 评论(0)

redis单线程与分布式锁

Redis网络基础架构 网络编程离不开Socket,网络I/O模型最常用的无非是同步阻塞、同步非阻塞、异步阻塞、异步非阻塞,高性能网络服务器最常见的线程模型也就是基于EventLoop模式的单线程模型。我们看看Redis的网络架构是怎么样的: Redis基础组建结构 这里解释下上图涉及的组件,Redis网络层基础组件主要包括四个部分:     EventLoop事件轮训器,...
阅读(17) 评论(0)

vim常用命令总结 (转)

vim常用命令总结 (转)     在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。       vim 选择文本,删除,复制,粘贴     文本的选择,对于编辑器来说,是很基本的东...
阅读(18) 评论(0)

netty源码分析之服务端启动全解析

netty 是一个异步事件驱动的网络通信层框架,其官方文档的解释为 Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies an...
阅读(18) 评论(0)

SQL数据库面试题以及答案(50例题)

SQL数据库面试题以及答案(50例题) Student(S#,Sname,Sage,Ssex)学生表 S#:学号 Sname:学生姓名 Sage:学生年龄 Ssex:学生性别 Course(C#,Cname,T#)课程表 C#:课程编号 Cname:课程名称 T#:教师编号 SC(S#,C#,score)成绩表 S#:学号 C#:课程编号 score:成绩 Teacher(T#,Tname)教师...
阅读(23) 评论(0)

Java高级工程师常见面试题

一、Java基础 1. String类为什么是final的。 2. HashMap的源码,实现原理,底层结构。 3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。 4. 描述一下ArrayList和LinkedList各自实现和区别 5. Java中的队列都有哪些,有什么区别。 6. 反射中,Class.forName和cl...
阅读(21) 评论(0)

高并发分布式系统中生成全局唯一订单号

高并发分布式系统中生成全局唯一订单号 我了解的方案如下…………………………………………………………………… 1、  使用数据库自增Id 优势:编码简单,无需考虑记录唯一标识的问题。 缺陷: 1)         在大表做水平分表时,就不能使用自增Id,因为Insert的记录插入到哪个分表依分表规则判定决定,若是自增Id,各个分表中Id就会重复,在做查询、删除时就会有异常。 2)  ...
阅读(41) 评论(0)

jmx入门及开发示例 jmx程序管理

jmx入门及开发示例 jmx程序管理  官方介绍:http://docs.oracle.com/javase/1.5.0/docs/guide/jmx/overview/JMXoverviewTOC.html   JMX(Java Management Extensions) 是来管理网络,设备,应用程序等资源,它描述了一个可扩展的管理体系结构,并且提供了 JMX API 和一些预...
阅读(23) 评论(0)

用AtomicStampedReference解决ABA问题

用AtomicStampedReference解决ABA问题 在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子: 现有一个用...
阅读(22) 评论(0)

JAVA CAS原理深度分析

感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到!   参考文档: http://www.blogjava.net/xylz/archive/2010/07/04/325206.html http://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference.html http://www.searchso...
阅读(41) 评论(0)

notify发生死锁的情景

JVM多个线程间的通信是通过 线程的锁、条件语句、以及wait()、notify()/notifyAll组成。 下面来实现一个启用多个线程来循环的输出两个不同的语句: package com.tyxh.block; class OutTurn {     private boolean isSub = true;     private int count...
阅读(16) 评论(0)

JVM知识点总览-中高级Java工程师面试必备

JVM知识点总览-中高级Java工程师面试必备         对于搞开发的我们其实也是一样,现在流行的框架越来越多,封装的也越来越完善,各种框架可以搞定一切,几乎不用关注底层的实现,初级程序员只要熟悉基本的使用方法,便可以快速的开发上线;但对于高级程序员来讲,内功的修炼却越发的重要,比如算法、设计模式、底层原理等,只有把这些基础熟练之后,才能在开发过程中知其然知其所以然,出现问题时能快...
阅读(22) 评论(0)

一个简单的单例示例

一个简单的单例示例 单例模式可能是大家经常接触和使用的一个设计模式,你可能会这么写 public class UnsafeLazyInitiallization { private static UnsafeLazyInitiallization instance; private UnsafeLazyInitiallization() { } pub...
阅读(23) 评论(0)

关于SimpleDateFormat安全的时间格式化线程安全问题

想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一...
阅读(35) 评论(0)

java高级工程师面试题总结

、面试题基础总结 1、 JVM结构原理、GC工作机制详解 答:具体参照:JVM结构、GC工作机制详解     ,说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数法  b、可达性分析算法(  这里的可达性,大家可以看基础2 Java对象的什么周期),至于更详细的G...
阅读(41) 评论(0)

浅谈http中Get与Post的区别

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。   1.根...
阅读(61) 评论(0)
224条 共12页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:63087次
    • 积分:1088
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:211篇
    • 译文:3篇
    • 评论:4条