Netty通过MBean监控流量

Netty流量统计 netty专门提供了一个traffic包用于流量的统计,如下图所示: 分别提供了全局的GlobalTrafficShapingHandler和针对channel的ChannelTrafficShapingHandler,同时提供了TrafficCounter用来记录实时的流量统计。 简单的使用: GlobalTrafficShapingHandler提供的方法trafficCounter()可以用来获取TrafficCounter对象, TrafficCounter提供了常用的一些方法: JMX的MBean JMX即Java Management Extensions(Ja…

阅读全文 »

log4j1,logback以及log4j2性能测试对比

环境 jdk:1.7.0_79 cpu:i5-4570@3.20GHz 4核 eclipse:3.7 操作系统:win7 准备 1.log4j:1.7.21 log4j.xml 2.logback:1.1.7 logback.xml 3.log4j2:2.6.2 log4j2.xml 测试 准备50条线程同时记录1000000条数据,然后统计时间 log4j1和logback的同步和异步分别修改为对应的appender就行了 log4j2的异步方式提供了2中模式: 1.全局开启 设置Log4jContextSelector系统属性为 org.apache.logging.log4j.core….

阅读全文 »

Eclipse连接Hadoop分析的三种方式

Hadoop一般都部署在linux平台上,想让Hadoop执行我们写好的程序,首先需要在本地写好程序打包,然后上传到liunx,最后通过指定命令执行打包好的程序;一次两次还可以,如果进行频繁的调试是很不方便的,所有最好是能直接通过IDE直接连接Hadoop;下面总结了三种方式连接Hadoop执行分析: 软件版本 操作系统:win7 64位 Eclipse:Indigo Service Release 2 Java:1.7 Hadoop:2.5.1 Linux:Centos7 一、利用Hadoop的本地模式,在Eclipse中执行本地数据计算 写好的程序在本地测试完之前再提交到远程服务器上进行数…

阅读全文 »

WebHDFS使用

WebHDFS提供HDFS的RESTful接口,可通过此接口进行HDFS文件操作。 配置 需要在hdfs-site.xml打开WebHDFS开关,此开关默认打开。 使用 连接NameNode的50070端口进行文件操作。 比如:查看知道目录文件列表 结果: 更多查看官方文档:https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-hdfs/WebHDFS.html

阅读全文 »

Nginx+Tomcat负载均衡

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好。 准备 nginx:nginx/Windows-1.10.1 http://nginx.org/en/download.html tomcat:apache-tomcat-6.0.45 准备2个tomcat服务器分别命名为: 同时修改server.xml文件中的端口号,有三个端口号需要修改,防止端口冲突: 修改tomcat默认首页:webapps/ROOT/inde…

阅读全文 »

正向代理和反向代理

经常看到代理和反向代理,但是一直没弄明白2者具体有什么区别,看下面2张图来区别一下: 正向代理(或者叫代理):一般指客户这一端,替客户收发请求,使真实客户端对服务器不可见。 反向代理:在服务器机房这一端,替服务器收发请求,也就是说请求和响应都先经过反向代理,使真实服务器对客户端不可见。具有缓存、安全、负载均衡等作用。

阅读全文 »

Thrift代理Hbase

使用HBase的2种方式: 1.直接使用HBase客户端API,这样就限制了只能使用java语言 2.使用一些能够将请求转换成API的代理,这些代理将原始Java API包装成其他协议,这样客户端可以使用API提供的任意外部语言来编写程序。外部API实现了专门基于java的服务,而这种服务能够在内部使用由HTable客户端提供的API。 HBase本身对代理模式的支持也很广泛,比如支持的类型有:REST、Thrift、Avro等 关于代理的模式,可以看一张网上的架构图: 这里主要介绍一下Thrift作为HBase的代理对外提供服务,主要是Thrift在性能上的优势以及对各种主流语言的支持 1….

阅读全文 »

Java Instrumentation 热替换

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

阅读全文 »