- 博客(36)
- 资源 (5)
- 收藏
- 关注
原创 Kafka的架构设计
我们为什么要搭建该系统Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础。现在它已为多家不同类型的公司 作为多种类型的数据管道(data pipeline)和消息系统使用。活动流数据是所有站点在对其网站使用情况做报表时要用到的数据中最常规的部分。活动数据包括页面访问量(
2014-08-14 14:27:10
2762
原创 java.util.concurrent.locks与synchronized及其异同
关键字:synchronized、java.util.concurrent.locks.Lock、同步、并发、锁一、【引言】JDK1.5之前,实现同步主要是使用synchronized,而在JDK1.5中新增了java.util.concurrent包及其两个子包locks和atomic,其中子包locks中定义了系列关于锁的抽象的类。本文主要介绍java.util.concurrent.
2014-08-08 11:08:06
765
原创 http长轮询和短轮询
http 协议介绍: http 协议是请求/响应范式的, 每一个 http 响应都是由一个对应的 http 请求产生的; http 协议是无状态的, 多个 http 请求之间是没有关系的.http 长连接: 目前 http 协议普遍使用的是 1.1 版本, 之前有个 1.0 版本, 两者之间的一个区别是 1.1 支持 http 长连接, 或者叫持久连接.1.0 不支
2014-07-07 10:40:52
1104
原创 vmware workstation虚拟机中的虚拟网络简介
vmware workstation可以虚拟出来各种真实网络环境、实验环境,而网管在使用这些虚拟网络功能时都要依靠vmware workstation提供的桥接、NAT和Host-only(主机模式)这三种虚拟网卡属性的组合来实现,具体桥接、NAT和Host-only是什么意思?桥接、NAT和Host-only有什么作用?桥接、NAT和Host-only的区别在哪里,本文将针对桥接、NAT和Hos
2013-11-27 16:35:47
1542
原创 Oracle的表的连接方式(内连接+外连接+自连接)
工作2年多了,虽然天天在用Oracle,但基本比较简单的CRUD,今天复习一下 连接方式:Oracle 表之间的连接分为三种:1. 内连接(自然连接)2. 外连接(1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制)3. 自连接(同一张表内的连接)SQL的标准语法:
2013-10-30 14:00:31
1615
原创 Mongodb的MapReduce优化
分析在MongoDB中正成为越来越重要的话题,因为它在越来越多的大型项目中使用。人们厌倦了使用不同的软件来做分析(包括Hadoop),它们显然需要传输大量开销的数据。MongoDB提供了两种内置分析数据的方法:Map Reduce和Aggregation框架。MR非常灵活,很容易部署。它通过分区工作良好,并允许大量输出。MR在MongoDB v2.4中,通过使用JavaScript引擎把S
2013-10-30 13:52:29
1711
原创 Linux rpm 命令
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。常用命令组合:-ivh:安装显示安装进度--install--ve
2013-10-24 19:22:41
914
原创 Consistent Hashing一致性哈希算法
一、简单介绍一致性哈希算法 分布式存储中,常常涉及到负载均衡问题,由于有多个数据存储服务器。因此当一个对象被保存时候,它究竟应该存放到哪个数据存储服务器上面呢?这就是负载均问题。 又例如:现在假设有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数据库的方式已经不能满足用户的访问,于是想引入 Memcached 作为缓存机制。现在一共引入三台机器
2013-10-17 17:30:49
948
原创 异步非阻塞IO的理解
先来说说 阻塞 和 同步的 概念非阻塞 和 异步 反之。以下是自己的看法,表述的通俗一点就是:阻塞: 国庆放假了,我被堵在高速上了,那我们常说这条路阻塞了,而不会说这条路同步了。对吧?阻塞了 我什么干不了了,总不能车不要了吧,那就只能现 在车里睡会,我们称为线程挂起。所以阻塞强调的是一种状态。同步: 最常见的事,警察让先放人质,土匪说先给钱。那就这
2013-09-24 17:42:18
1152
原创 MongoDB分页处理方案
MongoDB的分页性能是广大使用者所诟病的大问题之一,在大数据量环境下,如果一次跳转的页数过多,如10W多页,可能用户要等上几十秒(瞎掰的数据),有兴趣的可以去看一下这篇文章Paging& Ranking With Large Offsets: MongoDB vs Redis vsPostgreSQL。看完了你是不是对MongoDB的性能很失望,对Redis充满了崇敬?其实这种对比
2013-09-18 10:38:58
3550
原创 linux中crontable的用法
crontab命令的功能是在一定的时间间隔调度一些命令的执行。1.0 新建定时任务1、查看crontab服务是否启动, root@oracle lhq]# service crond status; 2、启动crontab服务 [root@oracle lhq]# s
2013-09-10 14:44:08
11101
2
原创 linux中date命令的用法
使用方式 :date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]说明 :date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示
2013-09-10 10:23:48
937
原创 Mongodb安装及简单命令
MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。一、下载MongoDB的官网是:http://www.mongodb.o
2013-08-20 10:58:39
1847
原创 Maven项目pom.xml 配置学习
什么是pom? pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。maven POM.xml详解<project xmlns="http://maven.apache.org/POM/4.0.0"
2013-08-05 10:30:43
980
原创 Nginx配置文件nginx.conf说明
Nginx使 用有两年了,很少真正的了解它的配置,今天花了点时间,把Nginx的主要配置参数说明 分享一下,也参考了一些网络的内容,这篇是目前最完整的Nginx配置参数中文说明了。更详细的模块参数请参 考:http://wiki.nginx.org/Mainnginx.conf文件如下:#定义Nginx运行的用户和用户组user www www; #nginx进
2013-07-04 16:06:23
901
Nginx配置文件nginx.conf说明
Nginx使 用有两年了,很少真正的了解它的配置,今天花了点时间,把Nginx的主要配置参数总结了一下。更详细的模块参数请参考:http://wiki.nginx.org/Mainnginx.conf文件如下:#定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数。worker_processes 8; ...
2013-07-04 16:06:00
141
原创 android应用处理过程简单理解
做了个应用,总结下对于android 应用的简单理解 从上图可以简单看出,主线程启动,这里把各种操作称为action,主要分为3部分:ui(视图绘制)、event(事件处理)和other(数据或网络等处理)1.当点击图标启动应用A时,系统有个luncher应用会根据A应用里AndroidManifest.xml中声明的找到对应启动的activity: <
2013-06-19 09:27:25
808
android应用处理过程简单理解
做了个应用,总结下对于android 应用的简单理解 从上图可以简单看出,主线程启动,这里把各种操作称为action,主要分为3部分:ui(视图绘制)、event(事件处理)和other(数据或网络等处理)1.当点击图标启动应用A时,系统有个luncher应用会根据A应用里AndroidManifest.xml中声明的<category android:name="a...
2013-06-19 09:27:00
125
翻译 JDK 1.7目录结构及自带工具
参考资料:http://docs.oracle.com/javase/7/docs/index.htmlhttp://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdkfiles.htmlJDK = JRE + Tools&Tool APIsJDK的核心是Java SE API。Java SE API是
2013-06-13 10:46:47
1369
JDK 1.7目录结构及自带工具
参考资料:http://docs.oracle.com/javase/7/docs/index.htmlhttp://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdkfiles.htmlJDK = JRE + Tools&Tool APIsJDK的核心是Java SE API。Java SE API是...
2013-06-13 10:46:00
183
原创 java内存回收机制
在JAVA中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心内存分配,导致很多程序低效,耗内存。因此就有了Java程序员到最后应该去了解JVM,才能写出更高效,充分利用有限的内存的程序。1
2013-06-13 10:27:36
867
java内存回收机制
在JAVA中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心内存分配,导致很多程序低效,耗内存。因此就有了Java程序员到最后应该去了解JVM,才能写出更高效,充分利用有限的内存的程序。...
2013-06-13 10:27:00
91
原创 Java排序
8种排序之间的关系:1, 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现 package com.njue; public class insertSort { p
2013-06-05 11:15:42
832
Java排序
8种排序之间的关系:1,直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现package com.njue; public class insertSort { pu...
2013-06-05 11:15:00
206
原创 Java随机数
众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。我们从书本上学到什么?最明显的,也是直观的方式,在JAVA中生成随机数只要简单的调用:java.lang.Math.random() 在所有其他语言中,生成随机数就像是使用Math工具类,如abs, pow,
2013-06-05 10:40:26
814
Java随机数
众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。我们从书本上学到什么?最明显的,也是直观的方式,在JAVA中生成随机数只要简单的调用:java.lang.Math.random()在所有其他语言中,生成随机数就像是使用Math工具类,如abs, po...
2013-06-05 10:40:00
85
原创 NIO学习笔记(4)-- 【练习】NIO聊天工具
通过NIO的学习,自己简单写了一个,C/S架构的聊天工具。Server端: 1.接受客户端Channel。 2.记录客户端集合clients。利用channel进行区分客户端,后续可以添加一个ID。 3.客户端通过遍历clients,对除发送者以外的所有客户端通讯。Client端: 1.发送请求。 2.接收内容 3.获取控制台内容
2013-04-26 17:13:18
1355
1
NIO学习笔记(4)-- 【练习】NIO聊天工具
通过NIO的学习,自己简单写了一个,C/S架构的聊天工具。Server端: 1.接受客户端Channel。 2.记录客户端集合clients。利用channel进行区分客户端,后续可以添加一个ID。 3.客户端通过遍历clients,对除发送者以外的所有客户端通讯。Client端: 1.发送请求。 2.接收内容 3.获取控制台内容,并发送待解决问题: 由...
2013-04-26 17:13:00
184
原创 NIO学习笔记(3)--NIO核心类(Buffer,Channel)
一.Buffer(缓冲区) 概念 缓冲区是包在一个对象内的基本数据元素数组。Buffer 类相比一个简单数组的优点是它将关于数据的数据内容和信息包含在一个单一的对象中。Buffer 类以及它专有的子类定义了一个用于处理数据缓冲区的 API。 所有的缓冲区都具有四个属性来提供关于其所包含的数据元素的信息。它们是:容量(Capacity)
2013-04-12 22:14:40
1606
NIO学习笔记(3)--NIO核心类(Buffer,Channel)
一.Buffer(缓冲区) 概念 缓冲区是包在一个对象内的基本数据元素数组。Buffer 类相比一个简单数组的优点是它将关于数据的数据内容和信息包含在一个单一的对象中。Buffer 类以及它专有的子类定义了一个用于处理数据缓冲区的 API。 所有的缓冲区都具有四个属性来提供关于其所包含的数据元素的信息。它们是:容量(Capacity) 缓冲区能够容纳的数据元素的最大数量。这一容量...
2013-04-12 22:14:00
154
原创 NIO学习笔记(2)--NIO核心类(Selector)
对于上一节中的socket通讯,用以下图来解释NIO的通讯过程:从图中可以明显的看出NIO主要体现在 Channel,Buffer,Selector 这几个类上一. Selector(选择器) 针对SelectableChannel对象的多路复用器。即只针对网络通讯,对文件IO不支持。 可通过调用此类的 open 方法创建选择器,在选择器调用 clo
2013-04-08 19:14:26
3510
NIO学习笔记(2)--NIO核心类(Selector)
对于上一节中的socket通讯,用以下图来解释NIO的通讯过程:从图中可以明显的看出NIO主要体现在 Channel,Buffer,Selector 这几个类上一. Selector(选择器) 针对SelectableChannel对象的多路复用器。即只针对网络通讯,对文件IO不支持。 可通过调用此类的 open 方法创建选择器,在选择器调用 close 方法关闭选择...
2013-04-08 19:14:00
195
原创 NIO学习笔记(1)--非阻塞I/O
一. 什么是阻塞? 阻塞(Block)这个概念。当进程调用一个阻塞的系统函数时,该进程被置于睡眠(Sleep)状态,这时内核调度其它进程运行,直到该进程等待的事件发生了(比如网络上接收到数据包,或者调用sleep指定的睡眠时间到了)它才有可能继续运行。 我自己是这样理解(同步/异步、阻塞/非阻塞)的: 所谓同步就是当一个进程发起一个函数(任务)调用的时候,一直会
2013-03-31 12:32:40
3438
NIO学习笔记(1)--非阻塞I/O
一. 什么是阻塞? 阻塞(Block)这个概念。当进程调用一个阻塞的系统函数时,该进程被置于睡眠(Sleep)状态,这时内核调度其它进程运行,直到该进程等待的事件发生了(比如网络上接收到数据包,或者调用sleep指定的睡眠时间到了)它才有可能继续运行。 我自己是这样理解(同步/异步、阻塞/非阻塞)的: 所谓同步就是当一个进程发起一个函数(任务)调用的时候,一直会到函数(任务)完成。进程...
2013-03-31 12:32:00
192
转载 BIO AIO NIO
jdk1.6及之前都只实现BIO 和 NIOjdk1.7开始支持AIO,即NIO 2.0在BIO阻塞模式下server端:1 new ServerSocket(int port) 监听端口2 serverSocket.accept() 阻塞式等待客户端的连接,有连接才返回Socket对象3 socket.getINputStream() 获取客户端发过来的信息流4
2013-03-15 21:12:09
1453
3
BIO AIO NIO
jdk1.6及之前都只实现BIO 和 NIOjdk1.7开始支持AIO,即NIO 2.0在BIO阻塞模式下server端:1 new ServerSocket(int port) 监听端口2 serverSocket.accept() 阻塞式等待客户端的连接,有连接才返回Socket对象3 socket.getINputStream() 获取客户端发过来的信息流4 socket.getO...
2013-03-15 21:12:00
140
RegexBuddy4
2013-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人