摘要: 1 为什么要拆分? 先看一段对话。 从上面对话可以看出拆分的理由: 1) 应用间耦合严重。系统内各个应用之间不通,同样一个功能在各个应用中都有实现,后果就是改一处功能,需要同时改系统中的所有应用。这种情况多存在于历史较长的系统,因各种原因,系统内的各个应用都形成了自己的业务小闭环; 2) 业务扩展性 阅读全文
posted @ 2016-12-18 19:41 zhanlijun 阅读(10760) 评论(6) 推荐(19) 编辑
摘要: 线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统的分析问题,本文将从死锁检测、索引 阅读全文
posted @ 2016-02-05 16:30 zhanlijun 阅读(67030) 评论(18) 推荐(21) 编辑
摘要: 你应该知道的RPC原理 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团... 阅读全文
posted @ 2015-10-03 19:13 zhanlijun 阅读(74632) 评论(33) 推荐(49) 编辑
摘要: 对每一个程序员而言,故障都是悬在头上的达摩克利斯之剑,都唯恐避之不及,如何避免故障是每一个程序员都在苦苦追寻希望解决的问题。对于这一问题,大家都可以从需求分析、架构设计 、代码编写、测试、code review、上线、线上服务运维等各个视角给出自己的答案。本人结合自己两年有限的互联网后端工作经验,从 阅读全文
posted @ 2015-08-27 22:14 zhanlijun 阅读(11477) 评论(11) 推荐(14) 编辑
摘要: http://www.cnblogs.com/LBSer/p/4715395.html 前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 上述场... 阅读全文
posted @ 2015-08-09 16:47 zhanlijun 阅读(34666) 评论(45) 推荐(40) 编辑
摘要: 转载请引用:一个故事讲清楚NIO 假设某银行只有10个职员。该银行的业务流程分为以下4个步骤:1) 顾客填申请表(5分钟);2) 职员审核(1分钟);3) 职员叫保安去金库取钱(3分钟);4) 职员打印票据,并将钱和票据返回给顾客(1分钟)。 我们看看银行不同的工作方式对其工作效率到底有何影响。... 阅读全文
posted @ 2015-07-05 18:15 zhanlijun 阅读(18312) 评论(17) 推荐(29) 编辑
摘要: http://www.cnblogs.com/LBSer/p/4612031.html1 背景 如下图所示,1、2、3这三个点是汽车的GPS定位结果,尽管汽车是在道路上,但定位结果与道路存在偏差。地图匹配(Map Matching)是指将行车轨迹的经纬度采样序列与数字地图路网匹配的过程,其本质上... 阅读全文
posted @ 2015-06-30 22:48 zhanlijun 阅读(18693) 评论(143) 推荐(19) 编辑
摘要: http://www.cnblogs.com/LBSer/p/4605904.html Kmeans算法是一种非监督聚类算法,由于原理简单而在业界被广泛使用,一般在实践中遇到聚类问题往往会优先使用Kmeans尝试一把看看结果。本人在工作中对Kmeans有过多次实践,进行过用户行为聚类(MapR... 阅读全文
posted @ 2015-06-28 18:26 zhanlijun 阅读(5847) 评论(14) 推荐(3) 编辑
摘要: 大数据集群计算利器之MPI/OpenMP---以连通域标记算法并行化为例1 背景 图像连通域标记算法是从一幅栅格图像(通常为二值图像)中,将互相邻接(4邻接或8邻接)的具有非背景值的像素集合提取出来,为不同的连通域填入数字标记,并且统计连通域的数目。通过对栅格图像中进行连通域标记,可用于静态地分... 阅读全文
posted @ 2015-06-27 21:50 zhanlijun 阅读(8280) 评论(6) 推荐(2) 编辑
摘要: 转载请引用:GPU---并行计算利器源于阿里巴巴CCO《猿来如此》分享1GPU是什么 如图1所示,这台PC机与普通PC机不同的是这里插了7张显卡,左下角是显卡,在中间的就是GPU芯片。显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计... 阅读全文
posted @ 2015-06-22 08:10 zhanlijun 阅读(17703) 评论(0) 推荐(6) 编辑
摘要: http://www.cnblogs.com/LBSer/p/4507829.html一、什么是地址反解析 我们都知道手机定位服务,其本质是汇总各种信号得出一个经纬度坐标(x,y)(具体定位原理可以参考:LBS定位技术、基于朴素贝叶斯的定位算法),然而定位服务并未提供该坐标对应的实体地理信息,比... 阅读全文
posted @ 2015-05-16 14:43 zhanlijun 阅读(3974) 评论(1) 推荐(1) 编辑
摘要: 地理围栏算法解析 http://www.cnblogs.com/LBSer/p/4471742.html 地理围栏(Geo-fencing)是LBS的一种应用,就是用一个虚拟的栅栏围出一个虚拟地理边界,当手机进入、离开某个特定地理区域,或在该区域内活动时,手机可以接收自动通知和警告。如下图所示,假设 阅读全文
posted @ 2015-05-02 11:26 zhanlijun 阅读(34873) 评论(21) 推荐(22) 编辑
摘要: 排序学习实践---ranknet方法http://www.cnblogs.com/LBSer/p/4439542.html1 背景 随着移动互联网的崛起,越来越多的用户开始习惯于从手机完成吃、喝、玩、乐、衣、食、住、行等各个方面的需求。打开手机,点开手淘、美团等APP,商品玲玲满目,而让用户将所有... 阅读全文
posted @ 2015-04-19 17:50 zhanlijun 阅读(10110) 评论(3) 推荐(4) 编辑
摘要: http://www.cnblogs.com/LBSer/p/4068864.html 随着业务快速发展,基于lucene的索引文件zip压缩后也接近了GB量级,而保持索引文件大小为一个可以接受的范围非常有必要,不仅可以提高索引传输、读取速度,还能提高索引cache效率(lucene打开索引文件... 阅读全文
posted @ 2014-11-02 11:23 zhanlijun 阅读(9093) 评论(4) 推荐(5) 编辑
摘要: http://www.cnblogs.com/LBSer/p/4020370.html1 定位背景介绍 一说到定位大家都会想到gps,然而gps定位有首次定位缓慢(具体可以参考之前的博文《LBS定位技术》)、室内不能使用、耗电等缺陷,这些缺陷大大限制了gps的使用。在大多数移动互联网应用例如go... 阅读全文
posted @ 2014-10-12 12:17 zhanlijun 阅读(13884) 评论(3) 推荐(2) 编辑
摘要: http://www.cnblogs.com/LBSer/p/3310455.html引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。 饭饱之后机机开始反思了... 阅读全文
posted @ 2013-09-09 19:03 zhanlijun 阅读(135868) 评论(28) 推荐(45) 编辑
摘要: 《如何用人机协同提高客服效率?阿里巴巴客服助手诞生了》 阿里巴巴经济体每天都在服务着数以亿计的会员,每天会员求助的进线量巨大,尽管机器人的解决能力已经很强大,但是以目前技术人工客服依然无法完全被替代,庞大的阿里人工客服在保障会员体验的任务中仍扮演着十分重要的角色。阿里巴巴新零售技术事业群-CCO技术 阅读全文
posted @ 2019-03-20 12:21 zhanlijun 阅读(1964) 评论(0) 推荐(0) 编辑
摘要: 为什么客服需要调度?阿里集团客户体验事业群(CCO)目前承接了阿里集团以及生态体的客户服务业务,我们的客户通过各个渠道来寻求解决各类问题,每天的进线量巨大,而且经常伴随着突发性进线,比如天猫代金券出了问题,在几分钟内就会造成几千通热线或在线咨询。面对种类繁多、海量、突发的客户问题,我们的服务能力往往难以满足,常常造成用户排队,甚至放弃,自然我们产生了对调度的需求...... 阅读全文
posted @ 2019-02-11 20:34 zhanlijun 阅读(1681) 评论(0) 推荐(0) 编辑
摘要: 1 线程池使用不当 我们的调度系统需要将一堆会员分配给相应的人员来处理,流程如以下伪代码所示:public void dispatch() { while (true) { List memberList = getUnassignedMemberList();... 阅读全文
posted @ 2015-12-19 21:08 zhanlijun 阅读(5406) 评论(11) 推荐(4) 编辑