Tag: cloud

云是否已为企业Java Web应用程序做好准备? 寻求Java EE托管建议

向周围所有聪明人致以问候! 我想问一下,将Java企业Web应用程序部署到Amazon EC2这样的云是否可行或者是个好主意。 更准确地说,我正在寻找一个应用程序的基础架构选项,该应用程序将处理数百个用户,但是CPU和内存密集型会话都很长。 我正在考虑专用服务器,虚拟专用服务器(VPS)和EC2。 我注意到有一个名为JBoss Cloud的项目,所以人们正在努力实现这样的部署,另一方面它似乎还不成熟,我不确定云是否已经准备好进行这种应用程序,与Twitter等典型的基于云的应用程序不同。 您会建议将其部署到云端吗? 优缺点都有什么? 该应用程序是一个Java EE 5 Web应用程序,其主要function是使用户能够通过组合可用的部件来组成他们自己的定制产品。 它使用无状态和有状态会话bean和JPA将实体持久化到RDBMS,并通过Web服务从公司的库存系统中获取有关Parts的信息。 除了外部用户之外,它还被少数内部用户使用,他们通过公司的LDAP进行身份validation。 该应用程序应该处理大约300-400个并发用户构建他们的产品,并且应该具有合理的可扩展性和可用性,尽管这些质量在这个阶段仅具有中等重要性。 我提出了一个由防火墙(FW)和负载平衡器组成的架构,支持粘性会话和https(在云端,这将被EC2的Elastic Load Balancing服务和应用服务器上的FW取代,在物理架构中,负载 – 平衡器将是一个硬件),然后两个物理集群应用程序服务器与Web服务器结合(如果一个失败,用户不会丢失他/她的长期构建产品),最后是数据库服务器。 数据库服务器需要一个从备份实例,如果失败则可以替换主实例。 这应该提供合理的可用性和容错性,并且只要单个RDBMS可以保持负载就可以提供良好的可伸缩性,这应该可以使用很长一段时间,因为大多数操作都是使用有状态bean在内存中完成的,并且只是偶尔存储或从数据库检索,数据量也很低。 一个有问题的部分可能是对远程库存系统webservice的依赖,但是在应用程序中对其输出的良好缓存也应该没问题。 不幸的是,对于几百个用户所需的“普通Java EE应用程序”,我只是模糊地想到了系统资源(内存大小,CPU /内核的数量和速度)。 基于实际亚马逊产品的粗略且毫无根据的估计是1.7GB和单核,2核“现代CPU”,速度大约2.5GHz(高CPU中型实例)应该足够用于两个应用服务器中的任何一个(因为我们可以通过配置更多的负载来处理更高的负载。 或者我会考虑使用大型实例(64b,7.5GB RAM,1GHz,2核) 所以我的问题是,这种云部署在技术上和财务上是否可行,或者专用/ VPS服务器是否是更好的选择,以及是否有类似的实际经验。 非常感谢你! / Jakub Holy PS:我在云案例研究中发现了JBoss EAP ,它表明可以将实际的Java EE应用程序部署到EC2云,但遗憾的是没有关于拓扑,实例类型或任何内容的详细信息: – (

如何使用.net代码执行Amazon Cloud Search?

我正在学习Amazon Cloud Search,但我找不到C#或Java中的任何代码(虽然我在C#中创建,但如果我能用Java获取代码,那么我可以尝试使用C#进行转换)。 这只是我在C#中找到的一个代码: https : //github.com/Sitefinity-SDK/amazon-cloud-search-sample/tree/master/SitefinityWebApp 。 这是我在此代码中找到的一种方法: public IResultSet Search(ISearchQuery query) { AmazonCloudSearchDomainConfig config = new AmazonCloudSearchDomainConfig(); config.ServiceURL = “http://search-index2-cdduimbipgk3rpnfgny6posyzy.eu-west-1.cloudsearch.amazonaws.com/”; AmazonCloudSearchDomainClient domainClient = new AmazonCloudSearchDomainClient(“AKIAJ6MPIX37TLIXW7HQ”, “DnrFrw9ZEr7g4Svh0rh6z+s3PxMaypl607eEUehQ”, config); SearchRequest searchRequest = new SearchRequest(); List suggestions = new List(); StringBuilder highlights = new StringBuilder(); highlights.Append(“{\'”); if (query == null) throw new ArgumentNullException(“query”); foreach (var field […]