拿什么来拯求我的小区?

好久没来J道场了。有点像个孩子,没事的时候出门跑得远远的,受伤了才想到回家。这不,又回来了:).

这里依旧亲切,只是有点伤感-----为什么“Java多线程 集群 并行模式”小区这么冷落!而且大多贴子还不属这小区的。(建议banq把那些贴子移到“开发者论坛”或别的相关小区。)

其实,我只对这个小区感兴趣。

不知道banq怎么想,我自己觉得并行,实时,集群,伸缩等,将是我们未来最主要的问题。且不说web services XX的火,ASP的死灰复燃。
单看今年美国谁最风流(eBay的盆满钵满,Google的那个得意劲....),就可以知道我们的路在何方。
也许我是一典型绿林派,我更关心什么技术能给公司带来最多的钱,或解决公司最大问题。我不想在open source打发过多时光。

“现在,单单挖掘单机的性能已不能解决问题了,再高的性能它还是一台机器,一台机器的能力总是有限。”

这句话估计每个人都明白,但国内现在真的关心这事的有几人?我做应用软件有六七年了,国内真的解决好并行计算的有几有家?且不说电信,证卷,邮局等有钱的主均是整套买进IBM等厂家的软件硬件,就是中等应用的企业应用系统不是奔Oracle就是SAP。先不说业务应用方面,单说并行计算这一关就过不了关。不敢说百分之百,甚少百分之九十九以上厂家解决不了或无意识解决这问题。

也许有人说“我们的网站,我们的QQ等不是上万级的用户在线吗?”我想明眼人一看就知,那不过是人工定期流量监测,人工分配QQ房间号的把戏。再说QQ的运算也谈不上计算,勿需会话状态复制,等技术。

Banq 的在线游戏完成了没有?能否先睹为快。另外想知道,用到cluster,Session Replication等技术了吗?

我觉得,如果Banq能把这小区做好,并在现实中给一些应用解决这方面的问题(据说有这种服务),让国内商家(虽俗确实是我们经济和科技发展的基础)真正重视并解决好并行计算能力,那将是一件功德无量的事。别的小区就让别人去做吧。

因为你的wjr名字比较好记,所以是感觉很长时间没见你了,论坛也是一个社会,人来人往,几多沉浮啊,不过,老朋友还都在。

并行,实时,集群,伸缩确实是我们将来的趋势,在Java上一直有两种争论:
甲方观点:尽量提高单机并行性能,为了达到优越的实时性,甚至舍弃了J2EE容器,直接使用Java Application赤搏上阵。然后利于操作系统如Linux的集群特性实现服务器群计算。

乙方观点:采取J2EE标准,使用J2EE容器的cluster功能,认为两台J2EE集群性能总是能超过一台甲方方案设计的性能。

我个人倾向后者,所以正在重新努力。

如果就整个应用的性能来说的话,并行和集群应该是多方面的,不仅仅是操作系统并行或者是App Server集群。

比如说数据库的OPS,App Server的Cluster,还有Server硬件的HA,都可以综合考虑。并且对于效率要求极高的模块也可以用本地C来实现,然后和Java应用整合。

没错,影响应用的性能是多方面的,但我们该做的是什么?

OPS,其实我们不会去做数据库底层的并行控制,访问锁定,这是Ellison
、Gerstner们的事,我们该做就是根据应用,做好数据分割,实例分配,其它是交给数据库厂商去做;

Server硬件的HA,现在讲究的是合作共赢,我想我们不该来做这块,这不是我们擅长的,再说Server硬件厂商一般都能提供好的方案,也可由系统集成商来作。

剩下的就是我们该做的软件,如何让我们的软件如何更好的去cluster,这从一开始设计就考虑的问题,当然单机性能也要达到一定程度。

至于谈到用C来实现,我觉得倒不必,因为计算是由几部分组成,数据库运算,商务运算,加解密,通信等组成,Java只是一部分,再者,Java本身的服务端计算能力与C也差不多,没有太多差距。我曾为了效率,到处布满JNI,效果不大。

>Java本身的服务端计算能力与C也差不多,没有太多差距,我曾为了效
>率,到处布满JNI
这句话很正确,据研究发现,如果去除一些OO编程方法,使用适当优化模式和方法,Java和C性能是差不多的,你的实践又一次证明了这种观点。

请问各位JNI的效率到底如何那?
用JNI来调用C的程序,会不会很占系统资源那?效率会不会差很多那?

不是不想搞,而是整个气候达不到呀。

有几个中国公司对这个感兴趣,又有几个公司舍得投资呢?我看呀,中国国内还达不到这种境界,没有这个土壤。

现在,只能是平时多注意,万一有机会也能顶上去。

to:befresh君,
听您这么说,您一定是满腹经伦,怀才不遇,身怀绝技,报国无门了。如果您有十足的把握,在下愿意提供一个舞台,让您施展才华。当然,你也知道,这是难以忍受失败的尝试,因为做这个,下的本将是非常大的。输了,将血本无归。如果您有足够的自信,请用这个it65@sohu.com与我联系。

其实如果大家真正的在项目中用到JNI并且那部分比较重要的话,在做并发测试监视服务器的时候应该知道jni很容易引起死锁。如果在unix或是linux下,可以监测系统进程,看看三种状态的分布情况。

java和C差不多这句话是不对的,但是要有前题,如果java都是中间代码的话,要慢很多,但是sun做了很多优化,比如jit,也就是大家用的有些不全是中间代码,这还和GC的策略有关,比如IBM的就是快到可用内存的额度再做,但是sun到可用内存的1/2--2/3就做。影响性能的因素太多了,

performance turning更多的取决于你对java,j2ee的理解和工作经验。

有关系统集群和应用集群的问题不知大家有没有关注过,系统集群如果是
HA的话,这个是不增加性能的,是增加稳定性的。如果是hpc的话,又和集群的搭建策略有关。这个问题太大。现在一般不花钱就在用的就是lvs,可这个也只实现了3种方式和8种策略。而且基于集群的很多技术都没有解决好,比如集群数据库,当然,oracle是解决了的。及基于内容的Web服务器的改写。

但一般应用集群是没有系统集群好的,在网络的层次上也可以推测到。

看看BEA里的集群设置就知道它的集群实现的是多么的粗糙。并且j2ee有些组件是不支持集群的比如JMS的里面的一些设置。EJB的home接口是支持的。但可读写的Entity Bean的实现是不让复制的,因为数据库的一致性。
有的接口还要router class。

j2ee在这方面还有很长的路要走。

出于学习的目的,经常来Banq这里看看。有的能听懂,有的不能听懂。
看到这个问题,正好有一点疑问希望参与讨论的各位能帮我解惑。我看到在银行和电信以及电力等行业的一些解决方案。关键业务都使用交易服务器IBM的CICS或者是BEA的Tuxedo等等,用C来编程序。当然并不全是因为要集成旧的应用而采取这种策略,很大程度上是因为并发量以及性能等原因。J2EE也是构架的一部分,有点象一个团队里的非核心程序员,承担这一些看起来不重要的任务。大家谈JAVA和C的效率等,不知道和我提出的问题有没有关联?:)

》 有几个中国公司对这个感兴趣,又有几个公司舍得投资呢?
》我看呀,中国国内还达不到这种境界,没有这个土壤。

》现在,只能是平时多注意,万一有机会也能顶上去。

机会喜欢有准备的人。

我还不很了解国内比较规范的公司作得怎么样。我说说我四个
月前还在作的欧洲空间局一个项目里天天接触的现实:

语言:纯JAVA
数据库 OO(VERSANT)
目标数据量:很多TB
目标运行效率:与C或FORTRAN相当
开发方式:incremental releases, daily builds, automatic testing
。。。几乎所有你听到过的有关java, oo, RUP 开发模式等好东西都是
现实。项目已经作了几年,进展顺利。

现在国家天文台为我国的探月项目作地面系统。我希望能实现
与欧洲那边接近的水平。虽然我们的进度很紧,大概不能象欧洲
那边一样每一步都理性地思考,但我们和私营公司比少了不少在盈利上
的短视,而且比较有经费.参见我们的招聘启示

http://www.bao.ac.cn/zhaopin/zhaopin_tanyue.htm

今天刚注册就在jdon贴了两次广告请原谅。跟的原贴也很老,但希望
能引来有意义的讨论。

可以学学国外,做个 Client 分发给别人下载,参与你的项目运算,当然 Server 你自己解决