`
heartsong
  • 浏览: 11512 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

求教Java后台数据处理程序集群解决方案

阅读更多
    最近在我做一个Java后台数据处理方面的项目,这个程序要处理的数据非常大,大约是每秒100000条(高峰期)的样子,而且这个数据量将在不久的将来扩充到3到10倍。项目组里有人提出用集群的方法来提高处理的速度,他的想法是这样的:

    每个服务器的功能是一样,但处理的数据是不同的,因为所有要处理的数据都有一个相同的ID字段。即有一个服务器用来分配数据,这样每个服务器都按照分配规则各自处理各自的数据。但要实现起来,我考虑了有以下一些问题:
1. 比如我们有5台服务器,开始确认有一台用于做分配器的工作(同时也做正常处理数据的工作),这台分配器上就要负责对其他4台服务器状态的维护,当发现有其他的服务器不响应的时候,即改变分配的原则,但这样势必要经常轮询其他服务器,是否会造成网络负担?
2. 假如现在这台分配器挂了,其他4台服务器应该有一台服务器会继续担负起分配器的工作,如何实现这种功能?
3. 数据分配的原则,因为这些数据的ID是动态进行变化的,即假定这次分配好了某台服务器处理某些ID的数据,但下次就要重要进行分配,而分配器就要额外连接数据库却获取每次要分配的数据情况,在数据量非常大,而有些任务又间隔比较短的情况下,这样做确实不是好方法。

    以上就是我分析出来的问题,思索、查询良久,还没有想到如何去解决。不知道在这方面的集群有没有比较成熟的解决方案或者框架?请大家看看有什么好方法来解决这方面的问题?非常感谢。
分享到:
评论
6 楼 baibai326 2007-09-26  
模拟集线器?

或者说 分配器 不负责维护各节点状态,只提供唯一的任务数据,使用 HTTP 协议 让各个节点自行来 分配器 请求数据,各节点再通知 分配器 任务完成。这样就不需要维护各个节点了,而是按需分配任务。

似乎 分配器 还是用 webserver 来做比较合适,各个处理数据的节点用普通java程序就可以了。

不过 这里 webserver 似乎是数据流的瓶颈。
5 楼 heartsong 2007-09-26  
collin000 写道
你项目应该是webserver集群吧, 以减小webserver压力, 据我所知道的:

1 应该是部署多个webserver(应用服务器), 访问同样的数据, 而不是不同的数据, 以达到提高速度, 减缓webserver端的压力. 恐怕会使网络造成负担.

2 如何分担访问量由webserver(应用服务器)容器实现, 比如resin要购买许可证, jboss好象是免费的, 至于其他应用服务器还不清楚. 如果其中一个webserver挂了, 那它所承担的访问量会被其他webserver自动承担, 用户丝毫不会感觉到.(理论比较完美, 但我们公司测的时候发现前后会有一定时间差).

如果是数据库分布, 那就要借助数据库产品的高级功能甚至是硬件来实现了, 目前还不懂.


谢谢关注。

这个项目不是Webserver应用,仅仅是一个java程序,用于在后台处理数据,没有web方面的应用。

如果是每个server上部署的功能不一样,而处理的数据是一样的话,我可能会考虑用EJB来实现分布式系统,但我们这个系统不是这样的,你所说的应该是多指令单数据的集群,而我想实现的可以理解为单指令多数据吧。
4 楼 heartsong 2007-09-26  
可以理解源数据是这样生成的:

很多数据采集点上布署了agent,这些agent程序负责将数据采集并放在一起,目前这些agent是由c++去实现的,而且目前我们已经部署了将近300多个agent
3 楼 collin000 2007-09-26  
你项目应该是webserver集群吧, 以减小webserver压力, 据我所知道的:

1 应该是部署多个webserver(应用服务器), 访问同样的数据, 而不是不同的数据, 以提高速度.恐怕会使网络造成负担.

2 如何分担访问量由webserver(应用服务器)容器实现, 比如resin要购买许可证, jboss好象是免费的, 至于其他应用服务器还不清楚. 如果其中一个webserver挂了, 那它所承担的访问量会被其他webserver自动承担, 用户丝毫不会感觉到.(理论比较完美, 但我们公司测的时候发现前后会有一定时间差).

如果是数据库分布, 那就要借助数据库产品的高级功能甚至是硬件来实现了, 目前还不懂.
2 楼 heartsong 2007-09-26  
谢谢LS。

主要是每个server处理(每次取50000条吧)过程是比较慢的,我在这里先认定是20秒左右吧,而客户要求全部数据处理完成的速度比较高,如果只有一台server的话,全部数据处理完成时间会超过客户所期望的时间。这也是产生集群处理想法的原因。

至于数据库源数据的生成,暂时我们的数据库也达不到这个要求,但是我们可以不通过数据库来获取数据,那样的话,源数据生成的速度是相当快的。
1 楼 pikachu 2007-09-26  
这个--!
这种方案只有数据库处理的速度远远大于程序处理的速度才有意义。
你们数据库能达到这种水平了?

不过LZ的文章有说是用数据库么??

相关推荐

    java考试题 求教

    根据题目要求,我们将详细解析如何实现从文件读取数据到员工对象中,并对员工对象属性进行比较和修改的过程。此过程主要包括以下四个步骤:定义员工类、读取文件内容、处理员工信息以及输出结果。 ### 一、定义员工...

    对JAVA程序设计的感想.pdf

    线程机制使得Java程序能够并行处理任务,提高效率,如在文件自动保存功能中,可以利用Timer类的schedule方法实现定时操作。 Java程序设计不仅涉及编程技术,还涉及到软件工程的实践,如良好的代码组织和类的设计。...

    Java语言程序设计自学指导书.doc

    "Java语言程序设计自学指导书" 本资源为一份关于 Java 语言程序设计的自学指导书,旨在帮助计算机相关专业的学生学习和掌握 Java 语言的基础理论和实践技能。该指导书涵盖了 Java 语言的历史发展、基本概念、语法...

    JAVA版《魔塔24层》

    作为一个java初学者,开发者通过实践创作了一个完整的24层迷宫塔游戏,旨在锻炼自己的编程技能,并向同行求教。源码的公开也为我们提供了一个学习和研究的宝贵资源。 首先,我们要理解Java Applet。Java Applet是一...

    西农Java实习,实习五到实习六

    每个实验的ZIP文件(如实验5.zip、ʵϰ6.zip)很可能包含了源代码、文档说明、测试数据和解决方案。学生可以通过查看这些文件来学习和参考,同时也可自行编写代码解决问题,以提高自己的编程能力。需要注意的是,...

    GNS3-各式故障解决方案

    10. **学习资源**:GNS3社区和在线论坛提供了丰富的教程和讨论,用户可以在其中寻找类似问题的解决方案,或向其他经验丰富的用户求教。 总之,"GNS3-各式故障解决方案"这个资料集为用户提供了丰富的实践指导,无论...

    java开发的简历模板[参考].pdf

    使用JDBC和Servlet联合开发,通过DAO(Data Access Object)模式规范数据操作,Servlet作为控制层处理数据交换。在项目中,她解决了文本编辑器嵌套、浏览器兼容性、URL参数传递等问题,深化了对JDBC和Servlet的理解...

    Java用eclipse插件计算器

    用eclipse插件制作的java计算器,基本功能都能实现,含jar,适合java初学者,需改进处求教

    java注册表修改ie主页

    刚学java做的一个通过注册表修改ie默认主页,不过会被杀毒拦截,怎么过杀毒拦截,求教

    java词汇表

    这是我辛辛苦苦整理出来的java词汇表啊,大家可以参考一下哦,么么哒,新手求教了

    extjs文件浏览框问题求教

    标题中的“extjs文件浏览框问题求教”表明这是一个关于ExtJS框架中文件选择或浏览功能的编程问题。ExtJS是一个流行的JavaScript库,用于构建富客户端应用程序,它提供了丰富的组件库,包括文件浏览框(FileBrowser)...

    我求教高手的VB毕业设计

    【标题】:“我求教高手的VB毕业设计” 在VB(Visual Basic)中进行数据库操作是常见的编程任务,尤其是在毕业设计项目中。VB提供了一种简单的方式来与数据库交互,特别是像Access这样的桌面数据库管理系统。当你在...

    Big_Data_Analytics_with_Spark_and_Hadoop-Packt_Publishing2016

    书中可能涵盖了Spark的基本组件,如Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习库)和GraphX(图计算),以及如何使用Scala、Java或Python API来编写Spark程序。 Hadoop则是分布式存储和计算的基础...

    求教模糊Ts辨识里对于系统结构辨识的确定和归一化数据-一些文献.rar

    求教模糊Ts辨识里对于系统结构辨识的确定和归一化数据-一些文献.rar 是不是只有试验法呢,根据局部动态特性,估计大致的系统阶数,然后确定,输入输出的阶数??还是用什么工具箱,我看到有些文献说,用穷尽式搜索...

    接口老是变!2023年微信小程序最新获取头像onChooseAvatar的方法

    小弟虚心求教,大神勿喷请多多指点赐教; 1通过onChooseAvatar绑定button事件点击获取头像返回临时头像链接; 1.1分别定义了全局和缓存了头像临时Url(因为毕竟是临时链接,后续可以传服务器生成永久链接,这样就...

    公式求教共4页.pdf.zip

    很抱歉,根据您提供的信息,"公式求教共4页.pdf.zip"似乎是一个包含四页公式教学内容的PDF文档的压缩文件,而"赚钱项目"可能是压缩包中的另一个文件或者是一个误输入。然而,没有实际的文件内容,我无法提供具体的IT...

    年度工作总结及2021年工作计划-(JAVA开发工程师2).docx

    在遇到技术难题时,他积极向同事求教,记录问题和解决方案,这有助于提高他的技术理解和问题解决能力。 在过去的一年中,工程师在思想观念、学习和团队合作方面都有所进步。他利用业余时间自学新技术并与同事交流,...

    求教C++等等一系列的问题

    4. **控制结构**:学会使用if语句、switch语句、循环结构(for/while/do-while)来控制程序流程。 5. **函数**:理解函数定义、调用过程;掌握参数传递方式(值传递、引用传递);了解递归函数的概念及其应用。 ### ...

Global site tag (gtag.js) - Google Analytics