02 2017 档案
摘要:近两年在负责公司技术人员晋升相关的工作,所以有了一些思考。去年写了一篇《程序员的成长阶梯和级别定义》定义了程序员的晋升之路,但其中有一点实际并没有想的特别清晰,那就是关于技术晋升级别的评定。评定是一个非常主观的过程,正因为其主观性才带来了一些困惑,关于这些困惑,最近获得了一些新的启发,所以想写下来探
阅读全文
摘要:参考: https://my.oschina.net/thinwonton/blog/1622905 http://www.open-open.com/lib/view/open1426940722554.html https://github.com/Netflix/eureka/wiki/Con
阅读全文
摘要:早上一来,例行性的看主要环境的运行情况,发现有个环境中有如下异常: 17-02-28 08:13:37.368 ERROR pool-2-thread-65 com.ld.net.spider.SpiderClient.call(SpiderClient.java:75): java.lang.re
阅读全文
摘要:A TLS termination proxy (or SSL termination proxy) is a proxy server that is used by an institution to handle incoming TLS connections, decrypting the
阅读全文
摘要:RabbitMQ的mirror queue(镜像队列)机制是最简单的队列HA方案,它通过在cluster的基础上增加ha-mode、ha-param等policy选项,可以根据 需求将cluster中的队列镜像到多个节点上,从而实现高可用,消除cluster模式中队列内容单点带来的风险。 在使用镜像
阅读全文
摘要:今天下午,我们的一个开发来找我,说线上有个环境报了"Warning(1265)Data truncated for column 'column_name' at row 1",定义的字段长度decimal(32,4),实际的小数点有超过4位的,但是大部分的账户登录查询的时候都没有问题,已知的就一个
阅读全文
摘要:0、首先按照http://www.cnblogs.com/zhjh256/p/5922562.html在至少两个节点安装好(不建议单机,没什么意义) 1、先了解rabbitmq集群架构,http://www.cnblogs.com/zhjh256/p/6368288.html 2、vi /etc/h
阅读全文
摘要:来源:阿里云 作者:林昊(花名毕玄),阿里巴巴技术保障部研究员,曾任淘宝网平台架构部架构师。个人的研究方向主要为Java模块化、动态化系统的构建,以及高性能大型分布式Java系统构建,主导阿里数据中心异地多活项目建设。 架构师,这个title就和总监之类的title一样,已经彻底被用烂了。但在一个软
阅读全文
摘要:rocketmq 4.3开始支持事务https://www.cnblogs.com/hzmark/p/rocket_txn.html 参考:rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较 redis vs rabbitmq 可靠消费 Redis:没有相应的机制保证消息
阅读全文
摘要:周五下午的时候升级了一个环境,跑了批处理sh升级脚本后,启动时报下列错误: 配置文件、/etc/hosts、防火墙这些都仔细检查了,就是看不出有任何问题,关键连接到另外一个MQ时就没有问题,着实折腾了半个多小时在反复回撤验证。 于是不得不一个个对比,瞬间会想起这套环境的配置和其他机器都不一样,其他环
阅读全文
摘要:在2016敏捷大会上,Esther Derby 探讨了改变的六条规则,以尊重大家、承认改变的复杂度,以及激励创新的方式去指导帮助培养改变的氛围。 Derby首先说道,在她的职业生涯里,关注于为追求成功所进行的工作环境的改进,以便人们“从事伟大的工作,打造伟大的产品,并真实享受他们的工作”。这需要改变
阅读全文
摘要:Vlad Mihalcea是一位软件架构师,热衷于软件集成、高可伸缩以及并发编程等主题,他感兴趣的领域主要有Java、数据库、事务、NoSQL、OOP、重构与模式以及敏捷和Scrum等。近日Vlad撰写了一篇博文,谈到了团队中优秀的领导与差劲的领导之间的区别、他们在面对同一问题时的不同反应、对团队造
阅读全文
摘要:这是#非项目系列文件中的最后一篇;研究了组织如何以非项目的组织形式来进行持续交付。如果你还没有准备好,请先阅读一下该系列的前两篇文件:第一篇和第二篇。这一篇文章依赖于之前讨论的概念和基于工作量和价值来可视化和管理不断改变的流程的方法。我们本文将改变一下语境——产出物。详细讨论如何定义产出物、它们相互
阅读全文
摘要:我们说真正掌握和理解一个定义或者概念或者技术点最好的方式就是能够直观的展现它是什么样的,或者像什么样的,关于cache和buffer,刚刚看到一个极为显而易见的类比解释。 buffer就像弹簧,用于减缓压力,比如写io,有buffer,对磁盘压力就小很多。 cache就像备胎,万一出游时爆胎了,随时
阅读全文
摘要:1882年,法国人林格曼做了一个“拉绳子”试验,发现团队合作时,大家的表现比单独行动时差了近四分之一,这个现象被称为“林格曼效应”。而在现代职场中,如果团队中个体的贡献无法被衡量,那么这一效应尤为明显。 合格的求职者必须是一个好的团队成员,能无缝融入公司充满活力的团队。这是一个我们都很熟悉的说法,如
阅读全文
摘要:这个问题源自国外网友在Quora上的提问。亚马逊 AmazonSmile 的总经理 lan McAllister 在 Quora 上对这个的回答,他列举了他初当管理者时犯的错误,或者是看到其他新任的管理者所犯的一些错误,并分享如何去避免这些问题。 下面是我初当管理者时犯的一些错误,或者是看到其他新任
阅读全文
摘要:转注:英文原文写于 2011 年 导读:没有人比Linus Torvalds更了解软件开发项目管理中的酸甜苦辣了。作为Linux的创建者,Torvalds在过去二十年指导了数以千计的开发者共同改进开源操作系统内核。 文章内容如下: Linus Torvalds说,有两件事,世界上大都数人,无论是独立
阅读全文
摘要:非集群下,简单的说:- 如果是excl,则设置durability没有意义,因为不管服务器挂了还是客户端主动/被动断开了,队列都会自动删除。- auto-delete,其实可简单的认为是同理,即使非excl,则无论是服务器挂了还是全部消费者断开了,队列都会删除。集群下:这还真得测试如下:1、A服务器
阅读全文
摘要:RabbitMQ implements AMQP 1.0 via a plugin. However, AMQP 1.0 is a completely different protocol than AMQP 0-9-1 and hence not a suitable replacement f
阅读全文
摘要:虽然可以写个interceptor记录下,但是总归没有log4j来的自然。一段时间不查问题,总是要忘了,记录下: 在mybatis 3.2.*中,可以在log4j中如下配置: log4j.logger.com.ld.net.dimrsk.dao=TRACE,stdoutlog4j.logger.co
阅读全文
摘要:INFO | jvm 1 | 2017/02/23 14:28:43 | at java.lang.Thread.run(Thread.java:745)INFO | jvm 1 | 2017/02/23 14:28:43 | Exception in thread "LDService-Worke
阅读全文
摘要:今天在调整一生成java代码的工具时,要用到在不同语言间互转数据类型的逻辑,原来的代码中根据excel记录的行号来计算,再到另外一个collection中获取,个人想着这也太土鳖了,于是搜了下,在vba中,没有map的概念,也没有原生的dictionary类型,是通过CreateObject("Sc
阅读全文
摘要:有时候,由于各方面原因比如安全原因、系统间隔离,我们需要实现在多个rabbitmq实例或者一个rabbitmq实例的多个vhost间推送消息。在上一版的实现中,公司使用java自行实现了一个类似转发器的功能,其结构为: 内部MQ->java-pusher->外部MQ 其中在java-pusher的配
阅读全文
摘要:注:linux下除了gcc和clang外,其他常用的编译器还包括intel c++编译器,ibm xlc编译器,sunpro编译器。 完整的gcc详解可以参见https://www.cnblogs.com/zhjh256/p/15596130.html。 “-Wall”选项打开所有最常用到的编译警告
阅读全文
摘要:因为项目原因,需要使用到rabbitmq的c客户端库。首先,参见上一篇windows下openssl编译,如果已经使用cmake编译过了,则先delete cache(File-Delete Cache),否则原来的cmake缓存都在了,将仍然会出现原来的错误。 依次点击configire、gene
阅读全文
摘要:昨晚,在编译rabbitmq-c时,使用cmake生成vs项目文件时遇到下列错误: CMake Error at C:/Program Files/CMake/share/cmake-3.6/Modules/FindPackageHandleStandardArgs.cmake:148 (messa
阅读全文
摘要:actor model是1973年就提出的一个分布式并发编程模型,在erlang语言中得到广泛支持和应用。目前Java中也出现了很多支持actor模型的库:akka、killim、jetlang等等,其中akka是使用Scala写的,有scala和java两套使用接口;killim需要对编译出来的c
阅读全文
摘要:今天,将一个环境切换成行情优化后的版本后,发现io等待还是挺高,这还是第一次出现的。其他很多套环境都没有这个问题了,故iotop看了下,基本可以确定为是mysql进程的问题,如下: 但是iotop只能看到进程级别,对于rdbms而言,通常力度并不够,此时需要进一步使用其他工具比如io-profile
阅读全文
摘要:刚在尝试重现一个bug时,好像在killed mysql一段时间之后,io一直很高,如下: iotop了一下,jbd2进程占用大量IO处理,搜索了下,关于jbd2,jbd2是ext4文件系统的一部分。ext4文件系统出现过此bug,bug原理大致是,文件的写和请求会导致其中一个int型的值不断增大,
阅读全文
摘要:不同于在java中,虽然在java中,有些第三方库只是做了桥接的功能,比如slf4j-log4j-api,但是在运行时他们仍然是需要的,所以最多只能说是松耦合做得很好。 但是在c++中,一般我们应用第三方库的时候,是头文件+库(lib/a或so/dll)配对的形式(常用必备的c/c++三方库 htt
阅读全文
摘要:看jstack输出的时候,可以发现很多状态都是TIMED_WAITING(parking),如下所示: "http-bio-8080-exec-16" #70 daemon prio=5 os_prio=0 tid=0x00007f6088027800 nid=0x3a1f waiting on c
阅读全文
摘要:最近在看pthread方面的书,看到条件变量一节的时候,回忆了下java中条件变量的使用方式。 java中条件变量都实现了java.util.concurrent.locks.Condition接口,条件变量的实例化是通过一个Lock对象上调用newCondition()方法来获取的,这样,条件就和
阅读全文
摘要:晚上花几分钟在windows下测了下pthread的用法,出现错误 1 error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用 经网上搜,反正都没解决,其中一个说引入#pragma comment(lib, "pthreadV
阅读全文
摘要:最近面试,提到几个之前没有遇到过的问题(不同的人不同的风格): Q1:如何应对雪崩; http://www.2cto.com/os/201508/433330.html http://www.cnblogs.com/chengJAVA/p/5785850.html 我们自己的中间件实现上采取了客户端
阅读全文
摘要:性能上从低到高如下: OioSocketChannel:传统,阻塞式编程。 NioSocketChannel:select/poll或者epoll,jdk 7之后linux下会自动选择epoll。epoll原理及与select/poll的伸缩性性能测试基准 EpollSocketChannel:ep
阅读全文
摘要:最近一券商那边扫描反馈了下面几个非业务型安全漏洞,要求解决,如下: XSS 自己写个脚本response的时候对特殊字符进行了处理,或者使用OWASP提供的官方包antisamy,https://blog.csdn.net/ru_li/article/details/51334082。 HTML f
阅读全文
摘要:log4j.logger.io.netty=INFO, stdout, spiderlog4j.logger.com.ld.net.spider=INFO, stdout, spider log4j.appender.spider=org.apache.log4j.RollingFileAppend
阅读全文
摘要:介绍 总的来说,rabbitmq使用erlang(Elixir,排名50-60)是erlang的友好版,编译成erlang执行码)语言编写,其架构类似于servlet容器运行servlet应用,底层是erlang VM、然后是erlang节点,上面是应用。如下所示: 每个MQ中运行的应用可通过rab
阅读全文
摘要:同上一篇一样,在jmap -histo中发现MpscChunkedArrayQueue类的实例比较多,javadoc看了下,其原来是出自JC Tools,https://github.com/JCTools/JCTools。 通过官网,我们可以看到,它针对实际的场景对JDK自带的并发队列做了一些特定
阅读全文
摘要:最近在分析一潜在内存泄露问题的时候,jmap出来中有很多的FastThreadLocalThread实例,看了下javadoc,如下: A special variant of ThreadLocal that yields higher access performance when access
阅读全文
摘要:初学cpp,因为之前装linux下各种软件的时候,知道LD_LIBRARY_PATH可以指定动态库的目录。今天在vc集成log4cpp的时候,编译main时报error LNK2019: 无法解析的外部符号,已经在 包含了目标dll的目录,经搜索帖子http://bbs.csdn.net/topic
阅读全文
摘要:对于sqlite,实际中从来没有用过,也几乎没有考虑过其使用场景,更不要说专门去研究它了,今天看最新的数据库流行度排行榜的时候,发现sqlite的长期趋势好像一直在第十位左右徘徊,特地搜索了下其使用场景,下面的应该是比较客观的: 准确地说,SQLite并不应该用来直接和MySQL、Oracle、Po
阅读全文
摘要:在有几个应用中,在启动的时候发现下列警告: The version of the script (3.5.29) doesn't match the version of this Wrapper (3.5.27). This might cause some problems--> Wrapper
阅读全文
摘要:早上,有个应用又挂了,客户端打开时报404,看进程是还在的。倒回第一次异常的地方,可见catalina.out中有如下信息: 08:46:56.646 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] DEBUG o.s.b.f.s.D
阅读全文
摘要:一般在容器比如tomcat/weblogic中运行时,我们都是通过log4j控制日志输出的,因为我们现在很多服务端使用java service wrapper(至于为什么使用jsw,原先是比较排斥使用的,但是当一台服务器上部署10来个应用时,我们无条件的选择了jsw,因为不需要折腾和规划这么多的端口
阅读全文
摘要:晚上,在测试tinyxml的时候,发现其中声明了<?xml version="1.0" standalone="no" ?>,经查,其含义为standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表
阅读全文
摘要:如同linux下通常要求安装特定版本的libstdc++一样,windows下vc++生成的exe发布时的依赖dll问题,可以参见帖子,http://bbs.csdn.net/topics/391052257,这个帖子应该来说已经很清晰的说明了如何分发的问题。 需要注意的是生成的dll/lib是32
阅读全文
摘要:今天早上,java应用中发现too many open files,检查了下使用的连接数发现基本上在两三百左右,mysql打开的文件数也就几百左右,再看所有tcp连接,发现3306的连接有4000多,且状态为time_wait,time_wait发生在tcp连接关闭的阶段如下所示: 到11:30分收
阅读全文
摘要:log4cpp,http://log4cpp.sourceforge.net/,跟log4j一样,不说最重要,绝对是最常用的。 zk 客户端,https://blog.csdn.net/yangzhen92/article/details/53248294 memcached,libmemcache
阅读全文
摘要:早上一运维同事说,一个报盘程序启动的时候报了"ESOURCE_LOCKED - cannot obtain exclusive access to locked queue '2484_0_00163'",因为之前一直不管报盘的事情,后面仔细看了下,这个错误应该不是开发自己加上的,搜了下,是两个不同
阅读全文
摘要:春节放假期间,一直在学习c++,越想越发现c++标准之于gcc/vc/boost等实现相当于jsr规范之于sunjdk/ibmjdk/tomcat/weblogic等实现
阅读全文
摘要:const_cast 用于去掉const属性,把const类型的指针变为非const类型的指针,如:const int *fun(int x,int y){} int *ptr=const_cast<int *>(fun(2.3)) dynamic_cast 该操作符用于运行时检查该转换是否类型安全
阅读全文
摘要:在java中,我们知道除了public和private,protected外,还有默认的包可见性访问级别,虽然如此,很多时候出于早期设计缺陷的原因,我们需要访问一些包或者protected可见性级别的方法,这个时候就比较麻烦了,要是选择和目标服务在相同包中,总看起来很奇怪,如果作为子类继承,则更加奇
阅读全文
摘要:久而久之,发现c/c++的typedef给类型自定义别名的语法糖就保证设计的一致性而言,确实是个相当不错的特性,跟oracle pl/sql的rowtype或type一样,可惜java、mysql均不支持。
阅读全文
摘要:或许是基于一直以来c/c++头文件声明和cXX实现物理上置于独立文件的考虑,c++中的OO在现实中基本上也是按照声明和实现分离的方式进行管理和编译,如下所示: Base.h Base.cpp 分发给客户的时候,我们只要提供Base.h和Base.cpp编译后的so或者a即可。如下: 相较于于java
阅读全文
摘要:c标准中包含了一个sleep用以实现当前线程暂停执行n毫秒,如下所示: 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 在VC中需要带上头文件 include <Windows.h> //没有<unistd.h> Sle
阅读全文
摘要:默认情况下,如果没有明确声明某些函数比如赋值、拷贝函数,c++会自动生成这些函数,通常他们是对成员进行by-value拷贝。如下: 有些时候,赋值、拷贝对象并无什么意义或者不合理,比如对于socket或者thread而言,这种情况下,可以明确通过指定=delete告知编译器不要自动生成它们。如下所示
阅读全文