简体   繁体   English

什么是高容量网站(Java)的最佳可扩展现代架构

[英]What's the best scalable modern architecture for a high volume website (Java)

We have a website that is getting over 1m hits a day. 我们的网站每天点击量超过100万。

The site is running off an old architecture (Struts Tomcat Hibenate MySQl) with no real scope for scalability. 该站点运行的是旧架构(Struts Tomcat Hibenate MySQl),没有可扩展性的实际范围。

Now that we are expanding further I am looking for a modern (not too bleeding edge please) web architecture. 现在我们正在进一步扩展,我正在寻找一个现代(不太流行的优势)网络架构。

My first thoughts were to use Google App Engine - but I'm not sure that is open enough. 我的第一个想法是使用谷歌应用引擎 - 但我不确定它是否足够开放。

Our developers are all Java so it would need to be something they could pick up easily. 我们的开发人员都是Java,所以它需要能够轻松获取。

Ideally I'd like to run the same way as DIGG, Twitter, Amazon etc. 理想情况下,我想以与DIGG,Twitter,亚马逊等相同的方式运行。

If you know how they do it - or have a suggestion I'd be very interested to know. 如果你知道他们是怎么做的 - 或者有一个建议我会非常有兴趣知道。

Unless you've got major bottlenecks baked into the design, then hardware is almost always going to be the best way to scale. 除非您在设计中遇到重大瓶颈,否则硬件几乎总是最好的扩展方式。

By 'best' I mean 用'最好'我的意思

  • cheapest 最便宜
  • quickest 最快
  • best performance increase 最佳性能提升
  • guaranteed results 保证结果

It sounds like your current setup is having problems? 听起来你当前的设置有问题吗? Can you give any information on what kind of problems you have? 您能否提供有关您遇到的问题的任何信息?

Edit: Can you give info on your current hardware setup? 编辑:您能提供有关当前硬件设置的信息吗? How many web servers (presumably running Apache?), how many app servers, how many DB servers? 有多少个Web服务器(大概是运行Apache?),有多少个app服务器,有多少个DB服务器?

I'd exhaust all possibility for "no real scope for scalability" before I rewrote my app. 在我重写我的应用程序之前,我已经耗尽了“没有可扩展性的实际范围”的所有可能性。 It might just mean that you can only scale horizontally by throwing more hardware and clustering at the problem. 这可能只是意味着您只能通过投入更多硬件和群集来解决问题。

Google App Engine will mean JPA instead of Hibernate and MySQL, because I believe they use BigTable in the back. 谷歌应用引擎将意味着JPA而不是Hibernate和MySQL,因为我相信他们在后面使用BigTable。

Have a look if you can get clustering cheaply with Terracotta. 看看你是否可以用Terracotta廉价地进行聚类。


For a rewrite: Have a look at what is already present in Java EE 6. You might find it fits your needs nicely. 重写:看看Java EE 6中已经存在的内容。您可能会发现它非常适合您的需求。 Glassfish 3.1 will support clustering before you are done rewriting. Glassfish 3.1将在您完成重写之前支持群集。

Hire a team or even better a company which has an experience in building scalable solutions. 雇用一个团队甚至是一个有建立可扩展解决方案经验的公司。 Promote current developers in Business Analysts and make them help the scalable solutions specialists with the business logic. 促进业务分析师中的当前开发人员,并使他们能够通过业务逻辑帮助可扩展的解决方案专家。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 最佳体系结构-收听Java中的原子供稿的最佳方法是什么? - Best Architecture - What's the best way to listen to an atom feed in java? 在MVC架构中公开Java组件(如JButton)的最佳方法是什么? - What's the best way to expose Java components such as a JButton in an MVC architecture? 使用Hazelcast的Java高可伸缩应用程序 - Java high scalable application with Hazelcast 在大容量环境中解析HTML的最佳方法是什么? - What is the best way to parse a HTML in a High volume environment? 最佳设计以处理Java中的大量数据处理-JDBC - Best design to handle very high volume of data handling in Java - JDBC Java中用于API开发的最佳Restful Web服务,用于海量数据? - Best Restful WebService in Java for API Development for high volume data? 可扩展的高性能Java EE解决方案? - A scalable and high-performance Java EE solution? 在高性能Java应用程序中异步处理低速使用者(数据库)的最佳方法是什么 - What's the best way to asynchronously handle low-speed consumer (database) in high performance Java application .NET相当于现代Java Web体系结构 - .NET equivalent of modern Java web architecture 基于java的网站架构 - Architecture of Website based on java
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM