摘要:
通过ejabberd的日志,整理了下客户端登录流程。 1. 通过TCP连接5222端口的流程: (1) 客户端向服务器发送stream流 (2) 服务器应答stream (3) 服务器发送流特性 (4) 客户端发送tls请求 (5) 服务器回应并开始TLS握手 (6) TLS握手完成后,客户端重新初 阅读全文
摘要:
由于业务原因,需要将过期数据删除,但有一个问题出现了,频繁删除数据之后,会产生很多磁盘碎片,这些碎片如果没有被重复利用, 进而会影响查询性能(表查询时仍然会扫描这部分删除数据的磁盘空间块),随需要处理。 当从MongoDB中删除文档(Documents)或集合(Collections)后,Mongo 阅读全文
摘要:
逻辑存储空间与物理存储空间有差距的主要原因 而上述case里,集合数据先分到一个shard,然后启用分片后,迁移一部分到其他shard,就是一个典型的产生大量存储碎片的例子。存储碎片对服务通常影响不大,但如果因为空间不够用了需要回收,如何去强制的回收这些碎片空间? 数据清理掉重新加入复制集同步数据, 阅读全文
摘要:
查看 Redis 日志发现系统在频繁报错: 在小内存的进程上做一个fork,不需要太多资源,但当这个进程的内存空间以G为单位时,fork就成为一件很恐怖的操作。何况在16G内存的主机上fork 14G内存的进程呢?肯定会报内存无法分配的。更可气的是,越是改动频繁的主机上fork也越频繁,fork操作 阅读全文
摘要:
注意,这里只是给出一个总结,具体性能需要根据实际环境和需要来确定 霸爷指出,新的erlang虚拟机有很多调优启动参数,今后现在这个方面深挖一下。 1. 进程标志设置: 消息和binary内存:erlang:process_flag(min_bin_vheap_size, 1024*1024),减少大 阅读全文
摘要:
有一天看到了朋友圈上发了这么一段话,感慨万千。 中年以后的男人,时常会觉得孤独,因为他一睁开眼睛,周围都是要依靠他的人,却没有他可以依靠的人。 ——张爱玲《半生缘》 想想,90后都是快3张的人了,至于是青年还是中年不好定义,但即使不是中年,也是走在步入中年的路上。 生活从来都是不容易的,如果你觉得容 阅读全文
摘要:
连接池驱动,pooler 在使用中会报错" error_no_members" 分析:可能有以下3个地方对其有影响: 1)member 可能没回收; 2)wait_for_pool 的超时时间太短,可以适当调大; 3)pooler的member数量太小,可以适当调大。 阅读全文
摘要:
1.RSA介绍 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对 其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用, 私钥则为自己所有,供解密之用。解密者拥有私钥,并 阅读全文
摘要:
#centos (安装依赖项) sudo yum -y groupinstall "Development Tools"sudo yum -y install openssl openssl-devel unixODBC unixODBC-devel ncurses ncurses-devel wx 阅读全文
摘要:
1)简单web服务器: 首先go run hello.go之后,打开一个浏览器,输入http://127.0.0.1:9090,你就会在网页上看到web的打印了。 2)带有表单处理的web服务器: 上面给出的只是代码内容,你还需要一个login.html模板文件, 运行go代码之后,试着在浏览器下输 阅读全文
摘要:
1. 概述 当前爆出了Openssl漏洞,会泄露隐私信息,涉及的机器较多,环境迥异,导致修复方案都有所不同。不少服务器使用的Nginx,是静态编译opensssl,直接将openssl编译到nginx里面去了,这就意味着,单纯升级openssl是没有任何效果,Nginx不会加载外部的openssl动 阅读全文
摘要:
升级openssl环境至openssl-1.0.1g 1、查看源版本 [root@zj ~]# openssl version -a OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 [root@zj ~]# openssl version -a OpenSSL 0.9.8 阅读全文
摘要:
1)垃圾回收GC 像 Java 一样,Go 的垃圾回收是全局的,这意味着一旦垃圾回收被触发,所有的 goroutine 都会被暂停,造成一段时间的业务延迟。 Erlang 的垃圾回收是进程级别的,每一个进程都有自己独立的垃圾回收器,一个进程的垃圾回收被触发,不会造成其他进程被挂起。相对来说带来的业务 阅读全文
摘要:
Golang或者Beego,总需要往数据库里写datetime时间戳。 Golang对时间格式支持并不理想。 先看一个例子: 运行结果如下: Format里必须用“2006-01-02 15:04:05"这个时间戳,简单来记的话就是 2006-1-2-3-4-5。否则不行!Golang奇葩点之一。 阅读全文
摘要:
示例如下: 运行结果截屏如下: 看go的time部分源码 Ticker结构 go的time和ticket的调用 或者叫timmer internal和其他语言的开发思路不一样。 其他语言,多是注册回调函数,定时,时间到了调用回调。 go是 通过 chan 的阻塞实现的。 调用的地方,读取chan 定 阅读全文