| Subcribe via RSS

sequoia简介

10月 31st, 2007 | No Comments | Posted in 方案

sequoia是一个开源的数据库集群中间件,它允许任何JAVA程序(独立的JAVA应用程序,EJB容器,servlet等)通过JDBC驱动透明的访问数据库集群。

sequoia带来了什么?

如果出现下面情况,可以考虑使用sequoia:

首先,你有一个java应用或基于java的应用服务器要访问一个或几个数据库。并且数据库已经成为你的应用的瓶颈或者单点故障,或者两者都是。

注意:如果你使用的不是java,那么可以看看carbo这个项目,它提供了使用sequoia的C++和Perl的扩展。

sequoia可以帮你解决下面问题:

1. 高性能扩展:通过增加数据库节点,在所有这些节点间进行负载均衡。

2. 数据库层的高可用:sequoia允许数据库崩溃,它采用数据复制技术来进行容错。

3. 性能提升:sequoia通过细粒度的查询缓存和透明连接池来提升性能。

4. sql通信日志:sequoia提供了sql通信日志来进行性能监控和分析。

5. 提供了多种数据库引擎的支持。

sequoia是怎么工作的?

要使用sequoia,你不需要对你的客户端程序,应用服务器或者数据库服务器做任何修改。你只需要确保所有的数据库访问都是通过sequoia执行就可以了。

sequoia实现了廉价冗余数据库阵列(Redundant Array of Inexpensive Databases,RAIDb)的概念,这种数据库是分布式的,sequoia在节点之间进行数据复制,并在这些节点间进行查询时的负载均衡。

sequoia为客户端提供了一个通用的jdbc驱动。这个驱动把客户端的sql请求转发到sequoia控制器上,然后控制器把请求发给数据库集群(读是负载均衡,写是进行广播)。

sequoia的架构是开放的,允许你定制自己的请求调度器、负载均衡器、连接管理器、缓存策略等等。

关于sequoia组件的更多信息,请参考 sequoia架构 一章。

sequoia可以被用于任何提供了jdbc驱动的关系数据库。也就是说,几乎所有的开源和商业数据库都可以支持。sequoia可以创建任何配置的数据库集群,在这个集群中你可以混合使用多种数据库。

关于sequoia部署的更多信息,请参考 sequoia部署模型 一章。

相关文章:
Tags: , , , , , ,

同时启动多个jboss需要修改的端口

10月 31st, 2007 | No Comments | Posted in 心得

此方法适用于jboss4.x

$JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/server.xml 中所有端口
$JBOSS_HOME/server/default/deploy/dynclassloader-service.xml:      <attribute name=”Port”>8083</attribute>
$JBOSS_HOME/server/default/deploy/invokers-service.xml:      <attribute name=”RMIObjectPort”>4444</attribute>
$JBOSS_HOME/server/default/deploy/invokers-service.xml:      <attribute name=”ServerBindPort”>4445</attribute>
$JBOSS_HOME/server/default/deploy/naming-service.xml:      <attribute name=”Port”>1199</attribute>
$JBOSS_HOME/server/default/deploy/naming-service.xml:      <attribute name=”RmiPort”>1198</attribute>

相关文章:
Tags:

Groovy学习之资料篇

10月 23rd, 2007 | No Comments | Posted in 资料

Groovy 官方网站,大部分问题看这里的文档都可以搞定了,从入门到精通在这里都可以完成。

PLEAC-Groovy 大量的代码示例,是Perl CookBook的一个Groovy版本 。

Groovy Tutorial 非常好的一个介绍Groovy的ppt,可以快速的对groovy有一个总体的了解,可以看作是Groovy In Action 的一个精华总结。

实战Groovy系列 比较老的资料,不过可以通过这些了解一下Groovy的实际用途。

Groovy in Action ,经典书籍,内容比较新,自己去eMule上去下载吧。

Groovy Programming ,看了一下目录,都是比较基础的东西,可以在eMule上下载到。现在中文版也出版了,叫《groovy 入门经典》。我感觉这本书也确实只适合入门,讲得不算深入。

中文资料:

朝花夕拾——Groovy & Grails 山风小子撰写或汇总的一些学习资料,大部分是中文的。山风小子为Groovy在中国的推广做了很多工作,致敬。

Groovy 学习笔记 ,中文pdf版,可以在百度上很容易搜到。

Groovy用户指南系列 非常不错的一套中文资料,可惜写成的时间太早,是2004年写的,现在groovy的语法有了一些变化。导致这个本来最适合初学者入门的资料却有些误导作用,因此已经不适合初学者。作者要是能更新一下就好了。

相关文章:
Tags: ,

使用Groovy自动生成网站

10月 21st, 2007 | No Comments | Posted in 心得

周末忽然心血来潮,决定重建一下bestunix,为了不再出安全问题,这次决定完全使用静态页面。

基本思路是这样的:

  1. 使用crontab定期从space上面下载feed.rss
  2. 使用groovy脚本解析feed.rss,生成静态页面
  3. 每次生成的页面覆盖以前的页面。

看起来很简单,但是因为以前没有用过groovy,而且groovy又没有好的ide工具,完全使用ultraEdit来做的,大概花了一天半时间。

基本上写程序半天,做页面半天,配置服务器半天(jdk,groovy,apache)。

通过这个小东西,基本上理解groovy的闭包了,另外对groovy的优点也有了进一步认识,进行io操作非常方便,语法习惯了以后写起来也很爽,虽然使用ultraEdit,但因为基本上没有重复的代码,ide生成代码的功能也显得不那么重要。缺点也很明显,没有好用的ide,调试程序非常麻烦,比js难调多了。另外就是性能太差,慢得要死,当工具来使还行,大项目上这东西还是不敢用。

做页面本身不是我的长项,花半天也是可以理解的。

配置服务器之所以要这么长时间,主要是因为编码的问题。通过iconv转换程序代码,设置apache默认编码等若干次尝试后,终于不再出乱码了。另外一个要注意的地方是groovy在linux下必须设置classpath,否则会找不到类。

现在设好以后,每次我在msn space上写了东西,bestunix上就会生成相应的静态页面了,呵呵,还是很有成就感的。

10月22日更新:

今天整理了一下程序,主要做了下面几点

  1. 程序功能分工更清晰,文件由原来的两个急剧增加到6个
  2. 增加了配置文件,适应性更好
  3. 程序和模板,生成的网站可以分离了
  4. 增加了RSS输出
  5. 增加了自动生成sitemap
  6. 修改了原来日期显示的问题

今天用了一下groovy的eclipse插件,还不错,有部分的代码自动完成功能和部分的语法检查,可以进行很简单的调试。另外一个感觉就是非常慢。

11月6日更新

  1. 重构了代码,使功能分工更清晰
  2. 增加了一个DataFactory,所有磁盘资源都只需要读取一次,减少了因为重复读取数据造成的性能问题
  3. 增加了tag的功能,使得导航更方便
  4. 解决了非utf-8环境下测试的问题
  5. 其他地方的性能也做了一些优化
  6. 网页模板改用绝对链接,这样模板文件更容易管理
  7. 程序与模板,生成的完全分离,可以在Config中指定。

11月8日更新

  1. 增加了taglist页

11月11日更新

  1. 增加了站内搜索,使用google ajax api,折腾了半天,还算好用
  2. 对上面的一级栏目做了调整,不再放分类了
  3. 修改了rss中一个链接错误

11月12日更新

  1. 终于实现分页了,确实有点麻烦,自己写了个分页类。
  2. 对网站的整体样式做了一些调整,使用大字体了,这样看着不会那么费劲。
  3. 把源代码放到 google code 上了。

TODO:

  1. 合并rss.因为网站上的rss只输出最近的几十条。内容多了就会丢失以前的数据。需要写个程序来增量合并更新的内容。
  2. 自动生成对应的繁体中文网站
  3. 根据tag自动生成专题
  4. 生成pdf

相关文章:
Tags: ,

一些大型网站的架构信息

10月 12th, 2007 | No Comments | Posted in 方案

相关文章:
Tags:

Hibernate 和 memcached 的集成问题

10月 11th, 2007 | No Comments | Posted in 方案

Hibernate 和 memcached 的集成问题,一个分布式cache的实现示例,解决了hibernate跟memcached集成时可能碰到的一些问题。用这两个东西做分布式cache,思路很多人都知道,但是实际做出来的又有几个人呢,刘冬真是个好同志。

剩下的问题就是如何解决memcached的ha和lb,这个问题似乎比较遥远,记一下先。

相关文章:
Tags: , , , , ,

不测试没有发言权,jdk中正则表达式的效率问题

10月 11th, 2007 | No Comments | Posted in 心得

今天帮同事写了个用正则表达式进行html中部分标签替换的方法。因为这个方法使用频率非常高,担心会有效率问题,看到网上也有很多人说jdk的正则表达式效率极差,简直没法用。

后来又用oro中的perl5写了一个同样的方法(他们以前一直用这个),做了10万次替换来比较,结果jdk版的速度是oro的两倍。

恩,结论当然就是jdk正则表达式效率尚可,没有传说中那么差。

有可能jdk5.0对这部分的性能有所改善吧。

相关文章:
Tags: , ,

几篇有用的文章

10月 11th, 2007 | No Comments | Posted in 资料

apache rotatelogs的时区问题 ,以前我也碰到过,不过当时没有记录,既然有人写了,保存下来。

JDK 5/6.0中一个压缩jar文件大小的工具 ,压缩效果看起来不错,对于webstart应用尤其有用。

截取html文档时避免标签被截断,以前感觉无解,现在刘冬给出了解决方案。最近准备自己写个groovy版的.

相关文章:
Tags: , , ,

tomcat6的新特性

10月 11th, 2007 | No Comments | Posted in 新知
  1. 实现了jsp2.1和servlet 2.5规范,支持EL 2.1;
  2. 内存使用优化;
  3. 优化了http IO connector的性能.
  4. 增加了http NIO connector,对于大量并发网站可以显著提高性能;
  5. 更好的支持Etag;
  6. 完全重构了cluster;
  7. 对大部分connector增加了keepAliveTimeout属性;
  8. 更多信息还是去官方网站看吧。

附: 从Tomcat 5.5.x到Tomcat 6.0的迁移

相关文章:
Tags: ,

NIO学习

10月 10th, 2007 | No Comments | Posted in 资料

参考资料:

  1. NIO入门
  2. Servlet API 和 NIO: 最终组合在一起
  3. Merlin 给 Java 平台带来了非阻塞 I/O
  4. JDK中的NIO
  5. 浅谈Tomcat6使用NIO后对ThreadLocal的影响

相关文章:
Tags: , ,