分类归档:软件技巧

Haproxy让Shadowsocks变的更强大

悲剧开始

8月初的时候发现上外网就非常困难,只是那会没注意,国庆节后回家,发现封网更是凶狠,用mtr命令跟踪后发现几乎连境外所有ssl请求都被抛弃,而本地ssh至linode也是时好时坏,VPN各协议均无法接入,后来虽用ssh tunnel的方式连上外网,但网速比较慢体验较差,难道就没有办法解决这个问题了么?

希望燃起

在研究了诸多方案后,最终选择Shadowsocks,因为其客户端和服务端可设置多种加密方法进行通讯,在通过GFW的时只是常规的TCP包,并没有明显的特征码,这样就减少了GFW的干扰,从而实现较顺畅的上网体验,但是本地直连linode服务器还是有干扰,类似以前的Google重置,而此时ssh tunnel的方式又让我想到的新的办法。
阅读全文…

Tomcat无响应案例分析

问题描述

生产环境下有几台tomcat,但突然某个时候发现所有的请求都不能响应了,由于我们的web server使用的是nginx,会将请求反向到tomcat上,所以起初怀疑是nginx就没有收到请求,但查看日志后发现,nginx中大量出现499的返回,这说明问题还是出在tomcat上.

问题排查

  1. 首先我想到的是不是CPU跑满了,虽说CPU没有报警但还是本能的top命令看下系统负载,发现系统只有0.x的负载,cpu,内存消耗都是正常的.
  2. 由于CPU没有出现异常,所以应该不是GC出现了问题,但还是检查了下GC log,果然GC也没问题
  3. 此时必须让jstack上场了,果然在使用jstack后发现很多线程都是WAITING状态
  4. 阅读全文…

升级至Yosemite后Eclipse ADT找不到设备

问题描述

Apple公司正式推出了OS X Yosemite,但是升级以后android开发套件也出现了一些莫民奇妙的问题,首当其冲的就是设备选择器中找不到连接至mac的设备了,尝试的很多方法,但依旧没能解决问题,但这个问题在OS X Mavericks是不存在的.

解决方案

首先我们还是使用adb devices查看到底能否识别,如果devices list中找不到设备,那么你需要做以下检查.

  1. 驱动是否正确,包括VID,PID设置
  2. 手机是否开启USB DEBUG,并且允许安装非市场应用
  3. 检查你的usb连线
  4. 重启你的电脑与手机

在这一步完成看,相信你能在devices list找到你的设备,如果还不行,那么试试 adb kill-server 与 adb start-server.
最后,我们打开eclipse,查看DDMS,如果发现你的设备正确被识别,那么基本上你在调试的时候设备选择器会列出你的设备.
如果设备选择器依旧没有列出,那么你可以尝试拖动选择器上的分隔栏,然后你的设备会出现,是不是很神奇?

仿余额宝收益图实现

问题描述

最近的android客户端中需要实现类似余额宝中的折线收益图,乍一看似乎比较简单,但还是有不少细节需要解决,所以我们还是选择了Android-GraphView做为基础来进行改造.对于基本的折线功能,Android-GraphView已经能满足,但对于折线粗细,x轴等距分布以及最后一个记录的标记提示,以及空心小圆点都需要处理,如图显示.UI图例
阅读全文…

emoji表情过滤

问题描述

最近在对线上排错过程中发现很多入库时产生的错误日志,表现形态如下

在查阅资料后发现这其实是一种emoji表情符号,普遍存在iOS与android系统中,而这种特殊字符合作用的Unicode 6标准来统一,采用4个bytes来存储一个emoji表情,而将这种表情不处理直接存储到MySQL5.5以下的版本会报错,当然想要MySQL存储这种字符也不困难,只需要修改数据库字符集为utf8mb4即可,但数据回传给网页或者移动客户端时则需要做兼容处理,所以我们暂时忽略这种需求,直接将其过滤掉.
阅读全文…

第 1 页,共 4 页1234