小编vik*_*kas的帖子

石英性能

似乎Quartz调度程序每秒可以运行的作业数量有限制.在我们的场景中,我们每秒大约有20个作业以24x7的速度启动,而石英每秒可以运行多达10个作业(有100个石英线程和100个数据库连接池大小用于JDBC支持的JobStore),但是,当我们将它增加到20个时每秒工作,石英变得非常慢,其触发的工作与他们的实际预定时间相比非常晚,造成许多失火并最终显着降低系统的整体性能.一个有趣的事实是,JobExecutionContext.getScheduledFireTime().getTime()对于这样的延迟触发,在他们的安排时间之后变为10-20甚至更多分钟.

石英调度程序每秒可运行多少个作业而不影响作业的预定时间,这些负载的最佳石英线数应该是多少?

或者我在这里遗漏了什么?

关于我们想要实现的目标的细节:

我们有近10k项目(分为2个或更多类别,在目前情况下我们有2个类别),我们需要在给定频率下进行一些处理,例如15,30,60 ...分钟,这些项目应在该频率内处理每分钟给定油门.例如,假设60分钟频率,每个类别的5k项目应该以每分钟500项的节流进行处理.因此,理想情况下,这些物品应在一天中每小时的前10(5000/500)分钟内处理,每分钟有500件待处理的物品,这些物品在每分钟的每一秒均匀分布,因此我们将大约8-一个类别每秒9项.

现在为了实现这一目标,我们使用Quartz作为调度程序来触发处理这些项目的作业.但是,我们不会在Job.execute方法中处理每个项目,因为每个项目处理需要5-50秒(平均到30秒),这涉及webservice调用.我们宁愿为JMS队列上的每个项目处理推送消息,而单独的服务器机器处理这些作业.我注意到Job.execute方法花费的时间不超过30毫秒.

服务器细节:

Solaris Sparc 64位服务器,带有8/16内核/线程cpu,用于具有16GB RAM的调度程序,我们在调度程序集群中有两台这样的机器.

java quartz-scheduler

18
推荐指数
2
解决办法
2万
查看次数

使用MySQL的Java EE Web应用程序的Amazon Cloud配置

在我的工作中,我需要将一些现有的Enterprise Java应用程序移动到AWS.我在aws.amazon.com上浏览了很多页面,并且还搜索了足够的内容.另外,我试图在stackoverflow上查看所有相关问题.所有这些都使许多事情变得清晰,但是,我仍然有些困惑.这是我们的应用程序结构:

  1. 它是一个基于Spring的应用程序,它使用Spring MVC作为表示层,使用普通的Java接口和类来处理业务和数据逻辑.
  2. MySQL用于持久化.

因此,应用程序架构非常简单.但是,问题是我们需要部署此应用程序的许多实例.此计数目前为15,可以超过30.还有一点是所有这些实例共享一个公共数据库.

现在,我们需要通过迁移到AWS来实现:

  1. 应用程序的容错能力更高.最近我们在专用托管中遇到服务器/电源故障导致几个小时的停机时间.
  2. 在响应时间和吞吐量方面,所有应用程序实例的性能更高.
  3. MySQL的容错能力更强.由于某些硬件(硬盘驱动器)导致MySQL意外停止,最近我们的一台服务器上的应用程序实例出现故障.硬盘驱动器上的整个文件系统只读,导致该服务器上托管的应用程序实例出现故障.
  4. 显然降低了基础架构管理的总成本和开销.

至于我现在能够理解AWS基础设施,以下是我们在AWS中需要的设置:

  1. 4个实例,每个托管大约10个应用程序实例,基于EBS的LINUX AMI,其上安装了Tomcat和MySQL.
  2. 我猜我们还需要1个实例来容错,这4个实例中的每个实例总共有8个实例.
  3. 所有服务器实例都有大约160GB的EBS.
  4. 4弹性IP
  5. 4个弹性负载均衡器
  6. 快照等其他东西

现在我的问题是:

  1. 我是否真的需要为每个主服务器实例提供额外的服务器实例(用于容错),考虑到AWS自动备份EBS的面孔,他们会在硬件出现故障的情况下为新EBS提供相同的数据?

  2. 在上述场景中,如何在所有服务器实例(4x2)之间共享数据库?我看到的一个选项是在那些服务器实例中实现MySQL集群.可以说,MySQL集群将包含1个管理节点,3个SQL节点和4个数据节点.但是,在这种情况下,维护集群对我们来说是一个额外的开销,这可能不被接受,因为我们希望摆脱基础架构管理.

  3. 我是否需要为数据库安装RDS并从所有服务器端口(4x2)中删除MySQL实例?如果是,我还需要购买除EC2实例之外的RDS实例(我认为,如果我需要为RDS购买单独的实例,那么总体基础设施的成本将至少增加75%.)或者RDS实例也提供计算单元用于应用程序开发,从而减少应用程序部署的实例总数?

  4. 在RDS实施的情况下,是否真的需要基于EBS的EC2实例?如果我们可以了解如何从具有RDS实例的E​​C2实例中删除EBS要求,我们可以降低总成本.

任何帮助将不胜感激,如果我不清楚指出我的问题需要更多的澄清,请告诉我.

amazon-ec2 amazon-ebs java-ee amazon-web-services amazon-rds

5
推荐指数
1
解决办法
1185
查看次数

hive节省服务器与蜂巢和火花分布之间的区别

使用以下两个命令之一运行配置单元服务器之间有什么区别: -

  1. hive --service hiveserver2
  2. 运行蜂巢节俭服务器 spark/sbin$ ./start-thriftserver.sh

他们在不同的端口上听吗?

我应该使用哪一个在我的Java类中使用Apache Hive JDBC驱动程序建立JDBC连接?

java hadoop hive thrift jdbc

5
推荐指数
1
解决办法
4212
查看次数

在Maven项目中使用HiveContext

我使用Maven构建Spark-1.2.1以使用以下命令启用Hive支持: mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -DskipTests clean package

这导致在文件/spark-1.2.1/core/target/scala-2.10/classes夹中生成一些类文件

现在我如何在我的Eclipse + Maven项目中使用这个新构建的Spark ?我想HiveContext在Eclipse中使用Spark-SQL的类.

eclipse scala maven apache-spark apache-spark-sql

3
推荐指数
1
解决办法
9721
查看次数