- 博客(42)
- 收藏
- 关注
记录hbase遇到的问题
这次记录下学习hbase遇到的一些问题,有了新问题也会追加。 背景:使用vmware创建3台桥接模式虚拟机进行集群,熟练之后大概会使用7台。宿主机操作系统:mac osx 10.11.3 16G 256G SSD。软件版本:hadoop 2.7.2、zookeeper 3.4.8、hbase 1.2.2 1、瞎捣鼓,通过hdfs将/hbase目录删除了,此时执行在hba...
2016-08-04 11:41:43
1327
Grpc应用,搭配commons-pool2连接池实现连接复用
commons-pool2是apache的连接池框架,方便我们创建连接池,实现tcp连接的复用,不需要每次请求都发送握手请求、断开请求等操作,很多开源项目都采用了commons-pool,例如jedis。 上一篇的Grpc应用博客只是简单地实现了一个Grpc应用,但是,一个致命的缺点在于每次创建连接、断开连接时的高消耗,这次博客使用commons-pool2来实现一个Grpc的连接池。...
2016-07-02 16:03:40
1904
Grpc应用,基本实现
使用grpc可以用来进行不同系统之间的信息交互,而且grpc不限于java,使用同一个proto文件可以在不同的编程语言之间交互。上面这张图介绍了proto文件的语法,对应proto3.0,具体更多的内容请参考文档:http://www.grpc.io/docs/#generating-grpc-code 下面我们先讲一下如何在java中通过proto文件生成java...
2016-07-01 00:02:03
431
tcp/ip 学习记录 传输层
TCP是面向连接的、可靠的流协议。UDP是不具有可靠性的数据报协议。 根据端口号就可以识别在传输层上一层的应用层中所要进行处理的具体程序。 TCP/IP、UDP/IP通信中,通常采用5个信息来识别一个通信。分别为:源IP地址、目标IP地址、协议号、源端口号、目标端口号。只要其中一项不同,那么就会被认为是不同的通信。 动态分配的端口号取值范围在49152至65535之...
2016-05-26 22:24:38
158
tcp/ip 学习记录 网络接口层 网络互联层
网络分层:应用层(Date + 应用协议)、传输层(.. + tcp/udp)、网络互联层(.. + ip)、网络接口层(.. + mac)上面括号内的协议只是代表协议,其实还有更多的选择 以太网帧体格式:目标mac(6)、源mac(6)、类型(2)、数据(46-1500)、FCS(4) 网络拓扑:网络的连接和构成的形态称为网络拓扑。MAC地址也不总是唯一的,即使MAC...
2016-05-25 23:02:53
1262
idea快捷键for mac
这次带来的是一些在idea中的快捷键操作,现在网上很多博客介绍的快捷键都是基于windows的或太老的,所以自己这次就整理了一下,方便大家查阅。 功能介绍keymap显示或隐藏project窗口⌘1显示或隐藏最近修改的文件(与git关联)⌘9显示或隐藏Run窗口⌘4运行main方法(Run方式)⇧^R显示或隐藏Debug窗...
2016-05-20 23:17:54
125
scala协变逆变与java中PECS的关系
在effective java 2nd中第28条,有对java范型PECS的介绍。 首先,我们看一个在java中经常被我们使用的方法addAll():为什么在addAll的时候Collection的类型要通过继承范型E来进行限定? 有什么特殊的吗?接着我们再来看一看普通的add方法:有没有觉得很奇怪?使用add方法的时候又不需要限定类型。 下面我们自己来写一个List进行以下测...
2016-04-24 02:00:49
151
scala 隐式转换函数、隐式转换参数
目前的scala相关博客大概只能算一个笔记,方便自己记录,也帮大家查找信息了。 首先scala中的隐式转换可以分为隐式函数转换与隐式参数转换两类,下面就来分别说一下自己对这两种模式的理解。 1、隐式函数转换,我们先看一段代码:scala> val x: Int = 3.14<console>:10: error: type mismatch; fo...
2016-04-23 02:33:16
197
spring boot + log4j2 配置
以前的log一直都是组长进行配置,自己甚至连log的级别都分不太清楚,为了避免这种尴尬的情况再次发生,自己尝试了一下在spring boot中进行log4j2的配置。 首先自定义一个log4j2.xml文件:<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"> &...
2016-04-23 01:23:14
427
spring加载过程,源码带你理解从初始化到bean注入
之前写过的很多spring文章,都是基于应用方面的,这次的话,就带大家来一次对spring的源码追踪,看一看spring到底是怎么进行的初始化,如何创建的bean,相信很多刚刚接触spring的朋友,或者没什么时间的朋友都很想知道spring到底是如何工作的。 首先,按照博主一贯的作风,当然是使用最新的spring版本,这次就使用spring4.2.5...其次,也是为了方便,采用sp...
2016-04-21 23:58:14
1675
2
scala类型变量界定、视图界定、上下文界定
类型变量界定(Type Variable Bound)、视图界定(View Bound)、上下文界定(Context Bound),在scala中算很重要的内容了,这次博客就来写点自己的理解。 1、类型变量界定(Type Variable Bound):// 编译错误def typeVariable[T](a: T, b: T) = { if (a.compareTo...
2016-04-20 00:05:34
329
通过spring配置redis cluster
上周spring data redis更新了1.7.1版本,正式支持redis cluster集群模式,这里就介绍一下关于redis cluster集群的相关配置,例如redis连接池等内容。不过想要使用redis cluster集群的话,还是需要你先启动redis cluster才行,具体操作可以参考我之前的redis cluster集群搭建。 1、与之前的文章相同,不采用xml,而...
2016-04-18 22:23:57
1590
spring配合scala时,@Autowired的一个问题
今天在用spring配合scala时,遇到了一个关于@Autowired的问题,主要报错信息如下:Caused by: java.lang.NoSuchMethodException: com.zk_chs.xxxxx.....<init>() at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_73...
2016-04-13 00:16:41
1427
1
zookeeper 学习笔记(二) JMX监控
上次的笔记介绍的是zookeeper的安装、部署、部分java客户端代码,这次我们使用java自带的Jconsole或jvisualvm工具进行对zookeeper进行监控。 1、首先,zookeeper并没有配置开启远程连接jmx的端口信息,而是默认开启了本地连接而已。所以,我们需要添加一些配置,这些配置位于zookeeper目录下的bin/zkServer.sh中:bin/Se...
2016-04-10 01:18:15
688
kafka 学习笔记(二) java客户端代码
在学习笔记(一)中,讲解了kafka的安装、部署、以及bash下进行的一些简单操作,而这次将学习kafka的java客户端代码。 1、jar包。在maven上,我们有两种apache kafka提供的jar包:<dependency> <groupId>org.apache.kafka</groupId> <artifactId...
2016-04-03 01:18:57
213
kafka 学习笔记(一) 安装、部署
kafka是一个高吞吐量的分布式消息系统,整体设计为典型的发布与订阅模式。kafka内部采用zookeeper来解决配置管理、通知/协调、集群管理、master选举等问题,所以建议先对zookeeper有个基本的了解,可以看下我的zookeeper笔记(一)。 这次对于kafka只介绍一下命令行下的安装部署等操作,其它的,比如kafka在zookeeper中的存储结构、配置详解、jav...
2016-04-01 00:14:29
248
zookeeper 学习笔记(一) 安装、部署、部分java客户端代码
很多大型系统基本都需要一个无单点问题的分布式框架,zookeeper便满足这一需求。这次的博客,我们先进行一个最基本的安装、部署、连接。 1、首先下载zookeeper,解压,我这里选择最新的稳定版3.4.8,然后我们使用单机模拟集群,可以专门建立一个文件夹,用来放置你的zookeeper,比如:/Users/zk_chs/something/hadoop/zookeeper-3....
2016-03-30 23:17:05
164
jedis客户端连接redis cluster代码
上一篇redis中,讲解了redis cluster集群,但是却没有涉及到客户端代码,这次就一起来看下如何通过jedis使用redis cluster。 在此之前,需要说一个坑,上一篇中,我们将cluster中每个节点的ip:port配置成了如127.0.0.1:7000这样的形式。但是,由于集群内部存取时,需要确定key所在的slot,一旦不是在我们登录的节点上,就会有内部转发,...
2016-03-23 21:05:29
492
spring boot + redis 实现session共享
这次带来的是spring boot + redis 实现session共享的教程。 在spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring session支持,配置如下:@Configuration@EnableRedisHttpSessionpublic class RedisSessionConfig {}...
2016-03-23 00:44:26
511
spring boot + websocket进行通信
这次给大家说一下自己对websocket + spring boot结合使用的一些经验 首先websocket是一个持久化的协议,实现了浏览器与服务器的全双工通信。不再像http那样,只有在浏览器发出request之后才有response,websocket能实现服务器主动向浏览器发出消息。 下面我们用spring boot来实现一下:在spring boot的文档中,介绍...
2016-03-22 09:32:33
1042
redis cluster集群搭建
这次给大家带来的是redis cluster集群搭建。 1、首先,我们先根据文档建立6个文件夹,可以将目录cluster-test(文件夹名称及位置随意)建立在编译完成的redis根目录下,然后cd进入clustert-test,再创建7000-7005共6个文件夹,mkdir cluster-testcd cluster-testmkdir 7000 7001 7002 ...
2016-03-22 09:12:50
165
原创 spring boot + ActiveMQ 实现消息服务
上篇博客带来的是spring boot + redis实现session共享的文章,这次给大家带来的是spring boot + activemq。 首先,我在github上找到了一个不错的demo,这里放给大家一起看下:https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/sp...
2016-03-20 15:45:38
492
原创 Lambda中groupBy分组用法
这次的博客给大家带来点lambda中groupBy分组语法的使用 首先我们新建一个对象,通过这个对象的集合来进行学习:@Data@Builderpublic class Person (){ private int grade; private boolean isBoy;} 很简单的一个类,grade表示年级,isBoy表示性别,男为t...
2016-03-12 15:21:57
36699
3
原创 spring boot中自定义properties文件并获取内容
最近项目中使用到了spring boot,这次带来点关于spring boot中properties文件的使用方法 首先你可以定义一个properties文件,如下所示:// 文件名可以自行定义,这里名为uploaddefine.propertiesupload.image[JPG]=.jpgupload.image[PNG]=.pngupload.office[CSV...
2016-03-11 23:16:39
507
原创 个人书单、随时记录
已读完:《计算机科学导论 3rd》、《java核心技术卷1》、《深入理解java虚拟机 2nd》、《java并发编程实战》、《鸟哥的linux私房菜基础篇 3rd》、《effective java 2nd》、《图解HTTP》、《图解TCP/IP》、《mysql数据库应用入门与提高》、《AtomicScala 2nd》、《spring framework 4.2.4》、《spring实战 3rd...
2016-02-20 18:27:03
124
原创 ThreadLocal 多线程中对象引用的理解
这次的博客带来的是关于ThreadLocal<T>的理解 什么是ThreadLocal呢?根据名称来看,ThreadLocal即线程本地的意思。另外它还是一个范型类,这个范型T,就是threadLocal.set(T)的参数,也是threadLocal.get()、threadLocal.initialValue()的返回值。public class ThreadLoc...
2016-02-17 11:33:18
360
原创 Spring Aop,参数绑定
目前所有的spring文章一律使用spring 4.2.4,包括前面的三篇 在前一篇中,代码里有一些@PointCut、@Before等的基本应用代码,而这次,我们将一起学习一下aop中的参数绑定、在此之前,我们先定义一个最基本的bean@Componentpublic class HelloWorld { public void sayHello (Data para...
2016-01-30 23:36:22
739
原创 CentOS中安装mysql5.7
之前在网上找的的资料是这样的yum install -y mysql-server mysql mysql-devel 但是发现在我的linux上无法进行安装,我的版本信息:LSB Version: :core-4.1-amd64:core-4.1-noarchDistributor ID: CentOSDescription: CentOS Linux re...
2016-01-29 11:08:12
81
原创 SpringAop中@Before、@After、@Around执行顺序
这次的博客一样采用全注解进行配置,东西也比较简单 首先说明,SpringAop需要有aspectjweaver这个依赖,要先加入到maven中;<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId&g...
2016-01-28 10:05:23
870
原创 Spring中@PostConstruct、@PreDestroy、InitializingBean、DisposableBean、initMethod、des
这次的博客比较Spring中@PostConstruct、@PreDestroy、InitializingBean、DisposableBean、initMethod、destoryMethod的执行顺序,顺便会将construct以及与注入顺序一并比较 为了方便起见,这次不使用xml文件定义bean,完全采用注解配置,共3个类,都放在annotations包下下面是定义的两个be...
2016-01-20 17:42:35
278
原创 Spring中@Autowire与@Resource的区别
在@Autowire使用时,默认使用by-Type的方式进行注入而@Resource,默认使用by-Type的方式注入,但使用by-Name方式时,相比@Autowire较方便public class SimpleMovieLister { private MovieFinder movieFinder; @Resource(name="myMovi...
2016-01-19 01:25:39
323
原创 java动态代理示例,自己实现Aop
这次的博客将会介绍两种动态代理的方式,一种为jdk动态代理,一种为cglib动态代理,在代码方面将会使用最少的代码来完成,类会尽量的少,帮助大家理解。 先讲一下这两种代理方式的主要区别,jdk动态代理要求代理的类必须要有实现的接口,而cglib是通过创建子类进行代理,不需要实现接口,具体操作马上介绍。 首先创建一个接口、一个类实现接口: public interface...
2015-12-25 22:30:39
119
原创 mysql索引入门简介
举个例子:若将数据库比作一本书,那么索引就是书的目录,用来提高查询的速度。通过索引,查询数据时可以不必读完记录的所有信息,而只是查询索引列。 表的不同的存储引擎定义了每个表的最大索引数和最大索引长度。所有存储引擎对每个表至少支持16个索引,总索引长度至少为256B,有些存储引擎支持更多的索引数和更大的索引长度。 索引有两种存储类型,包括B型树(BTREE)索引和哈希(HASH)...
2015-12-12 22:33:56
113
原创 mysql一些常用指令
mysql的配置文件,在linux与osx中为my.cnf文件,其中mysql、client都是客户端的,mysqld表示下面的内容属于服务器端;windows中配置文件为my.ini,其它相同 设置编码方式为utf-8:在client下添加default-character-set=utf8 在mysqld下添加character-set-server=utf8 与 init...
2015-12-08 23:15:38
111
原创 Java中的内存区域
写这篇博客是为了自己能够再次复习一下JVM,《深入理解java虚拟机》这本书算我的是启蒙教科书了,这次重读是要把以前模糊的、忘记的部分记录下来。 首先说清楚,内存区域不是内存模型,指的是大家常说的栈、堆、方法区(JDK8中已经改为Metaspace) 虚拟机栈:每一条线程有一个属于自己的虚拟机栈,而在这条线程执行时,会创建一个个的栈帧,栈帧就是一个个方法,这么一来,...
2015-11-23 02:22:21
103
原创 一些linux基本命令和概念
一些Linux下的基本命令,初学者可以看看,其他高手是不用看了的: 首先linux下的file/dir具有user、group、others三种不同的所有者,每种所有者又有rwx三种显示的权限,以及s或t两种特殊权限rwx分别为读、写、执行,命令ls -l file/dir可以查看权限 命令的一般格式为:command [-options] paramete...
2015-11-14 18:40:59
116
原创 Java通过Builder创建实例
昨晚做测试的时候需要一个测试对象,于是创建了一个Person,如下:public class Person implements Serializable{ private final int age; private final String name; private int weight; private String sex; .....
2015-11-11 11:22:17
551
原创 Redis事务、过期时间、排序、消息、管道
1:事务,Redis中的事务是一组命令的集合,事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。 MULTI开启事务,EXEC关闭事务redis> MULTIredis> SET key1 value1redis> QUEUEDredis> SET key2 value2redis> QUEUED...
2015-11-06 22:47:21
339
原创 Redis中各种类型及其命令
刚刚接触Redis,在这里把命令都列出来,防止自己忘记,也能多看看 http://zk-chs.iteye.com/blog/2253663 在目前的redis中支持类型如下: 1. 字符串类型 string 2. 散列类型 hash 3. 列表类型 linkedlist 4. 集合类型 set 5. 有序集合类型 sort...
2015-11-02 23:08:11
130
原创 Java1.8中ArrayList源码分析
转载请注明原文地址: http://zk-chs.iteye.com/blog/2250804 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable上...
2015-10-21 17:16:54
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人