用buffalo2.0做为日志采集器后发送到日志服务器.发现数量少了??

2 views
Skip to first unread message

bellone.wu

unread,
Jun 22, 2008, 10:15:58 PM6/22/08
to buffalo与Amowa
我用buffalo2.0做为日志采集器后发送到日志服务器.发现数量少了.

首先就是在JSP页面上一个是用buffalo2.0采集.一个是jsp直接调用数据库进行日志入库.

可是buffalo2.0异步采集的数会比直接jsp调数据库的量少了4份1.

代码是放在页面了最前面,代码如下:
if (qz_webtrend_item_load ==null){
var qz_webtrend_item_load = 1;
ACTIVE = true;
alert("aaaaaaaaaaaaaaaaaaaa");
if (ACTIVE){
for(var i=0; i<100; i++){
var END_POINT= "/jcs-1.3/BUFFALO";
var buffalo = new Buffalo(END_POINT);
var obj = new Object();
obj["count"] = "count==="+i;
obj["vc_item"] = "吴";
obj["lv_item"] = "<立>";
obj["uq_item"] = "铃"+i;
buffalo.remoteCall("QzsoftLogAjax.Log",[obj],function(reply) {
//alert(reply.getResult());
});
}
}
}

Michael Chen

unread,
Jun 23, 2008, 1:17:49 AM6/23/08
to am...@googlegroups.com
有可能。如果在页面离开的时候进行异步buffalo调用,在buffalo请求没有完成之前就转到了另外的页面,这个请求不会实际的进行。如果需要实时的记录,这个地方用同步调用应该能满足要求。

2008/6/23 bellone.wu <bello...@gmail.com>:

--
Michael Chen
--------------------------------
Blog: http://michael.nona.name
MSN: jzch...@hotmail.com

bellone.wu

unread,
Jun 23, 2008, 3:57:27 AM6/23/08
to buffalo与Amowa
我的jsp页面是分为上,中,下三个页面组成.其中上与下是include到中间部分.用户每次都是打开中间页.
我是在页面的最上面就先加了这个脚本,理论上应该也会异步执行,因为存入缓存是很快的动作.

上: 加载异步发送日志到日志服务器
----------------------------------------------------
中: 通过jsp直接存日志到数据库


我在发送日志是这样子做法,通过buffalo异步把采集的日志先发送到JCS(缓存开源包,这个我经过测试了,只要存入多少,那个多线程就会发出多
少,然后再用quartz.JobDetail定时5秒取这个jcs里的东东.一取出来后就删除,然后多线程发送.)

因为存缓存是需要一个,所以在buffalo调用java类时要先取一个KEY,,,代码如下.
private synchronized String generateKey(HttpServletRequest request)
{
HttpSession session = request.getSession();
try {
byte id[] = session.getId().getBytes();
long current = System.currentTimeMillis();
if (current == QzsoftThreadFactory.previous) {
current++;
}
...........................
这里我通过sessionid计算出一个值,理论上是有可能重复,但我放到集群测试一天,打印出日志,是存入多少KEY,同时多线程也发出的多少,所以
我确定应该是buffalo那边没有存入值.

1.不知这个key的synchronized 会不会造成时间的延迟, 因为我们是电信应用的网站,用户数还是挺多了,现在几个小时,日志量就会差
1W多条....

2..不知道buffalo在异步接收时,通过脚本的send()发送到那个
net.buffalo.web.servlet.ApplicationServlet时,处理是否会急时呢,会不会因为并发而被抛
弃.......

On 6月23日, 下午1时17分, "Michael Chen" <mechil...@gmail.com> wrote:
> 有可能。如果在页面离开的时候进行异步buffalo调用,在buffalo请求没有完成之前就转到了另外的页面,这个请求不会实际的进行。如果需要实时的记录-,这个地方用同步调用应该能满足要求。
>
> 2008/6/23 bellone.wu <bellone...@gmail.com>:
>
>
>
>
>
> > 我用buffalo2.0做为日志采集器后发送到日志服务器.发现数量少了.
>
> > 首先就是在JSP页面上一个是用buffalo2.0采集.一个是jsp直接调用数据库进行日志入库.
>
> > 可是buffalo2.0异步采集的数会比直接jsp调数据库的量少了4份1.
>
> > 代码是放在页面了最前面,代码如下:
> > if (qz_webtrend_item_load ==null){
> > var qz_webtrend_item_load = 1;
> > ACTIVE = true;
> > alert("aaaaaaaaaaaaaaaaaaaa");
> > if (ACTIVE){
> > for(var i=0; i<100; i++){
> > var END_POINT= "/jcs-1.3/BUFFALO";
> > var buffalo = new Buffalo(END_POINT);
> > var obj = new Object();
> > obj["count"] = "count==="+i;
> > obj["vc_item"] = "吴";
> > obj["lv_item"] = "<立>";
> > obj["uq_item"] = "铃"+i;
> > buffalo.remoteCall("QzsoftLogAjax.Log",[obj],function(reply) {
> > //alert(reply.getResult());
> > });
> > }
> > }
> > }
>
> --
> Michael Chen
> --------------------------------
> Blog:http://michael.nona.name
> MSN: jzche...@hotmail.com- 隐藏被引用文字 -
>
> - 显示引用的文字 -
Reply all
Reply to author
Forward
0 new messages