`
文章列表
2018年3月9日,将博客搬家到csdn
下载和启动实例 1、下载和启动Cassandra,生产环境会使用HBase作为Storage backend,但在开发环境部署HBase比较复杂 http://cassandra.apache.org/download/    下载3.11.2 解压后 sh bin/cassandra -f, 默认绑定IP:127.0.0.1  PORT:9042 启动thrift,sh ./bin/nodetool enablethrift    默认绑定IP:127.0.0.1  PORT:9160 2、下载和启动ES JanusGraph的发布包自带ES,sh /elasticsearch/bi ...
梳理了一份设计文档的check list,提供设计时的一些参考。针对项目的大小,分为4个维度,系统级别,单项目级别,模块级别和服务级别。
<spring.version>4.0.6.RELEASE</spring.version> 这一部分主要记录bean定义的解析和加载,包括注解方式定义的bean。 【UML】 首先以uml展示ioc过程的全貌,为避免干扰,每个类仅表述了核心的属性,方法和方法内的关键代码。 refresh()方法标橙色,是外部调用的入口,如ContextLoaderListener。 标红色的是一些关键属性和实现。 uml连接:http://dl2.iteye.com/upload/attachment/0115/8766/bedf264c-a530-33b3-924a-2b1799 ...
最近有个项目场景,多垂类支持,大体业务流程相同,只是一些业务规则的校验参数不同。解决思路是将业务参数作为类的属性,然后创建垂类数量个实例,去处理不同垂类的业务。 看了spring ioc部分的代码,个人感觉在spring完成bean创建的过程后,做一个类实现ApplicationContextAware接口,然后克隆多个需要的BeanDefinition,附不同的业务参数属性值的方式比较讨巧。新增加的BeanDefinition会在getBean的过程中,由spring创建。 下面分两部分介绍: 1、动态创建bean的代码实现 2、spring的ioc源码解读,这部分放到另外一篇博客http ...
项目中用到ElasticSearch 1.4.2,但多个项目生产环境使用的jdk版本不一致,大部分都是1.6。 折中方案使用restful api,但query json写起来比较麻烦,想用java api的方式写代码,最终生成restful json。 看了几个开源项目,如jest,还是需要RD自己写json,或者用ES提供的类SearchSourceBuilder。 比较蛋疼的是,ElasticSearch没有对功能进行拆包,还是跨不过jdk版本的问题。 无奈只好从ES的代码中拆分出这部分代码,并且支持jdk1.6编译执行。 代码已经拆分出来了,但没有精细化的整理,还是存在一些不必要的检索 ...
转自:http://blog.csdn.net/cnweike/article/details/33736429 基础概念     Elasticsearch有几个核心概念。从一开始理解这些概念会对整个学习过程有莫大的帮助。     接近实时(NRT)         Elasticsearch是一个接近实时的搜索平台。这意 ...
定义2个Filter,filter1过滤.htm和.json结尾的url,filter2过滤.htm和.xml结尾的url。 1、init()方法执行顺序:先执行filter2的init()方法,后执行filter1的init()方法。 因为Filter是责任链模式的,上一级对象包含下一级对象的指针,所以创建顺序在web.xml中是从后往前的。 2、同一mapping url的doFilter()执行顺序,如*.htm:先执行filter1的doFilter()方法,后执行filter2的doFilter()方法,会进行链式调用。在web.xml中,是按照从前往后的顺序执行。 3、当全部Filt ...
结论: 1、 200w数据,合理使用索引的情况下,单个stationId下4w数据。mongodb查询和排序的性能理想,无正则时client可以在600ms+完成查询,qps300+。有正则时client可以在1300ms+完成查询,qps140+。 2、 Mongodb的count性能比较差,非并发情况下client可以在330ms完成查询,在并发情况下则需要1-3s。可以考虑估算总数的方法,http://blog.sina.com.cn/s/blog_56545fd30101442b.html 测试环境:mongodb使用 replica set,1主2从,96G内存,版本2.6.5 Me ...
记录一些常用的web服务排查命令,会持续更新。 1、检查链接可用性及时间消耗 【命令】 curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download} "http://www.taobao.com" 【结果】 0.008::0.039::0.076::0.140::306729.000 2、统计服务器链接状态 【命令】 netstat -n | awk '/^tcp/ {++S[$NF]} END {f ...
使用JdbcTemplate做随机数量的in查询时,拼sql有一种较简单的写法。 利用google的CharMatcher和Strings工具类。 public List<TypePriceInfo> listTypePriceByProductIds(List<Long> productIds) { String sqlInParam = CharMatcher.is(',').trimFrom(Strings.repeat("?,", productIds.size())); String sql ...
今天遇到个挺有意思的问题。 画面上有图片或其他资源,指向和画面同域名,但不同端口号。 这时会产生一个session失效的问题。 因为资源的端口号和画面的端口号不同,服务器会认为是一个新的请求,下发jsessionid。 但因为是同域名,会导致jsessionid覆盖,session就失效了。 画面上的资源是通过后台配置的,不是画面的source。 因此在检查beta环境容器,source,远程debug之后,才发现这个问题。 是个小问题,但耽误了几个小时的时间,记录一下。
感觉工作和武功一样,需要从武林秘籍中学习招式,然后结合实际不断的感悟。 看过些书,结合工作之后,有了一些自己的感悟。 记录下来,一来整理思路,二来免得自己忘了。 仅代表在当前环境下,当前这个时期的想法,以后可能会改变。 1、技术壁垒 程序员对技术的高追求是理所当然的,但有时候这种追求和技术的专业性,也可能产生技术壁垒。 例如:以技术的专业性驳斥产品需求,很天真的认为自己是技术专家,可以决定产品的方向; 烦感功能的琐碎变更,实际这些小的变化,能够很好地提升用户体验。 技术需要依托于产品才能产生价值,程序员也需要产品的思维,以提升产品价值为目标,决定技术方案。 产品成功了,团队才能被认可,团队被认 ...
公司推行SCRUM有一段时间了,已有多个项目开始采用这种开发模式。 但每个团队都有自己的特色,报告模板也都不统一。 无法从目前的报告中,获取希望了解的内容,也发现不了问题。 遂结合PMP和SCRUM的概念,设计了一个版本报告模板,从数据上帮助团队进行改进。 overall.xlsm为EXCEL宏存放文件,和模板放在同一个目录即可。 打开模板后,需要允许宏运行,用以趋势数据自动统计。 SCRUM版本总结模板优化内容: 修改编号 日期 修改人 版本号 修改内容 1 2012.12.4 马振 V1.0 初始做成 2 2013.1.10 马振 V1.1 1、版本号规则变更,采用系统首字母+1001版 ...
公司对充值类项目进行重构,之前选择的是resin3.0.25的容器。 之前已经做过几个项目的重构了,选择了resin3.1.10的版本,遂建议充值项目选用此版本。 以版本越高,性能越好,越稳定为理由进行游说,遭到充值小同学的拒绝。期望提供具体优化点和评估报告。 查阅了resin的官网,摘选了一些resin3.1.10在web app容器方面的提升,如下:(挑了些重点,分属于各个小版本的优化) • session: boundary issues over 4M session (rep by Chris Pratt) • server: stack trace incorrectly disp ...
Global site tag (gtag.js) - Google Analytics