坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Yearly Archives: 2012

Riak Core说明

什么是riak_core? riak_core是一个单独的OTP应用,提供了所有必须的服务,以完成一个现代化的、表现良好的分布式应用。riak_core开始于Riak的一部分。当代码在建立各种分布式应用普遍有用时,我们决定重构并且分离出来核心部分,使其便于使用。 分布式系统是复杂的,riak_core可以满足这些大量复杂的需求。在深入代码之前,我将分离这些需求为明显的分类,且给出每项的概况。 注:如果你是急性子,想跳过后面的直接读代码,你可以通过hg或者git检出riak_core的代码。 节点存活 & 节点关系 riak_core_node_watcher是负责反馈riak_core_cluster内部节点状态的进程。它使用net_kernel有效地监控了许多节点。riak_core_node_watcher也有能力将一个节点按程序预定踢出cluster。当一个主节点必须临时断电而又不想完全停服的情况,这十分有用。 riak_core_node_watcher还提供了在cluster内广播和定向服务的API。当节点提供了专门的服务,比如CUDA计算节点,这个服务被cluster中的其他的节点所使用,这些API很有用。 riak_core_node_watch_events配合riak_core_node_watcher产生以活跃节点为基础的events,比如说加入或者离开cluster等等。当事人可以注册callback方法,当events被触发时会被调到。 分区 & 分布式工作 riak_core在每个节点上使用了master/worker配置,以

Continue reading

Posted in 资料文档 | Tagged , | Leave a comment

maven库nexus拖不到jar包小记

使用maven,nexus是个不错的选择。 最常见的问题: 1.SNAPSHOT拿不到最新的包。 2.明明在maven central库里搜索到的包,却提示Missing。 3.plugin提示Missing。 1.SNAPSHOT拿不到最新的包。 这个问题往往得nexus+hudson造成的。因为daily build导致与日俱增的jar包堆积在一个文件夹下,文件数目过多,导致在取最新的包时超时了。 解决办法: 浏览器打开nexus, login->scheduled tasks->add,添加一个定时清理目录的计划任务即可。最后一个选项“remove if released”需要慎重,平时开发可能不是特别正规的时候可能会snapshot和release都需要。 2.明明在maven central库里搜索到的包,却提示Missing。 网上大多数说法都是index失败了,个人经验实际不然(当然不排除你的问题就是index失败)。 当nexus.log里没有任何异常时,请注意以下内容: 在central搜索时,如果只有pom没有jar,那说明这个依赖的项目可能有多个依赖,一定要加上pom,默认是jar。 3.plugin提示Missing。 通常原因是:nexus设置的搜索顺序有问题。 login->Public Repositories -> configuration 左边的是正在使用的定义好的仓库组,右边是可以使用的,正确的顺序应该是先在Release找,然后Snapshots,然后3rd party,最后才去外网下(这时nexus才拖下来新的jar/pom)。

Continue reading

Posted in java | Tagged , | 2 Comments

服务接入层小结

接入层 是指普通用户与核心业务逻辑中间的过程。现在常见的服务接入层,像nginx、lvs、php这些都可以算是。 观点 一种观点认为:接入的量不应该影响系统的正常运行,也就是不能接入不能处理的用户请求,类似上图中前图。 另一种观点认为:接入层应该尽量接入所有用户,类似上图中后图。 做法 nginx: nginx如果用做proxy,后端挂其他服务的话,是一个纯粹的NIO server。对用户来说,nginx是长连接(http 1.1),对后端服务来说,nginx是短连接(http 1.0)。 default: proxy_connect_timeout 60s; 向后端服务创建连接的超时时间 default: proxy_read_timeout 60s; 后端返回请求响应超时时间 default: proxy_send_timeout 60s; 大请求发到后端超时时间 nginx通过上面的三个设置,当后端有响应不过来的时候,进行超时处理(记录日志),当发现超时很多了,就需要提升后端的处理能力了。 那么,nginx自身的处理能力是否有上限呢?当然有! worker_processes 1; worker_connections 1024; max_clients = worker_processes * worker_connections 当超过max_clients的用户扑上来的时候,如果幸运后端没有能力问题,那就会看到nginx在日志中要求你增加worker的提示。 php-fpm: pm = dynamic/static; dynamic时有最大进程最小进程之说

Continue reading

Posted in 架构研究 | Tagged | 1 Comment

54chen Twitter memo 2012-01-15

http://t.co/OQzzjGtA 有亮点,雷倒了吗? # 描述性工作流程是指大多数技术人员不愿意写wiki,只愿意口口相传。必须要写下来才会沉淀。我们团队写wiki标准为“如果你成长了就写下来”。 # 在facebook,公司文化与工作流程是有抵触的,引入新的工作流程的通常模式是“只有在事情快要到了不可收拾的时候,才会考虑引入新的工作流程。” # nginx防hashdos模块使用帮助 http://t.co/DIsCU1SI # 54chen Twitter memo 2012-01-08 http://t.co/9reuxYIS #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

nginx防hashdos模块使用帮助

经过上周一周朋友们帮忙测试和bug fix,nginx_http_hashdos_module已经达到可以线上使用的水平,下面是使用记录。 下载 #wget --no-check-certificate https://github.com/54chen/nginx-http-hashdos-module/zipball/master #mv master nginx_hashdos.zip #unzip nginx_hashdos.zip 编译安装 #tar zxvf nginx-1.0.xx.tar.gz #cd nginx-1.0.xx/ #./configure --prefix=/opt/soft/nginx --with-pcre --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=../54chen-nginx-http-hashdos-module-f84d909 #make && make install 配置注意事项 在http段,增加如下: hashdos on; body_max_count 1000; 在各自的location段,要按照业务情况来加: client_body_buffer_size 2m; client_max_body_size 2m; …

Continue reading

Posted in WEB相关 | Tagged , | Leave a comment

54chen Twitter memo 2012-01-08

nginx防hashdos模块释出 http://t.co/I9fnoKjs # https://t.co/7y7Z7W0o 欢迎测试。#nginx-http-hashdos-module# # 通过修改nginx搞定了hashdos,在家写代码思路很清晰。整理下收假后发出nginx的patch。 # 54chen Twitter memo 2012-01-01 http://t.co/udqY3tpz #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

nginx防hashdos模块释出

2012.1.7 更新 编译的时候推荐使用nginx-1.0以上版本,不要加--with-debug参数编译,(感谢agentzh指出)。 hashdos这个事,严格意义上不是各种语言的错了(不过perl的确处理得很好),但是用nginx来擦屁股要干净些。 借鉴tomcat的作法,实现了下面这个nginx-http-hashdos-module,通过设置hashdos(默认on)的开关和body_max_count(默认值1000),对nginx后面的服务进行安全防护,相比对php或者java进行patch,这或许是最好的办法了。 nginx-http-hashdos-module项目地址 https://github.com/54chen/nginx-http-hashdos-module 如何使用 1.下载zip后保存到一个目录,如~/nginx-http-hashdos-module。 2.cd nginx-1.0.9/ 3.重新编译和安装nginx ./configure --prefix=/opt/soft/nginx --with-pcre --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=/path_to/nginx-http-hashdos-module/ && make && make install 4.配置打开: hashdos on; body_max_count

Continue reading

Posted in WEB相关 | Tagged , | 11 Comments

54chen Twitter memo 2012-01-01

水煮鱼杯2011年度不得不总结的十件事 http://t.co/J1l7Vusw # 人肉构造打到php,php立马100%,转到java(resin+spring+rose),轻松化解,没有反应。(java数据本地亲测hash put长时间没出来的。) # 年终攻击hashDos-哈希表多碰撞实现拒绝服务-破解办法 http://t.co/bFrcQCv0 # 这一轮hashtable的问题,可以和去年php fixpath 有一拼了。 # @Fenng redmine要求第一次订过程必须精细考虑,有什么办法用redmine做到类似xplanner的过程细化子过程? # 【54chenRank】2011 年度项目:1)团购 2)类kik。本来是2010最火的,之所以提团购,是因为电子商务寒风吹过,四处报团购商家卷被子跑路。类kik的项目,炒起来了移动互联网整个行业的火热,X聊、X信,数不胜数。 # 【54chenRank】2011 年度技术关键词:devops。随着创业公司的增多,dev和ops的角色越来越融合,老死不相往来的可能性已经越来越不靠谱。预计明年:无数的小公司dev就是ops,ops就是dev。 # #哥学社#群里的山鸡说,成功的标志就是不在群里说话了。。。 # http://t.co/46uGJE6k 新概念作文一等奖,神作 # http://t.co/35XJ9gyQ 使用了无效的安全证书。该证书因为其发行者证书未知而不被信任。(错误码: sec_error_unknown_issuer)//笑而不语 # 这次爆密码是不是想让大家记住一个教训,不是大公

Continue reading

Posted in 生活备份 | Tagged | Leave a comment
Page 8 of 8« First...45678