作者:zhaohui

Java Instrumentation 热替换

使用 Instrumentation,开发者可以构建一个独立于应用程序的代理程序(Agent),用来监测和协助运行在 JVM 上的程序,甚至能够替换和修改某些类的定义。有了这样的功能,开发者就可以实现更为灵活的运行时虚拟机监控和 Java 类操作了,这样的特性实际上提供了一种虚拟机级别支持的 AOP 实现方式,使得开发者无需对 JDK 做任何升级和改动,就可以实现某些 AOP 的功能了。 网上的基于Instrumentation的说明有很多,不想做过多的介绍,下面基于项目中遇到的一些需求,做的一个简单的例子。 做的项目是一个手机网络游戏,游戏的业务变更性很强,特别是项目开发中以及项目上线后的前…

阅读全文 »

Shadowsocks_Netty

基于netty4.0的shadowsocks客户端 使用 1.maven打包,生成shadowsocks-netty-0.0.1-SNAPSHOT-bin.zip包 2.解压zip包,conf/config.xml中配置shadowsocks服务器地址 3.执行shell文件夹中的bat/sh文件启动代理服务器 chrome代理设置 需要安装Proxy SwitchySharp插件,然后设置socks代理,指定本地代理服务器就行了 firefox代理设置 firefox自带设置socks代理功能,直接设置就行了 更多:http://codingo.xyz/index.php/2016/09/0…

阅读全文 »

Eclipse远程连接Hbase

安装Hadoop和Hbase hadoop和hbase版本的选择以及安装,参考之前的文章: Hadoop的版本选择和单机模式:http://codingo.xyz/index.php/2016/08/16/hadoop-stand-alone/ Hadoop的伪分布式模式:http://codingo.xyz/index.php/2016/08/16/hadoop_false_distribute/ Hbase版本选择和单机模式入门:http://codingo.xyz/index.php/2016/08/17/hbase_standalone/ Hbase的伪分布式模式:http://cod…

阅读全文 »

Netty实现Shadowsocks客户端

Shadowsocks是什么 shadowsocks是基于socks5协议实现的代理方式,分为服务器和客户端,双端之间通过使用指定的加密方式(AES,BlowFish,Table等)进行数据传输,有效的突破了GFW。 整个流程可以看来自网上的一张流程图: 总体流程大致如上图所示,具体实现细节后面会介绍,今天要实现的是SS Local这个模块,数据传输都是基于socks5协议,所以有必要先了解一下socks5协议。 socks5协议 SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器…

阅读全文 »

Netty模拟redis服务器

摘要 学习了一下redis的网络通信协议,准备用netty来模拟接受redis客户端发送过来的协议,进行简单的回复 Redis的客户端与服务端采用叫做 RESP(Redis Serialization Protocol)的网络通信协议交换数据,客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 。客户端和服务器发送的命令或数据一律以 \r\n (CRLF)结尾。 RESP支持五种数据类型: 状态回复(status reply):以“+”开头,表示正确的状态信息,”+”后就是具体信息​,比如: 其实它真正回复的数据是:+OK\r\n 错误回复(error reply…

阅读全文 »

Vps虚拟化技术

国内外vps主机提供商所提供的主机大多是基于Xen、OpenVZ、KVM、Hyper-V、VMWare五种虚拟化技术。 1.Xen Xen 由剑桥大学开发,它是基于硬件的完全分割,物理上有多少的资源就只能分配多少资源,因此很难超售。可分为Xen-PV(半虚拟化),和Xen-HVM(全虚拟化)。 Xen-PV:半虚拟化,所以它仅仅适用于 linux 系列VPS,但它的性能损失比较少,大概相对于母机的4%-8%左右。 Xen-HVM:全虚拟化,可以安装windows或自由挂载ISO文件安装任意系统,由于是全虚拟化,所以性能损失较大,大概相对于母机性能损失8%-20%左右。 优点:在资源有限的情况下…

阅读全文 »

EasyProtocol

EasyProtocol是一种序列化工具,目前提供了java,c#的支持,由于它是一种二进制的格式,比使用json,xml 进行数据交换快许多。当然比起protocolbuffer这种专业的序列化工具,可能在性能,大小上差一点,但是很轻巧,简单,适合互相学习,比较适合一些小型项目。 EasyProtocol介绍和使用:http://my.oschina.net/OutOfMemory/blog/399016 github:https://github.com/ksfzhaohui/easyProtocol

阅读全文 »

Hbase的伪分布式模式

摘要 伪分布式模式是在一台主机上运行所有进程的模式。此配置仅仅是协助Hbase用于测试和原型,不要在生产环境中使用此配置,也不要用此配置做HBase的性能比较 启动HDFS hbase的伪分布式模式下需要用到hdfs,所有我们需要先启动hdfs,可以参考上一篇:Hadoop的伪分布式模式,按照文中的操作,我们可以正确启动hdfs,并且可以使用jps查看进程: 并且可以通过hadoo fs 查看当前hdfs中的文件: 以上如果都没有问题的话,说明hdfs已经正常启动 更改hbase配置文件 主要编辑 hbase-site.xml 配置文件: Hbase使用HDFS的/hbase目录作为根目录,H…

阅读全文 »