JiveJdon Community Forums
在线49人   首页   主题总表   培训咨询   精华   查搜   注册    登陆
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 6 回复 / 1
 发表新帖子   回复该主题贴
greatfeel

悄悄话
发表文章: 3
注册时间: 2003年09月30日 09:52
JPetStore架构的疑问 2004年09月16日 16:10 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 singleton模式(35)      架构(98)     
研究ibatis的JPetStore有一段时间了,公司里也采取
类似的架构做过项目,我觉得是一个非常实用的轻量级
构架,但我觉得似乎有两个问题:
1)service模式,所有的逻辑包装在Service类中,
而Service的实例采用singleton模式获得,不知道
在多用户多并发量的情况下是否适用,比如,一个
较为费时的service的操作,如果一个用户在操作进行
中,另外一个用户同样调用该service实例的该操作,
是不是会阻塞住呢?这里面有多线程机制吗(似乎是
没有提供)。
2)不知道各位有没有用过JPetStore对context的封装
ActionContext类,似乎在多用户同时并发的情况下
sessoin会互相混淆,这个用户会取到其他用户的session.

不知道各位有没有对这两个问题考虑过,我的观点正确否,
有什么办法改进。

banq

悄悄话
发表文章: 9290
注册时间: 2002年08月03日 17:08
Re: JPetStore架构的疑问 2004年09月20日 17:13 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
1.service模式中如果使用事务机制操作数据库,将会存在性能瓶颈,如果只是读取,则不会。但是我个人不建议使用Singleton模式,现在可以用IOC模式替代,你可以使用Spring的Pool池拦截器来实现Service的多实例化,这是稳妥的好方式。


2.ActionContext我不喜欢,因为是客户端每次请求都要生成,这在大访问量情况下是非常可怕的。

我个人认为:JPetstore是一个无伸缩性、无性能考量的小网站应用系统,它的架构没有特别之处,吸引人的地方是它的 iBATIS 。
banq

悄悄话
发表文章: 9290
注册时间: 2002年08月03日 17:08
Re: JPetStore架构的疑问 2004年09月20日 17:30 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
TSS的讨论不错,相信你看过:

http://www.theserverside.com/news/thread.tss?thread_id=14243
anonymous

悄悄话
发表文章: 0
注册时间:
Re: JPetStore架构的疑问 2004年10月10日 13:51 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>>但是我个人不建议使用Singleton模式,现在可以用IOC模式替代

Singleton模式的“意图”写着:“用于保证该类型只创建全局唯一的对象。”IoC模式的“意图”写着:“用于在对象之外管理对象之间的依赖关系。”请问“用IOC模式替代Singleton模式”应该如何做?请指教。

>>我个人认为:JPetstore是一个无伸缩性、无性能考量的小网站应用系统,它的架构没有特别之处,吸引人的地方是它的 iBATIS 。

可否请详细介绍一下,JPetstore“无伸缩性、无性能考量”体现在哪里?
anlace

悄悄话
发表文章: 1
注册时间: 2004年10月15日 15:02
Re: JPetStore架构的疑问 2004年10月15日 15:08 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
JPetStore是个相当简洁的示例,只是它的Service层可扩展性和事务的可管理性不够强,有兴趣的话看看MiniSOA改写的JpetStore http://210.52.149.164:10000/alix/
anonymous

悄悄话
发表文章: 0
注册时间:
Re: JPetStore架构的疑问 2004年10月16日 20:43 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
> 1)service模式,所有的逻辑包装在Service类中,
> 而Service的实例采用singleton模式获得,不知道
> 在多用户多并发量的情况下是否适用,比如,一个
> 较为费时的service的操作,如果一个用户在操作进行
> 中,另外一个用户同样调用该service实例的该操作,
> 是不是会阻塞住呢?这里面有多线程机制吗(似乎是
> 没有提供)。


public class MyClass implements Runnable {
public void run() {
while(true) { }
}
}


这是世界上最费时的操作了吧?它需要的时间是……无穷大。那么下面这段代码会不会阻塞住呢?


for(int i = 0; i < 10; i++) {
new Thread(new MyClass()).start;
}


稍微动动脑筋就知道答案了。另外,多线程机制需要你来提供吗?那我们还要应用服务器来干什么呢?
anonymous

悄悄话
发表文章: 0
注册时间:
Re: JPetStore架构的疑问 2004年10月16日 20:46 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
> 1.service模式中如果使用事务机制操作数据库,将会存在性?> 瓶颈,如果只是读取,则不会。但是我个人不建议使用Single
> on模式,现在可以用IOC模式替代,你可以使用Spring的Pool?> 拦截器来实现Service的多实例化,这是稳妥的好方式。
>

我希望banq看看我前面的一个回复。如果business service都是stateless、immutable的POJO,为什么要费力不讨好的去搞什么多实例化?Singleton为什么不好?希望banq能明确解开我这个疑惑。
这个主题有 6 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam