- 浏览: 1702272 次
- 性别:
- 来自: 杭州699号
最新评论
-
莫莫摸:
为什么不用dubbo
RCP数据传输模型回顾 -
大胡子爸爸:
String, Class 都实现了Serializable接 ...
RPC框架几行代码就够了 -
lss598018587:
谢谢大神分享,比起新手看复杂的dubbo框架还不如看大神的这一 ...
RPC框架几行代码就够了 -
15606915740:
你好,请问一下。<dubbo:consumer filt ...
Dubbo文档 -
joqk12345:
...
一些设计上的基本常识
文章列表
上一篇帖子:http://www.iteye.com/topic/1114669,本来只是想试验模板引擎性能优化,没想到骂声最多的是HTML属性语法,所以在0.2.0版本加上了HTML注释语法,指令仿Velocity,如:
<!--#var(User user, Book[] books)-->
<!--#if(user.role == "a ...
在07年的时候,写过一个模板引擎,当时叫CommonTemplate,以前JavaEye有个开源系列介绍:http://www.iteye.com/news/3381,后来功能越来越多,性能却越来越差,在金大为发给我性能对比结果后,看到惨不忍睹的差距,就打算抛弃原设计进行重写,但因工作忙,就搁置了,最近看温少发了几个EL和JSON的解析器,有点手痒,就抽了个周未,拿出来再改了改,主要将模板改成了字节码编译,并简化了语法及缩小使用范围,只针对HTML场景使用,并将名称改成了HTTL,名字含义是把HTML中的M(Marker)改成了T(Template),放在GoogleCode上:http://c ...
使用Map参数的Webx3扩展
- 博客分类:
- Java设计
因Webx3是开源的,所以把这个简单的Webx3扩展发在博客上。
很久没弄Web框架,因要将服务框架的控制台换成Webx3,就折腾一下,
一种使用Webx3的方式如下:
1. 注入HttpServletRequest
public class ProvidersAction extends BaseAction {
@Autowired
private ProviderDAO providerDAO; // 注入DAO依赖
@Autowired
private HttpServletRequest request; // 注入HTTP请 ...
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/experience_1348/netty-nio-direct-memory-leak.html
在测试中发现,当不停的开关Netty的NioClientSocketChannelFactory(比如大量连接失败重连等情况下),存在Direct Memory泄露。
测试代码:
for (int i = 0; ...
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/experience_1336/grizzly-netty-mina-performance.html
最近在服务框架中尝试增加了Grizzly传输集成,简单测试后发现,TPS(每秒处理请求数)略低于Netty,略高于Mina,相差并不是很大,但TPS比Netty稳定很多(每秒方差小),不会出现大幅波动,可以考虑备选。
Mina为ApacheDirectory服务器的底层NIO框架:http://mina.apache.org
Netty为JBoss的NIO框架:http://www.jboss.org/n ...
RPC框架几行代码就够了
- 博客分类:
- Java设计
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/experience_1330/simple-rpc-framework.html
因为要给百技上实训课,让新同学们自行实现一个简易RPC框架,在准备PPT时,就想写个示例,发现原来一个RPC框架只要一个类,10来分钟就可以写完了,虽然简陋,也晒晒:
/*
* Copyright 2011 Alibaba.com All right reserved. This software is the
* confidential and proprietary information of Aliba ...
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/dev_related_1283/dubbo-extension.html
随着服务化的推广,网站对Dubbo服务框架的需求逐渐增多,
Dubbo的现有开发人员能实现的需求有限,很多需求都被delay,
而网站的同学也希望参与进来,加上领域的推动,
所以平台计划将部分项目对公司内部开放,让大家一起来实现,
Dubbo为试点项目之一。
既然要开放,那Dubbo就要留一些扩展点,
让参与者尽量黑盒扩展,而不是白盒的修改代码,
否则分支,质量,合并,冲突都会很难管理。
先看一下Dubbo现有的设计:
这里面 ...
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/experience_1264/distributed-transaction.html
关于Dubbo服务框架的分布式事务,虽然现在不急着做,但可以讨论一下。
我觉得事务的管理不应该属于Dubbo框架,
Dubbo只需实现可被事务管理即可,
像JDBC和JMS都是可被事务管理的分布式资源,
Dubbo只要实现相同的可被事务管理的行为,比如可以回滚,
其它事务的调度,都应该由专门的事务管理器实现。
在Java中,分布式事务主要的规范是JTA/XA,
其中:JTA是Java的事务管理器规范,
XA是工业标准 ...
最近在想,每个人都有追求完美的时候,也都有功利的时候,
太追求完美不好,太功利也不好,那应该如何权衡呢。
看到Andy2在内网的帖子,他的完美主义,碰上了功利主义,只能发泄一下闪人,
低成本的数据中心,不只是节 ...
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/experience_1200/product-landing.html
前些天和老庄讨论MinasDynamic的Scope,讲到了产品的落地。
在09年的时候,我和付大叔一起做过Minas,最终没有推广开来,
导致中文站和国际站各自发展了 ...
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/experience_1182/sofeware-configuration-design.html
Dubbo现在的设计是完全无侵入,也就是使用者只依赖于配置契约,
经过多个版本的发展,为了满足各种需求场景,配置越来越多,
为了保持兼 ...
Jeremy Keith在 Fronteers 2010 上的主题演讲
今天我想跟大家谈一谈HTML5的设计。主要分两个方面:一方面,当然了,就是HTML5。我可以站在这儿只讲HTML5,但我并不打算这样做,因为如果你想了解HTML5的话,你可以Google,可以看书,甚 ...
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/experience_1089/hessian-set-serializerfactory-performance.html
服务框架全面重构后,因换了通讯协议,采用Magic头识别新旧版本,
性能测试发现,在兼容旧版本模式下,性能下降10倍,
原来一个1ms到2ms的请求,现在需要11ms到12ms,
对比新旧版本代码,发现四个不同点:
(1) UnsafeByteArrayOutputStream是不是比ByteArrayOutputStream慢很多?
(2) 通过java.nio.ByteBuffer ...
主流的GUI库都是采用单线程,不管是Java的还是C++的,Java里的Swing/AWT和JFace/SWT当然都是,
因MVC的盛行,也就是观察者模式,或者说事件通知方式,如果GUI设计成多线程,开发人员必须小心翼翼的开发,稍不留神就会出现死锁或死循环,非常难用,开发人员基本上会疯掉,
据说AWT前期也想发展成多线程GUI库,这样界面更快,最终因易用性而放弃。
OK,不扯远了,即然GUI是单线程库,也就是所有的GUI操作都是在同一个GUI线程上操作的,并发操作时,有个队列进行同步排队。
在Swing里面这个特殊的线程就是著名的EDT(EventDispatchingThread),所有的G ...
转于自己在公司的Blog:
http://pt.alibaba-inc.com/wp/experience_1054/dynamic_proxy_performance.html
因服务框架需要用动态代理生成客户端接口的stub,所以做了一下性能评测,
动态代理工具比较成熟的产品有:
JDK自带的,ASM,CGLIB(基于ASM包装),JAVAASSIST,
使用的版本分别为:
JDK-1.6.0_18-b07, ASM-3.3, CGLIB-2.2, JAVAASSIST-3.11.0.GA
(一) 测试结果:
数据为执行三次,每次调用一千万次代理方法的结果,测试代码后面有贴出。
(1) ...