- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 实现自己的RPC框架的细节思考
对于RPC的原理与解决问题无需多言,在构建了一个初步的思路以后,1.RPC的核心流程服务的发布能够实现动态服务的发布的几种常见模式:1)zookeeper,zookeeper简单易用,服务名使用使用持久化节点,提供服务的机器采用临时节点注册到服务名节点分支下即可实现。可靠行与一致性均超过其他方案,最通用的注册中心,可跨机房部署,存储能力有限。2)cache,memcached与redis的ca
2017-09-17 21:30:43
631
原创 JAVA内存与GC总结
首先列出内存结构静态区permspace `线程共享,存储常量、静态变量、加载的类信息,由参数指定大小metaspace 线程共享,替代permspace,常量信息移动到堆当中,虚拟机维护栈区JAVA栈 线程私有,当前调用栈的上下文、localcar、方法的成员变量等本地方法栈(native) 线程私有,虚拟机或jni提供的本地方法的调用上下文程序计数器 线程私有,存储当前线程
2017-09-16 22:41:01
526
原创 线上异常排查总结
一般来说,一个已经投入运营的大型项目出现问题的可能最多如下几种情况:异常的CPU使用率业务相关 业务高峰或上下游业务方异常的高QPS 定时任务大量的任务并发 消息、请求堆积后恢复时的瞬时流量引起 持久化任务引起未经优化的代码 HASH冲突大量的KEY的hashcode相同,导致单链表过长 锁竞争,代码上下文复杂度低,导致大量线程停留在上锁代码处竞争锁 集合频繁扩容,用map或col
2017-09-16 21:44:34
1283
1
原创 JAVA日志依赖冲突解决总结
日志排查记录一、日志依赖类型日志接口commons-logging apache的日志接口slf4j-api 日志排查记录一、日志依赖类型日志接口commons-logging apache的日志接口,自动搜索应用内的日志解决方案接口slf4j-api 最通用的日志接口,与apache不同的是,slf4j采用桥接器模式,可以又用户
2017-09-16 20:04:59
3696
原创 C++11 bind与function使用备忘
原有方法 struct TEST { void trace() { cout << "TRACE" << endl; } }; void (TEST::*func)() = &TEST::trace; TEST t; (t.*func)(); ((&t)->*func)();用法1: struct TEST { void trace()
2016-12-01 14:49:22
484
原创 AS3的用户代码执行顺序
AS3的用户代码均在一个线程中处理。这也就造成了除了系统监听和IO操作之外,其他均由一个线程来处理,这个线程就是AS3的主线程。它由两个主要阶段USER_CODE RENDER其中用户代码又分为以下阶段EXIT_FRAME USER_IO SYSTEMIO ENTER_FRAME TIMER对于IO的事件,虚拟机会将渲染过程中
2016-11-19 23:23:38
707
原创 Libevent使用boost多线程库
为了使项目跨平台,那么boost库作为解决平台差异化就必不可少。尤其是在使用了boost的并发相关库,可以做到完美的多平台编译。但是如果在网络方面使用libevent这种更加专业的库作为网络底层,就需要一些特殊配置来让libevent支持boost的并发库。1.提供回调函数让libevent使用boost的锁static void* evthread_boost_lock_alloc(
2016-11-19 22:47:59
1100
原创 MYSQL的一些总结
mysql有一个很重要的配置参数 wait_timeout 它代表着连接长时间空闲的的情况下如何管理当你的程序出现数据库连接问题的时候,第一时间要检查wait_timeout。它的默认值是28800,即等待8小时后关闭。原本此值是一个非常重要数据,必须谨慎配置。但是网上经常有人建议配置很高来解决问题,其实这是一个坑,过高的配置在遇到程序退出时(或者业务频繁启动关闭),连接无法
2016-07-20 18:38:34
3037
原创 Nginx反向代理基本配置
1.下载安装nginx yum install nginx2.配置nginx vi /etc/nginx/nginx.conf 配置详解 user nginx; worker_processes 1; //工作线程,即接收消息的线程数 一般情况下 可以使用auto 即cpu核心数 error_lo
2016-03-15 12:23:50
682
转载 SSH登录时开启密码登录模式
修改/etc/ssh/sshd_config文件PasswordAuthentication no - 》 PasswordAuthentication yes重启ssh服务即可:service sshd restart
2016-03-14 17:55:09
4786
原创 让SSH自动帮你查找上次输入的命令
通过 cat 命令在用户根路径下创建一个 .inputrc 文件并添加以下代码# for searh input history"\e[A": history-search-backward"\e[B": history-search-forward"\C-p": history-search-backward"\C-n": history-search-forward
2016-03-14 16:34:07
1651
原创 YUM 安装并配置MYSQL
1.首先在YUM中查找看是否有mysql的安装包,如果没有 则去mysql官网下载一个 rpm 文件,使用 rpm *.rpm 来导入。 如果是yum中有mysql的安装包 则可以见到 MySQL-server.x86_64 : MySQL: a very fast and reliable SQL database server 只需执行 yum
2016-03-14 16:32:02
562
原创 TOMCAT导入通过第三方证书机构获取的证书
通常,在创建HTTPS的服务器的时候都需要一个网站的SSL证书文件,但是在网上找到的文档基本上都是在介绍怎么自己用keytools创建一个证书,但是这种方法申请的证书根本不会被广大网民的浏览器认证,所以想要创建一个大家都能访问的HTTPS服务,则从一个受信任的机构去申请一个证书。而从认证网站上下载的证书中并不会包括TOMCAT可以使用的jks证书文件,那么必须要先将证书转换为TOMCAT可以使
2015-12-28 17:49:43
13699
原创 判断点是否在一个任意多边形内几种方法
首先,作为任意多边形,想要进行数学计算,都要将其分解为简单的三角形,且多边形分为凸多边形和凹多边形,首先要区分这两种多边形。否则,在连线过程中如果是凹多边形则会连接到多边形以外的区域。首先我们不考虑凹多边形。1.投射算法: 假如,我们这个点位于多边形内,这个点与多边形定点组成的全部三角形的mian'ji
2015-12-11 18:46:33
6825
转载 修改Jenkins启动衍生进程的生命周期
先介绍下场景:在Jenkins中新建了一个Job,假设你在一些列Build Step之前/之后,启动了一个进程,打个比方说启动一个Jboss进程。等到Build完成,你去Console Output中查看显示启动成功,甚至PID也有了。但是当你去后台查看的时候,发现其实这个进程根本不存在,并没有启动成功。不过如果你使用的是较早的Hudson版本(Ver 1.136),并且是直接在页面中的B
2015-01-22 13:49:36
4694
原创 Starling移动开发相关问题及解决方案
1.内存问题 一个空的AS3项目,运行时内存也有20M左右,而随着内容增加 ,内存占用会疯一般上涨。这个问题至今也没有找到一个好的解决方法,只能多注意一下代码中引用的问题,及时释放引用和监听器。不过在概要分析中曾发现,程序运行过一段时间后,即便销毁了所以textfiled内存中出现了大量的starling.text.TextFiled对象,这估计跟starling的texture
2014-04-15 16:46:51
733
原创 Android蓝牙相关开发
提示:本文主要讲解在Android开发蓝牙相关功能,并将代码打包成ANE,移植到AIR中去。适用于Android与AIR蓝牙开发。 对于Android上开发蓝牙,牵扯知识比较多,包括了线程、IO、SOCKET、等。首先创建一个Android工程,加入蓝牙相关权限: 而对于AIR开发需要将此权限配置放入****-app.xml中。
2014-04-08 11:17:40
1027
原创 AIR移动平台打开图片文件
在android中选择一个图片文件,如果使用File 和 FileReference ,你将会看到一个全部由你FileFilter过滤的文件列表,非常的蛋疼,而adobe为我们准备了CameraRoll来访问系统图片管理工具来选择你想要的图片。 var cameraRoll:CameraRoll = new CameraRoll(); cameraRoll.addEvent
2014-04-03 10:52:48
759
原创 NDK配置总结
1 . 安装cygwin、NDK 配置NDK环境变量: NDK -> /cygdrive/ *盘符 / NDK目录2. eclipse安装CDT,并且在首选项--android-NDK里配置路径3. 新建项目 在JAVA类中写入 native 空方法4. 打开cmd ,切刀src文件夹 用javac + 类包名 (com.*.*) 来生成头文件 项目上新
2014-03-14 16:11:51
657
原创 AS3中将TUIO协议转换到传统触摸事件
TUIO是一个用途广泛,支持厂商众多的多点触摸协议。 其编码采用XML抽象描述,所以任何支持XML的语言都可以使用TUIO协议的触摸设备。另外,TUIO不受windows触摸点上限限制,即设备支持多少个点,你就能使用多少个。 现在最新的TUIO协议版本是2.0 , 但是仍然没有普及,现有设备还是以1.0为默认支持。 希望在设备中使用TUIO,必须要与TUIO服务建立一
2014-01-21 13:53:28
4706
1
原创 AS3二叉树排序法排序
从别人博客上找到一篇关于as3快速排序的代码,使用后发现在有大量相同数据的情况下,排序不可靠,容易出现堆栈溢出的现象, 突然记起看过一个C的二叉树排序法,现改成AS3版本并加以注释。全部代码如下private function mysort(array:Vector.,left:int,right:int):void{ var tl:int = left;v
2014-01-21 11:08:23
1484
原创 AS3自定义注解的声明与使用
JAVA注解是一个非常有用的机制,在不改变类型代码的情况下就可以轻松为指定的字段增加注解从而实现注入等操作。其实在AS3中也存在这种机制,而且相比JAVA,使用上更为简单。 想要使用注解,首先需要了解下AS3的反射,网络上相关文章大把,这里不再多做陈,仅仅列举出一些方法。 getQualifiedClassName(value:*) ; 获得某个实例或者类对象
2014-01-16 10:35:57
975
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人