netdata-linux服务器运维与性能监控的神器

用于工作原因,服务器监控的事时不时的发生(要么cpu过高、要么内存不足、要么流量异常、要么某个服务死了,你懂得~)。

一直需要一个能进行一个监控的工具,但绝大部分部分的监控平台,都是通过服务器上的脚本插件把数据传输到第三方平台,总感觉这样不好~自己用python或者shell开发一个呢,功能又没这么全。

终于等到你,还好没放弃!意外发现了开源的netdata,这是一个在服务器端安装服务器监控工具。报表结果通过web页面的形式进行查看。

监控的内部有很多:

服务器基本的cpu、io、内存等;

apache、tomcat、mysql等服务的性能(需要单独配置下,还没进行操作);

硬件温度,电压等参数;

等等…..

访问端口为19999,没有登录账号一说。为了安全起见,建议安装一个vpn,并设置为vpn内网访问。

java使用Gson进行json字符串反序列化转map对象时,int变为double的解决办法

java处理json字符串与java对象的互转,google家的Gson是个很好的工具。不过使用中也遇到了一些坑(有的其实更像是惊喜),与大家分享下。

一、json字符串反序列化转map对象时,int变为double的解决办法。

二、json字符串中格式时间字符串与Date对象的直接转换。

三、字符串与枚举的直接转换(自带此功能)。

Gson默认的坑

问题:使用Gsonjson字符串转为map时,原来的int类型反序列化后成为double类型。

Json字符串:

"{\"lngnum\":12,\"dbnum\":12.34,\"datetime\":\"2014-12-23 12:09:21\",\"date\":\"2014-12-23\",
\"next\":{\"lngnum\":12,\"dbnum\":12.34,\"datetime\":\"2014-12-23 12:09:21\",\"date\":\"2014-12-23\"}}";

实现方式:

/**
 * 使用默认的gson对象进行反序列化
 *
 * @param json
 * @param typeToken
 * @return
 */
public static <T> T fromJsonDefault(String json, TypeToken<T> typeToken) {
Gson gson = new Gson();
return gson.fromJson(json, typeToken.getType());
}

转化结果:

lngnum-12.0-Double//整型变为了浮点类型
dbnum-12.34-Double
datetime-2014-12-23 12:09:21-String
date-2014-12-23-String
====================
next-Map start
lngnum-12.0-Double//整型变为了浮点类型
dbnum-12.34-Double
datetime-2014-12-23 12:09:21-String
date-2014-12-23-String
next-Map end
====================

方法一:重新实现TypeAdapter

实现方式:

继续阅读java使用Gson进行json字符串反序列化转map对象时,int变为double的解决办法

Checkstyle-自动化java代码规范检查的eclipse插件安装与使用

一、Checkstyle插件安装

打开eclipse,Help->Eclipse Marketplace->搜索“checkstyle

选择Checkstyle Plug-in->install(进行安装)->一路安装(eclipse会重启一次)。

二、Checkstyle插件配置

a) 插件参数配置

Window->preferences->点击“checkstyle”菜单项 继续阅读Checkstyle-自动化java代码规范检查的eclipse插件安装与使用

阿里云主机发布wordpress网站

一、登陆阿里云主机后台,获取主机信息并修改主机的环境参数

a) 获取阿里云主机的ftp账号与数据库账号

b) 修改云主机的php版本

c) 启动云主机的php的模块

二、通过ftp工具把wordpress程序进行上传

a) 通过ftp工具(我用的flashfxp连接云主机 继续阅读阿里云主机发布wordpress网站

javascript闭包与匿名自执行函数的演变原理

js的闭包特性,使得js弄出一套稀奇古怪的语法。而对于这些特殊的语法,已经有点js基础的同学看起来还是比较吃力甚至头疼。下面深入浅出的js“匿名自执行函数”的演变过程。啥,你还不知道什么是“匿名自执行函数”?我想(function(){})();这种语法,在各位同学阅读js库源码时多多少少碰见过。对,就是这家伙!

首先,我们看些正常的js函数定义方式:

//常规函数
function normalFun(){
console.log(“normalFun”);
}
normalFun();

//函数变量

var fun = function() {
console.log(“fun”);
};

fun();

以上两种函数定义的方式都有个共同特点:函数有个名字,通过函数名字调用函数。好了,下面奇葩的事就发生了~

继续阅读javascript闭包与匿名自执行函数的演变原理