dennis-欧洲杯足彩官网

`
文章列表
一、背景资料     memcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。memcached的分布算法一般有两种选择:1、根 据hash(key)的结果,模连接数的余数决定存储到哪个节点,也就是hash(key)% sessions.size(),这个算法简单快速,表现良好。然而这个算法有个缺点,就是在memcached节点增加或者删除的时候,原有的缓存数据 将大规模失效,命中率大受影响,如果节点数多,缓存数据多,重建缓存的代价太高,因此有了第二个算法。2、consistent hashing,一致性哈希算法,他的查找节点过程如下:    首先求出memcached服务 ...
   xmemcached 发布1.0-beta ,从0.60直接到1.0-beta,主要改进如下: 1、支持更多协议,在已有协议支持的基础上添加了append、prepend、gets、批量gets、cas 协议的支持,具体请查看xmemcachedclient类的实例方法。重点是cas操作,下文将详细描述下。 2、memcached分布支持,支持连接多个memcached server,支持简单的余数分布和一致性哈希分布。 3、0.60版本以来的bug修复。    memcached 1.2.4之后开始支持cas协议,该协议存储数据同时发送一个版本号,只有当这个版本号与memcached ...
翠花,上图,首先是容器类和自定义对象的get、set在不同并发下的表现     很明显,在linux下,spymemcached读写复杂对象的效率远远超过在windows下的表现,xmemcached在两个平台之间表现平稳,在linux上get效率低于spymemcached,差距比较大,准备再优化下;set效率略高于spymemcached。     xmemcached  0.70将支持多服务器功能和简单的分布能力,基于hash key后模节点数的余数值做分布,这也是spymemcached默认的分布方式,一致性哈希暂不实现。下面是在linux下多节点情况下读写简单类型的效率 ...
   充分利用jprofile等工具观察性能瓶颈,才能对症下药,盲目的优化只是在浪费时间,并且效果可能恰恰相反 1、 观察到countdownlatch.await占据最多cpu时间,一开始认为是由于jprofiler带来的影响,导致这个方法调用时间过长,从而 ...
1、xmemcached是什么? xmemcached是基于java nio实现的memcached客户端api。 实际上是基于我实现的一个简单nio框架 http://code.google.com/p/yanf4j/ 的基础上实现的(目前是基于yanf4j 0.52),核心代码不超过1000行,序列化机制直接挪用spymemcached的transcoder。 性能方面,在读写简单类型上比之spymemcached还是有差距,在读写比较大的对象(如集合)有效率优势。 当 前0.50-beta版本,仅支持单个memcached服务器,以后考虑扩展。目前已经支持get、set、add、r ...
yanf4j 发布一个0.50-beta2 版本,这个版本最重要的改进就是引入了客户端连接非阻塞ap i,主要最近的工作要用到,所以添加了。两个核心类tcpconnectorcontroller 和udpconnectorcontroller 分别用于tcp和udp的客户端连接控制。例如,现在的udp echo client可以写成:      // 客户端echo handler      class  echoclienthandler  extends  handleradapter {          public   void  onreceive(session udpse ...
俺的山寨nio框架yanf4j发布0.50-alpha版本,下载地址在这里 ,更新了wiki 。本测试版本主要修改如下: 1、controller接口引入了两个新方法 : a)接受inetsocketaddress类型参数的系列open方法,用以在多宿主机上绑定到不同网络接口            public   void  open(inetsocketaddress inetsocketaddress,  boolean  reuseaddr,             handler handler, codecfactory codecfactory)  throws  ioexcep ...
    博客分类:
  • java
过去推荐过两篇blog《java nio类库selector机制解析》(上 ,下 ),感叹java为了跨平台似乎“很傻很天真”。最近学习使用ace,才知道这个解决办法倒不是java开创的,ace也是这样搞的。java nio中selector的wakeup方法,类似于ace_select_reactor的notify机制,可以从非select调用的线程去唤醒阻塞在select调用上的select线程,当然ace_select_reactor的notify强大多了,可以实现event handler的无限扩容。ace_select_reactor的notify的实现是通过ace_pipe,在ace ...
    博客分类:
  • java
项目名称:yanf4j (yet another nio framework for java) 项目网址:http://code.google.com/p/yanf4j/ 下载网址:http://code.google.com/p/yanf4j/downloads/list 0.41 beta版 的主要修改: 1、引入流量控制,通过controller的setreceivepacketrate方法设置接收消息频率(单位 个/秒),当超过设定值时,yanf4j将放缓接收数据直到实时统计的接收频率降低。此功能默认未开启。 2、改善了数据统计,数据统计不再是从服务器启动时间点到当前的时间段内的平 ...
  • 2009-01-20 14:01
  • 浏览 1790
    博客分类:
  • java
在cpp中为了可移植性,string的长度是string::size_type,突然就想知道java允许的最大字符串长度为多少。看string的源码: public   final   class  string    110         implements  java.io.serializable, comparable < string > , charsequence    111 ...
  • 2009-01-15 01:37
  • 浏览 7489
    博客分类:
  • java
yanf4j 简介,请看这里 。     这里俺要介绍下用yanf4j写个最简单的聊天室,可以直接telnet上去聊天。请先下载common-logging 和yanf4j-0.40-stable-bin.tar.gz 。     聊天室嘛,肯定要维护一个聊天者聊表: list < session >  sessionlist  = � ...
  • 2008-11-26 11:36
  • 浏览 5337
项目名称:yanf4j(yet another nio framework for java) 项目地址:http://code.google.com/p/yanf4j/ ,当前版本0.30-beta1 协议:apache license, version 2.0 简单描述:     有这么多nio框架了,为什么要another?重复造轮子也罢,这框架脱胎于一个服务器项目的网络层代码,期间参考了cindy、grizzly等nio框架的实现,加上自己的一些心得体会实现的。特点是简单、小巧、超轻量级。项目没有多大野心,目标是高效、简单地实现非阻塞模式的server(tcp、udp)并且保证不错的性 ...
  • 2008-10-11 14:25
  • 浏览 1934
    博客分类:
  • java
阻塞队列的性能对比 主要是比较offer跟poll两个方法的性能,开n个线程,每个线程往队列里写或者取500个整数。 线程数 20 50 100 200 500 1000 linkedblockingqueue      15,0 31,15 32,16 63,32 203,47 563,110 arrayblockingqueue 15,0 16,15 31,15 47,16 125,47 364,68 priorityblockingqueue 78,78 172,188 36 ...
  • 2008-09-08 10:06
  • 浏览 5664
    典型的j2ee项目,package的设计有成熟的套路可循,如分为domain、dao、service、action等等,职责已经分解的比较单一和 清晰,循环依赖这样的情况出现并不多。而在一般的java项目,如服务器程序、客户端程序和通用性框架的开发中,包的设计并没有套路可循,毕竟由于应用和 业务种类的不同,想得出通用性的设计套路是不大可能的。这时候遵循一些原则比之生搬硬套更为重要。在《敏捷软件开发》一书中对包的设计有深入的讨论,虽然 针对的是发布的二进制包而言,但是对于java package的设计同样有借鉴意义,如对包的内聚性、可重用性、稳定性的强调,对于依赖的探讨,这些都是比较笼统的 ...
    博客分类:
  • java
      这个题目比较怪,听俺道来。俺一直在负责公司游戏服务器的开发和维护,日积月累下来终于将原本混乱的代码和结构重构的比较清晰了,在此过程中的体会就是,重构啊,不仅仅是技术活,更多是要克服不情愿的、得过且过的心理去做,去做了才发现麻烦并没有想象中的大。     改造过程中遇到这么个问题,我想将对某个创建的游戏的操作都固定在一个线程执行,与其他游戏可以并发地处理;或者说依据游戏id派发到某个固定的线程处 理,对此游戏的操作都是串行化。不是俺不想彻底并行化,但是要将现有的代码改造成适应并行化相当困难,俺尝试的结果是问题百出,因此就想了这么个折中策 略,不同游戏之间的操作可以并行,单个游戏内操作 ...
  • 2008-09-01 19:39
  • 浏览 1938
    博客分类:
  • java
    前两天在公司内网上搭了个2个节点hadoop集群,暂时没有多大实际意义,仅用作自己的测试。遇到的问题在阿里巴巴这位仁兄的《hadoop集群配置和使用技巧 》都有提到的。也遇到了reduce任务卡住的问题,只需要在每个节点的/etc/hosts将集群中的机器都配置上即可解决。    今天将一个日志统计任务用hadoop mapreduce框架重新实现了一次,数据量并不大,每天分析一个2g多的日志文件罢了。先前是用ruby配合cat、grep命令搞定,运行一次在 50多秒左右,如果纯粹采用ruby的话cpu占用率非常高而且慢的无法忍受,利用io.popen调用linux的cat、grep ...
  • 2008-08-23 11:10
  • 浏览 2723
    分布式文件系统的设计目标大概是这么几个:透明性、并发控制、可伸缩性、容错以及安全需求等。我想试试从这几个角度去观察hdfs的设计和实现,可以更清楚地看出hdfs的应用场景和设计理念。     首先是透明性,如果� ...
    博客分类:
  • java
hdfs用户指南 原文地址:http://hadoop.apache.org/core/docs/current/hdfs_user_guide.html 译者:dennis zhuang(killme2008@gmail.com),有错误请指正,多谢。 目的 本文档可以作为使用hadoop分布式文件系统用户的起点,无论是将hdfs应用在一个hadoop集群中还是作为一个单独的分布式文件系统使用。hdfs被设计成可以马上在许多环境中工作起来,那么一些hdfs的运行知识肯定能大大地帮助你对一个集群做配置改进和诊断。 概览 hdfs是had ...
  • 2008-08-14 20:27
  • 浏览 2081
  • 论坛回复 / (3 / 16573)
  • 分类:企业架构
    博客分类:
  • java
    ehcache的overflowtodisk属性用来配置当缓存存储的数据达到maxinmemory限制时是否overflow到磁盘上。如果这个属 性为true,那么要求缓存的数据必须是可序列化的,如果不是可序列化的,ehcache将在日志中打印这个错误(文档中仅指出了这点),并且调用 memorystoreevictionpolicy设置的策略(例如lru)移除内存中的一个缓存元素再放入新的element,同时触发 cacheeventlistener的notifyelementevicted方法。
  • 2008-08-06 23:18
  • 浏览 10739
1、如果用java6的scriptenginemanager来调用jruby,并且脚本使用到了ruby的标准库(比如我用到了yaml库),如果没有正确设置,是会找不到标准库的。通过打印$:变量可以看到文件的加载路径,比如在某台机器上的打印的结果:    puts $:    输出: . /root/.jruby/lib/ruby/site_ruby/1.8 /root/.jruby/lib/ruby/site_ruby /root/.jruby/lib/ruby/1.8 /root/.jruby/lib/ruby/1.8/java lib/ruby/1.8 ......略 显然,默认会到 ...
    博客分类:
  • java
    socketchannel和serversocketchannel,两者的父类是selectablechannel,它在jdk中的文档有这么段话:      once registered with a selector, a channel remains registered until it is deregistered.this involves deallocating whatever resources were allocated to the channel by the selector.     a channel cannot be deregistered ...
  • 2008-06-18 01:53
  • 浏览 7082
    博客分类:
  • java
    javaone2008上有个session《upcoming java programming language features》,讲了即将到来的jdk7可能引入的新的语言特性,比较开眼界的是jsr308对annotation的扩展使用,更多地作为断言或者 说checker使用以便减少bug。在ppt前面,我觉的更有意思的是对java语言演化的讲述,做个笔记。 1 、应用 vs. 语言 应用是特性越多越好,应用是 rich 的;而语言是 pure 的,更少的、普通的特性更好。 2 、添加一个 java 语言特性的三个前提:尊重过去、着眼未来以 ...
  hadoop分布式文件系统:架构和设计要点一、前提和设计目标1、硬件错误是常态,而非异常情况,hdfs可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是hdfs的核心架构目标。2、跑在hdfs上的应用与一般的应用不同,它们主要是以流式读为主,做批量处理;比之关注数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。3、hdfs以支持大数据集合为目标,一个存储在上面的典型文件大小一般都在千兆至t字节,一个单一hdfs实例应该能支撑数以千万计的文件。4、 hdfs应用对文件要求的是write-one-read-many访问模型。一个文件经过创建、写 ...
  • 2008-06-05 14:26
  • 浏览 3017
  • 论坛回复 / (11 / 28634)
  • 分类:企业架构
    博客分类:
  • java
第一个程序: import java.util.arraylist; import java.util.list; public class tailrecursiontest { public static void main(string[] args) { tailrecursiontest t = new tailrecursiontest(); for (int i = 0; i < 10000; i ) t.a(0); } public void a(int j) { ...
  • 2008-05-31 17:36
  • 浏览 3364
  • 论坛回复 / (25 / 14784)
  • 分类:编程语言
    博客分类:
  • java
    前段时间看了这篇文章《ropes:理论与实践 》。这两天为了提高工作中某个系统对外接口的效率,才认真学习了一番。本质上ropes是将字符串表示为一棵二叉树,特别适用于长字符串的处理,貌似c stl库中也有这么个实现。具体实现和原理还是看这篇paper 。《ropes:理论与实践 》 一文中给出的测试数据相当惊人,ropes比之string和stringbuffer在append,insert,delete等操作上的效率都有一 个数量级以上的差距。跑下作者给出的测试程序,其实在测试的字符串不是很长的情况下,这个差距并没有那么大,这也从侧面说明了rope的应用范围:即只有 在大量修改大型 ...
  • 2008-05-05 18:49
  • 浏览 2164
    博客分类:
  • java
    推荐两篇blog: 《java nio 类库selector机制解析(上)》 《java nio 类库selector机制解析(下)》     有一个奇怪的现象引出的话题,为了selector.wakeup功能做到跨平台, 每个 selector.open() 时,在 windows 会建立一对自己和自己的 loopback 的 tcp 连接;在 linux 上会开一对 pipe ( pipe 在 linux 下一般都是成对打开)。 java为了跨平台真是无所不用其极,此中冷暖谁知啊。
  • 2008-04-22 18:13
  • 浏览 1800
    博客分类:
  • java
   在《程序员》最新一期有个专题介绍java开源nio框架,其中谈到了mina和grizzly。mina我还算比较熟悉,写过一些代码,也尝试去读过源 码。而grizzly是第一次听说,这个项目是sun的一个开源nio框架,是2004年在glassfish项目中诞生的,一开始是一个http web server,用于取代tomcat的coyote connector和sun webserver,2007年7月1.5版本发布并宣布成为开源项目,项目凯发推荐主页在https://grizzly.dev.java.net     grizzly与mina的性能比较(基于2007年javaone会议上的ppt) ...
  • 2008-02-23 19:15
  • 浏览 4136
  • 论坛回复 / (3 / 7387)
    博客分类:
  • java
primitive writes up to and including… ...are made visible to… object the end of a synchronized block or method a thread entering a synchronized block or method for the same object. ...
  • 2008-02-23 11:38
  • 浏览 2330
    博客分类:
  • java
    提取swf文件元信息、压缩swf、解压swf都可以处理,来自于http://www.brooksandrus.com/blog/category/java/,或者直接这里下载。 一个小例子: swfheader header = new swfheader("g:\\mplayer\\test.swf"); system.out.println("signature: " header.getsignature()); system.out.println("version: ...
  • 2008-01-07 15:34
  • 浏览 9329
    博客分类:
  • java
    小结下最近做的东西吧。因为是做一个素材管理的东西,因此需要处理各种各样的素材,音频、视频、图片、pdf、ppt等等。遇到一个需求就是将ppt转成 图片组,google一下,在java里是可以jcom之类的开源库实现,本质上都是通过jni调用office的com接口来实现。我们就需要这么一个 小功能,拖这么大个开源库进来实在没有必要。最后决定自己写个动态链接库,通过jni来调用。     先写工具类, public class pptutils { public pptutils() { } public static native void convertppt ...
  • 2008-01-07 15:33
  • 浏览 4686
global site tag (gtag.js) - google analytics
网站地图