自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (13)
  • 收藏
  • 关注

原创 推荐系统(工程方向)-统一召回平台

一、背景在推荐系统中,召回是非常重要的一步,尽可能召回所有相关的结果,适当召回具有探索意义的结果,是决定推荐效果上限的一环。召回可以模块化:1、u2i,k2i,i2i,v2i(统称x2i)2、index召回(基于倒排,lucene、solr、es、redis等实现)3、新热召回(排行榜)...我们其实在https://zhuanlan.zhihu.com/p/355510794已经做了这些模块化,...

2022-01-24 22:34:18 1859

原创 记:捕获ERROR

一、背景目前工作中遇到2个情况因为捕获的是Exception而不是Error,导致程序无法正常运行。1、使用google的ortools库(jni):因为和操作系统相关,需要判断运行环境是否兼容,如果不兼容,则不使用ortools库,而使用常规java库处理。判断的代码会抛出Error,需要catch Throwable。2、使用自定义类加载器,做插件,抛出java.Lang.LinkageErr...

2022-01-20 17:14:21 244

原创 捕获ERROR

一、背景目前工作中遇到2个情况因为捕获的是Exception而不是Error,导致程序无法正常运行。1、使用google的ortools库(jni):因为和操作系统相关,需要判断运行环境是否兼容,如果不兼容,则不使用ortools库,而使用常规java库处理。判断的代码会抛出Error,需要catch Throwable。2、使用自定义类加载器,做插件,抛出java.Lang.LinkageErr...

2021-09-23 23:30:31 609

原创 记:zookeeper集群抖动造成solrcloud集群故障

一、故障描述2020-04-18 23:10solrcloud集群报警,大量节点线程数>10000,读写慢请求非常多,搜索业务接口大量超时。二、紧急处理&故障追踪紧急处理:线程数居高不下,判断无法自愈,果断采取紧急节点重启方案,快速恢复服务。故障追踪:1、猜测是读写请求慢,导致线程池大量创建线程,第一步需要jstack栈数据分析4000+线程节点jstack解析图solr使用jett...

2021-05-12 13:51:00 435 2

原创 记:大量请求引起hbase regionserver故障

一、背景公司一个比较火的app量级上来了,需要接入推荐和搜索功能,为了快速提供支持,我们把用户、物品的特征直接用hbase存储,而没有接入到基于redis的特征平台(来不及改造)。上线一段时间之后,hbase突然报了慢请求(>400ms),我们介入排查...涉及到3张表,A,B,C,只有A表数据量大小超过2G,B、C 2张表只有几M而已。情景:1次用户请求查询,A表1次get,B、C表1次2...

2021-04-04 09:48:03 398 1

原创 将博客搬至CSDN

博客只为梳理知识点、分享,CSDN是以前积累的点点滴滴,新旧承接,后续还是知乎为主。

2021-03-29 19:32:33 90

原创 读书笔记-云原生应用初探

一、源起最早在大学时代使用VMware安装Ubuntu学习Linux,12年实习使用kvm虚拟机搭建测试环境,14-15年那会儿docker有点火,开始基于docker搭建测试环境。使用体验是VMware安装挺复杂的,启动Ubuntu也很慢,操作很卡(可能那会儿电脑也差)。而docker使用体验非常好,mysql,redis,zookeeper,memcahce等这些开发环境能够快速搭建,使用do...

2021-03-29 18:40:00 158

原创 记:一次young gc优化记录

优化结果平均暂停时间137.7ms->69ms,最大暂停时间690.2ms->480ms【效果提升】平均暂停间隔35.9s->19.5s【效果降低】注:gc优化追求最小暂停时间&最大暂停间隔时间(比如ygc 10s以上触发一次,每次50ms以下就还可以),两者在不优化代码情况下,呈负相关。此次优化不涉及代码优化。服务gc现状分配内存:12Ggc算法:G1gc情况:无Ful...

2021-03-27 11:08:04 425

原创 记:arthas watch排查线上接口获取不到数据

一、现象从搜索引擎召回直播间id list后,去hbase批量查询id属性字段,未返回结果。(同事下班路上,帮忙排查)二、思考调用者和提供者都未打印详细请求参数,是参数问题?内部处理逻辑问题?鉴于hbase通用查询服务已运行非常久,大概率是请求参数有问题。三、解决服务调用者watchwatch xxx.hbase.service.api.HBaseQueryService batchQuery "...

2021-03-27 11:07:07 727

原创 hbase kerberos认证无法自动续约问题

一、背景服务运行一段时间后(大概7天),hbase写入和读取报错,错误描述为:重试次数耗尽,原因是因为正在重新认证且失败了,不能接受请求。之前同事是使用crontab定时重启临时解决,自己刚好有空帮忙看看。org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=2, exceptions:Tu...

2021-03-23 15:40:30 1982

原创 arthas profiler诊断服务性能

一、背景A服务上线一个功能后,从cat监控发现前后大概增加50ms耗时。二、处理原想使用skywalking的profiler功能,可惜A服务只接了cat,没有接skywalking,否者还可以看到调用其他服务接口的内部栈耗时,于是使用了arthas的profiler。在预发使用jmeter大约压到100QPS,在压测期间,运行java -jar arthas-boot.jarprofiler ...

2021-03-16 11:35:41 690

原创 java自定义插件实现

一、背景算法RD以前用python实现特征预处理,改完代码重新运行就生效了,现在改成java(为了借助java更强大生态,同时融入公司java体系),每次修改,都要打包、上线,迭代效率特别低。二、需求分析python编程,不需要显式编译,现改现运行,python解释器会先把源代码编译成.pyc,然后解释执行,两步一起做了,用户无感知。而java源代码需要先在一个地方编译成.class字节码,然后丢...

2021-03-13 22:01:57 1262

原创 机器学习平台实践

一、背景期望通过强大易用的功能,来辅助算法研发人员,帮助大家脱离繁琐的工程化开发,把有限的精力聚焦于算法策略的迭代上面。通过一站式打通特征工程、模型训练、在线预测&上线等重要步骤,避免重复造轮子,以及解决特征穿越等问题。二、调研我们参考多个大公司的机器学习平台的实践经验,几乎都是拖拽+组件构成DAG图执行的方式来做。以下是几个重要的调研地址:阿里PAI腾讯TI-ONE美团一站式机器学习平台...

2021-03-12 11:15:23 310

原创 搜索平台实践

一、背景此搜索平台主要解决以下场景问题:大数据下的模糊检索、范围查询、聚合分析,mysql实现比较吃力。半结构化数据的存取(比如日志),mysql无法做到nosql动态扩展字段。数仓、数分统计的hive表,通过搜索平台高效快速接入并同步数据,对外提供服务。(搜索平台也是数据中台的在线查询服务)推荐系统的推荐池存取,k2i(基于关键字召回item)引擎实现等。app搜索(文本召回,分词器定制等)。二...

2021-03-11 13:26:38 89

原创 推荐系统(工程方向)-abtest平台

一、背景 早期我们进行ab实验,用的是单层实验,即按用户userId/deviceId进行hash取模,打在[0-99]区间,然后配置A:[0-49],B:[50-99]。单层实验有如下问题:流量饥饿,如果流量只有2W,需要做20组实验,每组1000个流量太少,导致置信区间太宽,实验结果不可信。流量偏置,假设上游的实验把所有的年轻人都获取了,下游的实验,没有年轻人的样本,导致有偏差...

2021-03-09 15:14:58 757

原创 推荐系统(工程方向)-策略平台

一、背景 假设某个app的首页推荐,有2个策略产品经理、6个算法RD、2个工程RD协同工作,如果没有一套可视化的策略执行流程,沟通将非常低效,且对接容易出错,达不到想要的效果。 其次推荐系统一般可抽象出几个核心流程:获取用户画像+用户过滤列表召回排序重排人工运营 这些核心流程可抽成公共组件,配置在流程中,减少很多工作量。二、方案设计1、设...

2021-03-08 19:55:23 230

原创 shiro中获取当前user出错

准确场景描述应该是: 1、在应用层使用“线程池等会缓存线程的组件”,比如Executors.newFixedThreadPool(n);在线程里进行 getUser(); 2、可能A用户获取到B用户。 下面分析一下原理: 顺着shiro源码去找,获取当前用户方法SecurityUtils.getSubject();/*ThreadContext线程上下文环境,主要靠InheritableT

2017-04-26 18:07:26 8178

原创 rocketmq源码简析之namesrc模块

先看一下官网一张清晰的架构图: nameserver作为替换早期版本zookeeper的轻量级实现,它只实现了zk的一致性+发布订阅,当然实现方式是不一样的。它的一致性是通过每个节点的Broker、Consumer、Producer定时心跳同步的,存在短暂的不一致性,可以说是弱一致性,不会有影响,因为有柔性事务保证重试机制。发布订阅跟zk就差不多了,Broker会与每一台nameserver

2017-04-25 17:21:05 1392

原创 sharding-jdbc源码阅读之soft transaction

先看一段作者张亮,对sharding-jdbc分布式事务理解: 张亮:分布式事务这块,我们认为XA多阶段提交的方式,虽然对分布式数据的完整性有比较好的保障,但会极大的降影响应用性能,并未考虑采用。我们采用的是两种方式,一种称之为弱XA,另一种是柔性事务,即BASE。 弱XA就是分库之后的数据库各自负责自己事务的提交和回滚,没有统一的调度器集中处理。这样做的好处是天然就支持,对性能也

2017-04-20 15:15:55 2651 1

原创 sharding-jdbc源码阅读之Adapter

15年做搜索的时候,业务那边对一些大的mysql表做了分表,记得好像是video表,给了我一个公式:vid%16。好在搜索业务对mysql表只是读取操作,改动还是比较简单,我在原来的读取类上,做了一层wrapper,在between 1 to 5000的情况下,计算该去哪张表读取。后面出来面试,也被问到分库分表这种概念,但手动去做,总是很坑。于是去了解了一下这一块的开源项目:**jdbc版:阿里的

2017-04-19 19:44:20 1663

原创 nodejs使用笔记

1、nodejs与java开发的最大区别在于:事件处理机制以及相应的回调函数。事件处理机制:即非阻塞IO操作,类似fs操作、网络访问、数据库查询、redis查询等等,都是在主进程的基础上,注册事件到事件队列,与主进程通过回调函数(钩子)关联,其实相当于java中的excutror带返回值的runable。2、使用express4.x做web框架开发,express4.x相对于exp

2015-07-31 16:52:35 763

原创 JS闭包理解

1、闭包概念闭包指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。满足闭包条件:在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。因为函数a被b引用,b又被a外的c引用,这就是为什么函数a执行后不会被回收的原因。

2015-07-31 15:34:56 767

转载 Ryan dahl对node.js初衷

2008年,我在寻找一个新的编程平台来做网站。我并不是想要一门新的语言,实际上,语言自身的细节对我来说并不重要。我真正关心的是,该语言能否提供先进的推送功能并集成到网站中来,就像我在Gmail中看到的那样——能够从服务器端把数据主动推送给用户,而不是采用不断轮询拉取数据的方式。现有的平台都把服务器作为接受请求然后返回相应内容的设备。要把事件推送到浏览器,平台需要能够持续处理大量打开的网络连接,而这

2015-06-18 13:50:23 1861

原创 java.lang.NullPointerException at org.hibernate.type.LongType.next(LongType.java

jpa使用乐观锁,version字段不要自己维护,否则很容易出错。项目上线之后,报以上错误,开始以为是代码问题,后面检查线上数据库,才发现order关联的webuser的version有些为空。设置默认0就可以了!

2015-05-26 10:49:52 3550

原创 toString小问题

问题描述:ToStringTest 类中,有一个重写的toString()方法,直接返回null;public class ToStringTest {public String a = "a";private String result;public ToStringTest(String result){this.result = result;}

2015-05-07 11:33:20 552

转载 使用BasicDataSource引发的数据库连接中断的问题和解决方法

最近碰到一个问题,应用程序每天的第一次进行系统访问时,会报一个奇怪的错误,最后经过仔细的跟踪,错误信息找到了,如下所示:1The last packet successfully received from the server was 60,428,178 milliseconds ago.  The last packet sent su

2015-03-11 15:00:34 8717

转载 mapreduce与mapreduceV2/yarn

Hadoop MapReduceV2(Yarn) 框架简介原 Hadoop MapReduce 框架的问题对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不再累述,读者可参考 Hadoop 官方简介。使用和学习过老 Hadoop 框架(0.20.0 及之前版本)的同仁应该很熟悉如下的原 Ma

2014-11-14 10:37:01 895

原创 mapreduce创建solrcloud索引

原理图:

2014-11-12 11:45:01 5960

转载 hash取模一致性哈希

取模最简单的hash算法targetServer = serverList[hash(key) % serverList.size]直接用key的hash值(计算key的hash值的方法可以自由选择,比如算法CRC32、MD5,甚至本地hash系统,如java的hashcode)模上server总数来定位目标server。这种算法不仅简单,而且具有不错的随机分布特性。但

2014-11-09 14:30:12 11573

转载 线程安全及性能良好单例

public class Singleton {      private static volatile Singleton instance = null;      /**      * 防止其他人new对象      */      private Singleton(){          System.out.println("init");      }

2014-11-09 14:04:30 676

转载 Spark vs. MapReduce

MapReduce为大数据挖掘提供了有力的支持,但是复杂的挖掘算法往往需要多个MapReduce作业才能完成,多个作业之间存在着冗余的磁盘读写开销和多次资源申请过程,使得基于MapReduce的算法实现存在严重的性能问题。大处理处理后起之秀Spark得益于其在迭代计算和内存计算上的优势,可以自动调度复杂的计算任务,避免中间结果的磁盘读写和资源申请过程,非常适合数据挖掘算法。腾讯TDW Spark平

2014-11-04 18:12:56 9446 1

原创 solr扩展自己的analyzer的tokenfilter

tokenfiter的概念是词语级别处理过滤器

2014-11-03 17:08:34 2912

原创 mm配置匹配度

之前使用edismax时,mm=1,搜索结果太发散,一些关联度不大的也匹配到了。

2014-10-13 16:06:48 930

原创 shard.qt的作用

在handler中配置shard.qt表示在分片查询中

2014-09-23 15:17:12 743

原创 积跬步,致千里

这个笔记我计划作为个人笔记,记录那些工作中遇到的细节

2014-09-10 18:16:19 1811

原创 solr创建SolrIndexSearcher

SolrIndexSearcher创建代码在SolrCore.class中

2014-08-27 15:09:49 2061

原创 补充linux删除文件硬盘空间爆满

在做solr4.7.2离线索引的时候,删除旧的索引文件和index.properties.olde

2014-08-27 11:52:40 1054

原创 solr4.7.2整合hbase的BUG

场景:solr的handler中,连接hbase获取数据,

2014-08-27 11:30:17 1441 1

原创 linux系统删文件硬盘反而满了

做solr离线索引的时候,使用了

2014-08-07 11:28:45 2206

原创 记录mapreduce遇到的问题

1、java.lang.ClassNotFoundException后来发现原来是在0.20版本以后main方法中需要加:job.setJarByClass(HBaseToFile.class);才能找到自定义的map或reduce内部类2、

2014-07-18 16:59:15 3347

《最后期限》

讲解项目开发过程中的进度指定,与异常情况的处理

2014-03-23

编译人生书籍

IT人士必读书籍,讲解开发人员应注意事项等内容。和注意的细节

2014-03-23

IOS 开发总结

IOS 开发总结,xcode快捷键,objective-c 语言注意事项

2014-03-23

宾馆管理系统

课程设计的作品,java源代码,对宾馆的流程的管理。

2012-05-24

前台效果按钮+导航条+编辑器+后台模板

一直以来的开发搜集,有按钮+导航条+编辑器+后台模板等等,有惊喜的!

2012-04-21

Oracle PHP分页代码

运行出来的PHP+ORACLE分页代码,还有页码

2012-04-21

24种设计模式介绍与6大设计原则

JAVA的24种设计模式介绍与6大设计原则.程序员最最重要的思想精华,通俗易懂。有了这些设计模式和原则,任何程序难题应刃而解........

2011-09-09

JAVA C C++各种语言的面试题宝典

内含有JAVA C C++三种语言的很多经典的面试题,还有老鸟给菜鸟的面试的技巧,可以让我们提早了解企业对人才的需求

2011-09-02

JAVA SOCKET 在线聊天系统雏形

JAVA SOCKET编程的简单项目实例,是我很辛苦搞到的,有利于初学者了解SOCKET通信,以及IO在SOCKET方面的应用,了解SOCKET服务器的工作原理,以及它如何与客户端通信的

2011-09-02

JAVA课程设计之计算器及其他

JAVA课程设计之美观的计算器,还有阿基米德螺旋线及自己做的一个进制转换板,学习JAVA的GUI是基础,它是一个框架,里面可以包涵很多东西进去

2011-05-04

applet动画之溜马

applet是JAVA客户端应用程序,可以嵌入到HTML中。此资源是走动的马的applet动画,还有八张机器人逐帧图片作为开发素材!也有实现声音哦~~

2011-05-04

迷你ASP服务器 cn

小型的ASP实验学习软件,是一个小巧实用的ASP的服务器,适合于初学者编程。

2010-10-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除