`
ldd600
  • 浏览: 103997 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
47bb354f-8b5f-3ea6-a206-c7ead38c741c
Hyperic插件开发不完...
浏览量:11285
社区版块
存档分类
最新评论
文章列表
1.列表页原子操作问题 我们使用的nginx proxy cache,每次只能purge(过期)一个页面。发现页,热门,如果不同时purge,会出现新老交替的瞬间。没有主动过期概率更高。阅读nginx proxy cache代码,知道hash规则,删除文件。可以用nginx插件实现。 2.缓存什么像大量的用户,专辑页,如果都缓存代价很高,是否只缓存首页。只缓存第一页。3.缓存过期问题被动过期:缓存时间到了后,会获取新的数据。对于未登录比较适合。主动过期:发生修改后,主动通知页面缓存清理。用户的声音,专辑列表,专辑的声音列表,发现页列表用户:用户修改了自己的属性,发了新声音,新专辑。专辑: ...
回来时候,发现会场听讲的会议记录的笔记本丢了,写了满满一本。就凭记忆写一些东西吧。   1.android插件化   插件化框架组开发定制了自己的dexloader,resource loader,如果发现插件或者资源有更改,就自动更新。有校验机制,母包会对子包记性校验,大概是母包对子包进行签名,接着dexloader加载时用母包的公钥解密,得到插件指纹,对插件指纹进行校验,如果插件有任何内容修改,就生成不了一致的插件指纹。校验的算法都是用C直接写的。反编译可能就不起作用了。另外子包也会对母包进行校验。   插件开发组 开发的包 就跟普通的apk一样,可打包到app market发 ...
今天review了一下测试环境,后来发现一个java进程CPU 120%多,4核的CPU,很多人都没感觉。但是确实是很大问题。测试环境没什么并发,也没什么数据量怎么会这么高的cpu呢?   找到java进程中耗cpu最高的nid, top –p pid –H   用jstack或者其他方式打印一下线程堆栈,从堆栈记录里找出nid,对应的线程和他的堆栈。找到出问题的方法。有这么一段代码。 while (true) { while (blockingDeque.size() > 0) { try { ...

满篇的fullgc

今天,抽空review一下测试环境。看了一下gc日志,乖乖,满篇的full gc。   用jstat –gcutil PID查了一下,发现确实fgc的count是ygc的4倍。为什么都跑到老年代了。然后看了tomcat启动设置,发现不知一哥们把xmn配成了256m。问他为什么这么设置。说配小了就可以不停的YGC,FGC就没有了。   我怔住了,竟然能这么理解,YGC是增多了,短期对象都跑到老年代了,FGC并没有减少。把xmn重新设置到了
花了几天时间,对androidpn的源代码进行了阅读,并修改了一些必要的功能。   服务端: 1.用户认证策略改为用device id和token。token是用户登陆应用成功后生成的,device id是一台机器的UUID。一个用户会绑定到多个device,和网站本 ...
1. 神奇的现象 今天发布版本时,重启了整个rabbitmq集群,发现有的模块和rabbitmq中的exchange解绑了。而且启动时并没有自动绑定。有个同事有十几个queue,全部手动绑定了一下。导致上线时间多花了10多分钟。现象描述: queue ...
背景 远程提交MR job时将MR job依赖的所有jar都发布到HDFS中,同时将这些jar加到hadoop job的classpath上。 如果每次手动上传就太费劲。项目集成maven。所以打算在maven package时将所有jar通过脚本上传到远程HDFS上       编写ant脚本 使用了,haddop的ant 插件。说白了就是一些util方法,调用了fsshell。没有文档,写的时候需要参考plugin的源代码。呵呵。 关键:   <hdfs cmd="rm" args="@{mapred.lib.dir}/*.jar&qu ...
分页逻辑: 1.向下翻滚动条,查看更多 2.旧的内容和新的内容会合并,多条会合成一条,放在第一条,便于用户查看信息 3.不允许两页出现重复,特别是手机scroll view出现重复就太难看了。 解决方法: 1.为了分页显示正确,在翻页时不出现重复(翻页是向下查看更多的方式),现在是记录未读数,在获取第二页时是pagenumber×pagesize+unread。如果有新的内容产生,未读数加1,用户刷新页面,从第一页开始获取,未读数清0. 2.现在我们是每种客户端存一个未读数,但是如果用户同时登录两个手机,就会出现分页混乱的情况,因为A客户端是看6-10条,但B客户端刷 ...
  1. 将开发好MR代码打包成jar。添加到distributed cache中。   bin/hadoop fs -copyFromLocal /root/stat-analysis-mapred-1.0-SNAPSHOT.jar /user/root/lib   2.  在服务器端创建和你客户端一模一样的用户。创建目录 /tmp/hadoop-root/stagging/用户    3.  客户端提交job的代码   Configuration conf = HBaseConfiguration.create(); conf.set("hb ...

Lucene sort

Lucene sort: 1.索引顺序 2.相关度 3.sort field 4.custom sort (comparator) 5.function query(score函数) 6.boost(norm) 7.custom collector。   他们各有所长,有的耗cpu时间,有的耗索引大小。
1. 都是基于散列算法分表,有两种不同的方法,  一种取模法,但是取模也是先预估100张,也可以先用10张,10张表相当于0, 9,19, 29等,如果模下来的在5就寻址到值为9的那张表,这样即使加入新的10张表也只要迁移部分数据。   二种一致性hash,按100张表为例,每个物理节点增加10个虚拟节点。不要舍不得增加虚拟节点,直到算出来的节点比较平均就可以了。   2. 数据不要舍不得冗余   内容表本身按照ID分,跟用户相关比如收藏,喜欢,转发,发布等都是按照UID分。列表显示的数据都需要冗余。列表显示的数据要尽量控制住。   3. 根据id分表不是万能的。有时候需要根据 ...
最近整一些见不得人的事情,每天都忙到很晚。悲剧。       SELECT a.client_id, s.cnt s_cnt, a.cnt a_cnt, s.cnt / a.cnt s_rate FROM (SELECT COUNT(*) cnt, handle_client client_id FROM tb_captcha cpout WHERE expire_time > ...
C# webbroser控件有限制(可能浏览器控件都有这个限制),黑盒的情况下不能修改header,是只读的方式。只能全局通过DLL的开放的接口修改整个进程的header信息和代理信息。 而webbrowser是可以多线程的,我们现在是一个独立业务使用一个webbrowser。将来或使用webrowser池,这时候proxy接收到的数据需要修改然后传给相应的发送者,按照前面所说,proxy单个进程只有一个,所以proxy在处理完数据后需要寻址到对应的发送方。但是proxy无法掌握任何有关发送方的信息,无法对应起来,此时也就无法工作于多线程的模式。 此时解决的方案由三个: 1.全局 ...
 6.      Filter Filter可以对解析好的新Task,进行过滤。   7.      Handler Handler对解析好的内容进行进一步处理,异步化处理和爬取解析。处理主要是将爬取的数据入库和索引。 
一、        模块 1.      Scheduler Scheduler负责启动爬虫,停止爬虫,监控爬虫的状态。   Scheduler在调度爬虫时,借助于Quartz,设置爬虫在某个时刻启动。同一个名字的爬虫是stateful的。 Task
Global site tag (gtag.js) - Google Analytics