- 博客(23)
- 收藏
- 关注
原创 Netty 学习 - 异步操作中的Future和Promise
本文继续介绍Netty的相关知识,主要讲解异步操作中的Future和Promise由于Netty中的Future都是异步IO操作,结果是未知的,因此命名为ChannelFuture,表示跟Channel的操作有关ChannelFuture提供了一系列不同于JDK Future的API,用于获取操作结果,添加事件监听器,取消IO操作,同步等待。Netty强烈建议直
2016-12-25 16:06:32
17024
3
原创 Netty 学习 - EventLoop
上一篇文章记录了服务端和客户端的启动流程,本文介绍一下类关系以及eventLoop等知识,本研究主要还是以NIO为主 AbstractNioByteChannel -
2016-12-24 16:22:34
770
原创 Netty 学习 - Server与Client的启动过程
本文主要记录在学习Netty4的代码中学习到的知识点,方便后续的查看第一部分: 服务端ServerBootstrap与客户端BootStrapServerBootStrap与BootStrap均继承于AbstactBootStrap,AbstractBootstrap完成了大部分的模板方法,提供抽象方法供服务端和客户端启动类实现启动流程如下:服务端BIND
2016-12-23 11:44:17
2430
原创 Dubbo学习记录二
记录在研究Dubbo代码中的学习点 (@SPI的接口类的接口方法的@Adaptive)1 在与Spring进行整合的时候,利用Spring的xml配置创建出一系列的配置对象,存到Spring容器中application 对应于ApplicationConfigregistry 对应 RegistryConfigmoniotr 对应 MonitorConfig
2016-08-20 17:14:22
626
原创 Dubbo 学习记录
1 ExtensionLoader对于每个扩展点都是唯一的,也就是每个扩展点一个ExtensionLoader对象,里面有各种缓存对象,用于缓存配置文件中定义的配置。包括 private final ConcurrentMap, String> cachedNames = new ConcurrentHashMap, String>(); private fina
2016-08-18 15:49:31
2153
原创 用JAVA动态代理实现RPC框架
先贴一段看到的对动态代理的比较不错的解释动态代理其实就是Java.lang.reflect.Proxy类动态的根据指定的所有接口生成一个class byte,该class会继承Proxy类,并实现所有指定的接口(在参数中传入的接口数组),也就是说,返回的对象可以转换类型为接口数组中的任何一个接口类型。然后再利用第一个参数的classloader将class byte加载进系统,最后
2016-08-17 17:15:25
5378
原创 Netty 学习笔记
本文主要记录学习Netty 的过程中的各种问题以及自己的心得记录一、先总体认识一下Netty 用到的组件以及在整个架构中是如何协调工作的,必不可少的组件包括:BootStrap/ServerBootStrap 分别对应客户端以及服务器端,用来配置整个Netty 程序,串联各个组件,一个Netty 程序也是由这部分开启Handler 为了支持各
2016-08-12 11:18:52
1128
原创 Mycat 读写分离+分库分表
上次进过GTID复制的学习记录,已经搭建好了主从复制的服务器,现在利用现有的主从复制环境,加上正在研究的Mycat,实现了主流分布式数据库的测试Mycat就不用多介绍了,可以实现很多分布式数据库的功能,极大的减轻数据库服务器的压力,包括读写分离以及分库分表,本测试对这两种功能都进行了测试,进行相应记录本文以Mycat官方给出的例子来进行解释总结
2016-04-08 21:06:29
33790
1
原创 Mysql 复制-基于GTID 测试
GTID : Global Transaction Identified在研究Mycat的时候顺便重新看了一下Mysql的复制策略,以前都是通过传统方式进行文件定位进行的复制设置,这次发现了GTID模式下的复制方式,而且Mysql5.7以及后续的版本对GTID也是大力推崇,所以详细学习了一下GTID的知识,也通过自己的测试进行了配置为了方便记忆,记录自己在学习GTID
2016-03-29 17:12:11
1045
原创 Hadoop知识点记录
HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心,HDFS在集群上实现了分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理,HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发,跟踪,执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务
2015-12-19 09:38:03
1301
原创 Hadoop 学习知识点总结
先快速说明一下:Hadoop并不是说明数据库,也不是程序库,甚至不是一个独立产品,实际上,Hadoop是一些独立模块的组合包括一个分布式文件系统HDFS,一个分布式数据库HBase,一个大型分布式数据处理库MapReduce 打个比方:就好像是Microsoft Office,其实并没有一个叫做Office的应用,Office实际上是指Word, Excel等一
2015-12-02 10:18:54
1354
原创 Hbase 知识点记录总结(1)
先总结一下几个基本比较重要的名词RegionServer : Region读写操作的场所Master : 管理Region的分配,基于zooKeeper感应RegionServer的上下线HDFS : HBase数据,日志的存储场所,分布式文件存储系统,属于基于硬件文件系统的上层虚拟概念强一致性:同一行数据的读写只
2015-12-01 09:29:58
1478
原创 Spring + Atomikos 分布式事务实现方式
前段时间发现对分布式事务了解的不够清晰,最近又重新看了一下分布式事务,简单做个记录,以后方便查看Java规范对分布式事务定义了标准的规范Java事务API和Java事务服务,分别是JTA和JTS一个分布式事务必须包括一个事务管理器和多个资源管理器,资源管理器是任意类型的持久化数据存储,而事务管理器则是承担着所有事务参与单元者的相互通讯的责任JTA的规
2015-11-13 16:33:25
20867
原创 Spring在配置Shiro 关于AOP的部分记录
在配置Shiro与Spring框架的时候,用到了Shiro的注解方式实现权限,做一下记录方便以后查看applicationContext-shiro.xml 中关于注解AOP的配置 <!-- Enable Shiro Annotations for Spring-configured beans. Only run after --> <!--<bean cl
2015-10-20 10:05:20
3915
原创 Linux下 Mysql安装的问题记录
1 Linux下对每个用户有open file的限制,默认为1024,可以通过ulimit -a 进行查看 当用普通用户启动Mysql, 包括 mysqld或者mysqld_safe两种方式,都会受到该大小的限制,设置的max_connections等配置值会被自动调整 当用ROOT用户启动Mysql,指定--user选项同样可以保证不是ROOT
2015-09-01 09:33:42
598
原创 Mysql Cluster 学习
--ndb-batch-sizeThis sets the size in bytes that is used for NDB transaction batches--ndb-cluster-connection-poolThis option is useful only when running mysqld on host machines having multiple C
2014-04-14 15:36:45
881
转载 Mysql 异常处理流程
mysql存储过程也提供了对异常处理的功能:通过定义HANDLER来完成异常声明的实现 语法如下:DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement handler_type: CONTINUE | EXIT condition_value: SQLSTATE [VALUE] sqlstate_v
2014-03-27 19:22:04
784
原创 关于oracle递推查询的一点知识点说明
首先查看 http://apps.hi.baidu.com/share/detail/33163057 对于文章里面的查询一个月连续三天均有数据的电话号码的问题 解决办法是 SQL> select distinct msisdn from test a 2 where bill_mon
2012-02-16 16:49:34
740
原创 oracle 网络配置
Oracle 三个配置文件 listener.ora sqlnet.ora tnsnames.ora 都是放在$oracle_home\network\admin目录下
2012-02-10 17:18:48
287
原创 oracle 函数
Oracle 函数学习 row_number() over ([partition by col1] order by col2 ) as 别名表示根据col1 分钟,在分组内部根据col2 排序 而这个别名的值就表示每组内部配需后的顺序编号 row_number() 可以改为其他聚合函数。 nvl 函数的格式如下 nvl(exp1,exp2) 含义
2012-02-09 19:13:52
485
原创 Oracle 闪回
Recycle Bin是Oracle10g后新提供的功能。 flashback Query 恢复指定时间点的记录 flashback Table 恢复指定时间点的表 flashback Database 恢复指定时间点的数据库 Flashback Log 的创建,删除以及修改都是由Oracle数据库自动
2012-01-31 11:03:00
275
原创 Oracle逻辑结构
创建联机重做日志文件都是以组为单位,也就是说如果想为数据库添加一个联机重做日志文件,就必须先为数据库创建一个联机重做日志文件组。 所谓归档,就是Oracle自动将写满(或被切换)的联机重做日志文件复制一份到指定路径下。 日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结果的每一个变化。 LogMiner 工具可以用来分析在线,也可以用来分析离
2012-01-31 10:24:32
350
原创 RMAN
如果要在热备份状态下备份有效的文件,数据库必须运行归档模式 不一致备份在恢复后必须借助归档日志文件和联机重做日志才能将数据库恢复到一致性的状态才能打开。 只有归档模式下创建的不一致备份才能被视为有效备份。 传统用户管理的备份方式是使用操作系统复制相关数据文件 使用RMAN 可以不用关心数据文件存放在
2012-01-29 16:35:01
339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人