2011-02-04 58 views
1

由于各种不幸的管理原因(预算限制等),开发人员已将我的应用程序部署到生产环境中。问题在于我没有任何生产EJB应用服务器部署的经验。也就是说,他们意识到没有成功的保证。Glassfish 3 EJB应用程序部署建议?

上下文

  • 开发服务器上Glassfish的第三版最新版本的Netbeans的运行,一台Mac机
  • 98%/ 99%的正常运行时间是确定的,没有金融/关键事务
  • 它是一个客户端/服务器EJB 3应用程序,并且当前在同一台计算机上运行的Web层,业务层和资源层。
  • 我有自由选择硬件/软件基础设施
  • 负荷估计:10个同时CONNEXIONS AVG,罕见的200个峰
  • 出站的公共数据是文本/小图片(它是iPhone客户端),入境HTTP文本只有
  • 基本维修将采取(备份,服务器重启等)

我的问题生产部署的护理:

  • 什么是必须有基础设施方面?最低系统规格等?
  • 保持Glassfish v3可以吗?
  • 我应该关注服务器的哪些配置方面?
  • 最糟糕的情况:如果我在开发过程中部署相同的软件基础架构(Netbeans/Glassfish v3),服务器能否跟上?

任何建议都是最受欢迎的。谢谢!

回答

1

对于体系结构,您可以从没有前台Web服务器的GlassFish实例(GlassFish内置一个非常强大的GlassFish实例)入手。如果您可以等待GlassFish 3.1的发布,则可以添加实例(集群或独立)并提供可伸缩性和集中管理。

GlassFish的大多数生产实例我看过运行1GB-2GB的JVM堆(-Xmx),但是如果您在内存中加载大量数据或者使用某些框架,您的里程可能会有所不同。如果你想要更好的可靠性,让它们在不同的机器上显然是一个优点。在同一台机器上有两个实例可以在一个实例失败时提供服务的连续性(但如果机器发生故障,则不提供服务)。

我建议脚本尽可能使用“asadmin”命令行工具调配资源(连接池,JDBC数据源等)和应用程序,并尽量不要在生产环境中使用NetBeans平台。

模拟负载的基准测试听起来像是一件明智的事情,试图在上线之前放在一起,这个survival guide可能会派上用场。

你没有提到数据库。是不是有一个?

+0

非常感谢JSS和Alexis MP的回答。是的,该数据库目前是一个德比数据库(资源层),但我正在考虑使用MySQL作为生产数据库。对此有何建议? – DavidD 2011-02-07 08:35:45

1

我建议如下:

  1. 不是Mac的专家,但我会说去与6GB以上内存
  2. 硬盘空间是没有问题的,这些天
  3. 不知道多少生根粉苹果处理器(双核芯片等)
  4. 我个人并没有在生产中使用GF3,但我希望它现在稳定,所以你应该没问题。

系统架构:

  1. 接收一些Web服务器(Apache或太阳web服务器)和负载均衡的所有HTTP请求与Glassfish的服务器(S)。
  2. 现在,根据您的物理(或虚拟)机器在每台机器上创建Glassfish Application Server实例。如果您只有一台机器,则创建至少2个Glassfish实例。这将有助于将一个节点放下,以便维护和继续前进。
  3. 就部署而言,请确保您停止调试日志并微调JPA日志等。
  4. 使用Ant或其他脚本部署代码并对现有代码进行备份。

我希望这将有助于启动和休息,你可以问或解决你的问题。

祝你好运。