解惑

解己之惑,解人之惑

日:2009年5月21日

无状态化

越来越感觉各种系统在构架的时候进行了无状态化,因为在大规模系统中,要更好的进行负载均衡以及集群,无状态的服务是最好的选择,因为每个请求都是独立的不依赖上下文的,任何一个服务节点的崩溃都不会影响整个系统,而且要增加系统的负载能力也很容易,增加更多的服务节点就行了。从GAE默认不包含Session我们就可以看到一些这样做的好处。而且Context或者Session之类的东西也比较好弄,也作为一个服务,根据某个UUID或者session id之类的东西就可以进行存取,如果某些服务真的需要session,那么可以到session服务取。但是这样做会导致session的那个服务成为系统的瓶颈和薄弱点,也会导致那部分的负载均衡和HA更难达到。结合客户端的RIA倾向,更多的Session和Context保存在客户端,利用客户端框架在发起请求的时候把需要的内容发送给服务器端。

ZK国际化的原型

昨天说了ZK的国际化做得不够好,今天稍微试了下,发现昨天提到的方案是可行的,创建一个Initiator,自动的把文本替换为国际化的内容:
<?init class="xxx.I18nBinderInit"?>
<toolbarbutton label="button.add" image="../images/add.png" onClick="userListWindow.onAdd()"/>

这个只是原型,现在可能还不能处理所有的组件类型,可以简单的修改下变成通用的解决方案:
增加一个Property文件,里面添加需要处理的组件类型以及需要处理的属性,然后读取这个配置,如果谁觉得不够可以在classpath中放置一个同名的配置文件进行定制。
源代码:

阅读全文

© 2025 解惑

本主题由Anders Noren提供向上 ↑