杜龙少(sdvdxl)

杜龙少(sdvdxl)

知识的积累,思想的火花

性能优化思路
背景开始在性能优化上,没有捷径可走。如果经验丰富,可能会比较快的排查出问题所在,并进行优化,但是这也是建立在其丰富的见识之上,从而可以快速 怀疑-尝试-解决 问题。##
使用autobahn-testsuite测试websocket兼容性
背景这段时间在线上环境的日志中出现了如下错误日志:。关于这个异常的分析和解决参考netty websocket extension negotiated为了复现线上的问题,本地启动了对应的服务,然后使用 golang 编写了一个简单的客户端,示例如下:123456789101112131415161718192021222324package mainimport ( "fmt" "github.com/gorilla/websocket" "github.com/sdvdxl/go-tools/errors" "io/ioutil" "net/url")f...
netty websocket extension negotiated
netty websocket extension negotiated这段时间在线上环境的日志中出现了如下错误日志:。日志所在模块是使用 netty 写的websocket服务,具体关键配置代码如下:其中 1 是 netty 的 websocket 配置,2 则是自己的业务处理逻辑,我们只需要关心 1 即可。未完,待补充
CentOS7 进入单用户模式
CentOS7 进入单用户模式在出现启动项选择菜单的时候,移动到要启动的项目上,按 e,如图所示进入启动项配置页面,按照下图进行修改等待初始化信息完成后,就可以操作了操作完成后,执行 exec /sbin/init 进入普通用户模式完整示例
思想的火花
奖励和惩罚人都是有惰性的,需要激励而不是惩罚。激励就如同在柴火上加油,越燃越旺;惩罚就像是在柴火上泼水,燃不起来甚至熄灭。批判和努力有的人在被批判中选择了奋力前行,而有的人却选择了继续懒惰和不思进取。
consul初识
consul 简介consul 是一个支持多数据中心,加密数据交换,KV存储,健康检查的服务发现组件。官方对比了其他类似的组件,比如知名的ZooKeeper 、etcd、Eureka甚至是刚刚推出不久的Istio。总的来讲consul有如下优势:支持多数据中心强一致性支持kv存储支持健康检查(可以通过自定义脚本)支持多节点(raft选举)支持http(s)方式注册发现服务支持DNS方式发现服务并提供负载均衡(高级用法)支持外部服务注册测试部署容易(仅一个2进制文件 go 编写,支持跨平台),同时支持server和client模式,还支持开发(dev)模式当然其缺点也是有的,当前我认为的...
自动测试工具Gauge
Gauge 是一款轻量级、跨平台自动化测试工具集。规则文件语法可以使用markdown语法编写。另外还可以使用你喜欢的语言来编写业务规则代码比如 go、 java、ruby等语言。Gauge还提供了输出插件,可以将执行结果导出为html或者xml,甚至flash,方便查看。Quick Start有小伙伴不喜欢翻译官方文档的内容,让我开门见山,直接实战。那我们直接按照步骤来创建一个 JAVA 版的测试项目。前提是已经安装好了 gauge ,html-report 和 JAVA 插件,如果需要安装帮助,请参考下面的安装步骤或者直接参考官网的安装文档。创建项目命令行执行 gauge init ...
RESTFul API 错误的设计
不管是WEB还是移动端,如果需要调用Http接口,那么不可避免要处理各种错误,包括客户端参数完整性校验,类型校验,系统错误等。如果一个设计规范的接口错误返回值,不但可以规范调用方统一处理方式,给出更合理的提示,而且后端也有着接口返回规范的作用。这里讨论的其实并不单纯是返回的错误设计,也包括业务上的错误设计。接口返回设计接口返回需要有http status,错误说明,并且要提供一个完整的错误列表,可以通过简单的错误说明或者错误代码查阅到详细的错误原因。简要错误说明可以只包含简短的文字描述,可以包含错误代码。如果说哪种方式更为合理,我更倾向于错误代码+简要错误说明。如果只有简要错误说明,这个...
安装Hbase分布式集群
以下操作都是在hadoop这个用户下下载最新版hbase,放到/home/hadoop目录下,解压,生成目录 hbase-1.2.4下载zookeeper,放到 /home/hadoop/zookeeper-3.4.9, 解压生成 zookeeper-3.4.9 目录编辑conf下hbase-site.xml123456789101112131415161718 <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9...