- 博客(24)
- 收藏
- 关注
原创 netty学习【三】:发送对象
1、项目结构:看下项目的结构: 2、项目源码:2.1、服务器端:EchoServer.javapackage send_object.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.Channel;import io.netty.channel.Channe...
2017-11-29 17:10:50
317
原创 netty学习【二】:netty中handler的执行顺序
1、简介Handler在netty中,无疑占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、统一对日志错误进行处理、统一对请求进行计数、控制Handler执行与否。一句话,没有它做不到的只有你想不到的。Netty中的所有handler都实现自ChannelHandler接口。按照输出输出来分,分为Cha...
2017-11-29 17:08:37
521
原创 netty学习【一】:发送字符串
1、简介Netty是基于Java NIO的网络应用框架. Netty是一个NIO client-server(客户端服务器)框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty提供了一种新的方式来使开发网络应用程序,这种新的方式使得它很容易使用和有很强的扩展性。Netty的内部实现时很复杂的,但是Netty提供了简单易用的api从网络处理代码中解耦业务逻辑。Nett...
2017-11-29 17:04:33
702
原创 对于 Netty ByteBuf 的零拷贝(Zero Copy) 的理解
根据 Wiki 对 Zero-copy 的定义:"Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another. This is frequently used to save CPU c...
2017-11-29 15:40:59
145
原创 SpringCloud教程 -- 第一篇: 服务的注册与发现(Eureka)
一、spring cloud简介spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解,如果不了解的话可以看这篇文章:2小时学会sp...
2017-11-20 10:56:55
163
原创 CentOS6.5上编译OpenJDK7源码
1、<<深入理解Java虚拟机--JVM高级特性与最佳实践>>第一章谈到自己编译jdk,所以今天尝试在CentOS6.5上编译openJDK7。 2、软件准备:Bootstrap JDK: jdk-7u80-linux-x64.tar.gzOpenJDK:openjdk-7u40-fcs-src-b43-26_aug_2013.zipANT:apa...
2017-06-07 18:01:45
156
原创 JAVA中Stack和Heap的区别
1.Java中对象都是分配在heap(堆)中。从heap中分配内存所消耗的时间远远大于从stack产生存储空间所需的时间。 (1)每个应用程序运行时,都有属于自己的一段内存空间,用于存放临时变量、参数传递、函数调用时的PC值的保存。这叫stack。 (2)所有的应用可以从一个系统共用的空间中申请供自己使用的内存,这个共用的空间叫heap。 (3)stack中的对象或变量只要定义好就可使用了,...
2016-04-08 15:33:37
112
原创 Callable、Future和FutureTask
创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。...
2016-03-29 11:42:30
90
原创 Java 内存区域 详解
Java虚拟机在执行Java程序的过程中会把它所管理的内存区域分为若干个不同的数据区域。这些区域都有各自的用途,有的区域随虚拟机进程启动而存在,有的区域则依赖用户线程启动和结束而建立和销毁。根据《Java虚拟机规范第二版》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域。 程序计数器程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示...
2016-03-14 16:44:13
101
原创 (转)在eclipse下远程调试hadoop2.0
在《在eclipse下编译hadoop2.0源码》一文中,我详细介绍了如何在eclipse环境和命令行环境下编译hadoop2.0源代码,并简单介绍了如何构建hadoop环境,这篇文章将着重介绍如何在eclipse下调试源代码。在hadoop2.0中,常用的模块有NameNode,DataNode, ResourceManager, NodeManager, FsShell等。这里我们以调试...
2015-10-23 15:23:37
149
原创 hadoop2.2.0源代码编译
一、环境说明虚拟软件:VMware Workstation 10虚拟机配置:RHEL Server release 6.5 (Santiago) 2.6.32-431.el6.x86_64cpu:4核心,内存:4G,硬盘:50G二、前提条件:1:将rhel6.5的iso文件作为yum源2:hadoop-2.2.0-src.tar.gz3:安装JDK 1.6.0_4...
2015-10-22 17:37:15
111
原创 将Hadoop 2.6.0源码导入到Eclipse
我的环境:CentOS 64bitNTFS格式文件系统Administrator用户Eclipse(Luna Service Release 2 (4.4.2))JDK 1.7(Oracle官网下载)最好不要用1.8,因为导入源码后还想编译的话会出现问题。hadoop-src-2.6.0.tar.gz(在官网下载的源码:http://www.apache.org/dyn/closer.cgi...
2015-10-22 16:48:47
154
原创 hadoop-CDH版环境搭建(二)
Step 8:安装CDH5a、下载rpm安装包 1、进入下载目录,/usr/tool/: 2、执行下载: wget http://archive.cloudera.com/cdh5/one-click-install/redhat/6/x86_64/cloudera-cdh-5-0.x86_64.rpm --如果Li...
2015-08-25 17:41:46
221
原创 hadoop-CDH版环境搭建(一)
目前而言,不收费的Hadoop版本主要有三个(均是国外厂商),分别是:Apache(最原始的版本,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)、Hortonworks版本(Hortonworks Data Platform,简称“HDP”),对于国内而言,绝大多...
2015-08-25 11:28:02
177
原创 基于HBase的入库方案效率对比验证(二)
上节中,我们采用JavaAPI的方式来操作HBase,接连和访问方式都比较简单直接,而本节我们采用MapReduce的方式来操作HBase,那么就要先配置好Eclipse-Hadoop的插件。 一、安装Eclipse-Hadoop插件由于网上这方面的资料非常全,所以本人推荐一个参考博文,照着配置就OK:http://www.cnblogs.com/flyoung2008/arc...
2015-08-03 11:12:16
262
原创 基于HBase的入库方案效率对比验证(一)
一、背景说明HBase是一个分布式的、面向列的开源NoSQL数据库,不同于传统关系型数据库,它在大数据量级下的性能表现堪称卓越。最近项目也在探索往Hbase方向迁移,故首先整理了一份Hbase入库效率方面的数据。Hbase入库手段有三种,但针对项目实际情况,我采用了其中两种(JavaAPI和MapReduce)来进行入库操作,并进行比较。 二、测试环境三台主机:一台mast...
2015-07-31 17:12:09
424
原创 Mysql 数据文件&&日志文件 目录地址迁移指南
我们在日常部署mysql服务时,经常会考虑到磁盘空间问题,而需要做默认存储目录以及日志目录的迁移,虽然网上零零散散也有很多教程,但经过本人试验,很多文章都比较表层,照着做会出现这样那样的问题,所以今天特别开个专题,把数据文件和日志文件迁移的过程合在一起详细地阐述一遍。 环境参数:CentOS 6.5 、Mysql 5.5.43 迁...
2015-07-02 13:34:56
527
原创 Mysql双主从同步配置(二)
接上节,本节需要做的是配置M-M的replication,主主同步其实可以简单的看成两台实例间同时互相做主从,配置步骤如下: 1、两台Master都要进行账户授权,但由于上一节我们在两台主机上针对所有ip(‘%’)进行了授权,所以这一步我们可以省略,如果之前只针对单IP进行授权的同学,需要再进行一次Master间的互授权 mysql>> GRANT REPLICATION ...
2015-06-25 15:00:45
162
原创 Mysql双主从同步部署(一)
最近因为一次偶然的数据库磁盘坏道故障,所以决定进行mysql同步的HA方案升级,趁着这个机会又重新审视了一把mysql replication的过程。 整个方案是基于四个mysql实例,实现两两主从,同时两台master之间进行主主同步,此方案的优势是任何一台master或者slave故障时,都可以切换到另一台master或slave进行服务,当任一台故障实例恢复后,都可以自动恢复和同...
2015-06-25 14:30:30
328
原创 java线程互斥&同步(二)
这一次,来探讨下线程间同步的问题,网上很多小伙伴讲到同步,自然而然会说synchronized,但是synchronized英文翻译的确是“同步的”,但此同步非彼同步,synchronized关键字其实实现的是对于一个共享资源的加锁操作,确保这个共享资源同一时间内只被一个对象(线程)进行操作,这是我们前一节所说的线程间互斥,所以synchronized并非实现了线程间同步。 ...
2015-06-10 17:17:01
121
原创 java线程互斥&同步(一)
Java线程互斥和同步一直是一个较难理解透彻的东西,要弄清楚其本真,还是要先从概念入手:1、线程之间通过对资源的竞争,包括共享的数据和硬件资源,所产生的相互制约关系,这类线程间的主要问题是互斥和死锁问题,这类关系被称为互斥关系。2、线程之间的相互协同合作,彼此之间直接知道对方的存在,并了解对方的名字,这类进程常常需要通过“进程间通信”方法来协同工作,这类关系被称为同步关系。 概念读...
2015-06-09 17:32:37
454
原创 Java Process详解
Process简介我们在实际Java开发工作中可能会遇到调用操作系统命令的场景,比如查看下文件夹,执行下sh/exe文件等等,那么我们就要用到Process了!首先,打开API来认识下Process :java.lang 类 Processjava.lang.Object 继承者 java.lang.Processpublic abstract class P...
2015-05-15 14:42:00
6447
1
原创 Java多线程-基础(Runnable篇)
上一讲中我们提到了继承Thread类是实现多线程的一种方式,那么现在就来看看第二种方式:Runnable接口。废话少说,上代码(依旧是之前的例子):public class ThreadDemoOne implements Runnable { int no,workno,sleeptime; public ThreadDemoOne(int no,int workno,...
2015-05-14 16:50:57
109
原创 Java 多线程-基础(Thread篇)
什么是多线程? 在进入正题前,我们还是先来问两个问题,什么叫“多线程”? 以及“Java多线程”跟“多线程”有什么联系? 好吧,问题看似简单但也抽象,想要搞清楚答案,我们还是回到现实生活中找找答案吧。 现在两小夫妻就驰骋在一条单向四车道的草原高速公路上,去60公里外的A城办结婚证,车很多但至少能保持120码全速行驶,贼爽了!不到半...
2015-05-14 15:42:06
139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人