- 浏览: 20947 次
- 性别:
- 来自: 杭州
最新评论
-
zhile005:
如何实现的呢?
nginx+memcached+java实现验证码功能 -
meng9999:
呵呵,不错的想法
使用nginx+redis+perl实现高性能主页 -
hittyo:
欢迎推荐win平台下IDE
使用linux终端+emacs打造erlang开发环境 -
k1000j1000:
我最近也需要用tsung来测试flex,楼主可还贴出修改后的文 ...
修改tsung支持flex项目录制和测试 -
mryufeng:
不错 开源的系统就应该经常hack下.
修改tsung支持flex项目录制和测试
文章列表
大部分网站都有一个主页,实现方式也是各种各样,redis中对列表有很好的支持,适合作为一个简单的消息队列,主页一般
都有n个模块组成,一个模块可以映射为redis中的一个列表。具体思路为:
1.业务系统新增一条记录,同时将数据打包成json格式,使用redis的 lpush将数据插入到redis server中。
2.后台使用perl redis lrange命令从列表中取出最新的n条数据,同时使用rpop删除部分数据。
3.用perl根据数据生成主页
4.nginx将主页定位到最新生成的文件
性能考虑:redis server 能支持10万/每秒的处理 ...
需求:在应用登录的时候一般会有验证码的功能,如果验证码直接做到java web服务器端,当将登录页面嵌入
静态的主页中的时候,web服务器端会带来很大的压力因此考虑将验证码功能在nginx端实现。
1.编写一个nginx模块,生成验证码的图片,将图片中验证码保存到nginx 变量中
2.从nginx变量中取出验证码,生成uuid cookie,将uuid和验证码存入到memcached server中
3.java web服务器验证的时候根据cookie从memcached server取数据验证
主要技术:
编写nginx模块
imag ...
#!/bin/bash
sed -i 's/mytestdb/mytestdb/g' /db/version1.sql
# todo get all sql from svn to /tool
>temp.sh
echo "drop database if EXISTS mytestdb;" >>temp.sh
echo "create database mytestdb;" >>temp.sh
echo "use mytestdb;" >>temp.sh
echo " ...
留着用
ip_string=`/sbin/ifconfig|awk "(/[0-9]?[0-9]?[0-9]\.[1-9]?[1-9]?[1-9]\.[0-9]?[0-9]?[0-9]\.[0-9]?[0-9]?[0-9]/) {print}"|cut -d: -f2`
name=${ip_string%% *}
使用epoll + inotify监控文件
- 博客分类:
- c
#include <sys/epoll.h>
#include <fcntl.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <sys/inotify.h>
#define EVENT_SIZE ( sizeof (struct inotify_event) )
#define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) )
int
main (int argc, ch ...
一个好的开发环境对软件开发有很好的帮助,使用java的时候基本用eclipes,感觉还可以,不过
erlang好像没有特别好的开发集成环境,只能自己动手打造一个了。
终端(putty)
终端颜色设置:(有颜色差异编译erlang代码看起来比较舒服)
settings->windows->colours-use system colours
2. emacs扩展
wb-line (显示行号)
下载和配置 :http://homepage1.nifty.com/blankspace/emacs/elis ...
最近一个项目做压力测试的时候发现内存不断攀升,从jconsole观察感觉内存有泄漏问题。
安装jprofiler,跟踪内存对象的变化,发现 oscache中不断添加对象,估计和hiberante和oscache有关系,debug到代码内部,代码使用到了hibernate的复合主键,复合主键实现类没有覆盖掉toString方法,而hibernate的cache用到了这个方法,导致cache无法命中,同一个对象不断存到cache中。覆盖掉toString方法后,问题解决
gtalk使用http trunck结合浏览器ajax实现了基于server push的技术,最近山寨了一把。
客户端: Firefox,使用XMLHttpRequest对象以及,xmlHttp.readyState == 3来接收
server的数据, (IE实现机制有点不一样,需要使用ActiveXObject("htmlfile")来实现),
服务器设计:
chat_session _rver:gen_server实现,主要考虑浏览器的重连,用于标识用户
chat_server: gen_server实现,控制创建聊天室以及加入聊天室
chat_rootm: 一个r ...
codeblocks:
http://www.codeblocks.org/
lua:
http://www.lua.org/
iup:
http://www.tecgraf.puc-rio.br/iup/
简单例子
#include <stdio.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
#include <iuplua.h>
int main (void)
{
lua_State *L = lua_open(); /* ...
tsung提供http压力测试,虽然flex也是走的http协议,但是因为tsung rcorder将http body内容当作text录制并保持,flex amf传递的是binary,所以使用录制的文件进行压力测试会报错,从录制的xml看contents属性存储了body内容,到源代码里面搜索一把
find ./ -name "*.erl" -exec grep -i "contents" {} \; -print
发现ts_proxy_http.erl 负责录制和保存,ts_config_http.erl负责读取,
调整一下代码,录制的时候将bod ...
erlang做的web项目实在是比较欠缺,前阵子有空正好弄过java的cas系统,准备将cas server
使用erlang来实现,
项目已经建立在google svn上(http://code.google.com/p/erlangcas/),目前基本凑合能用吧。主要是为了练练erlang。
从实际的开发过程看使用erlang编写web应用还是不错的,server启动快,算是超轻量型,erlang的热部署在开发时也是蛮好使的。开发基于开源的erlang beepbeep web框架,
老外挺热心的,有什么问题直接发邮件,很快就回有回复。