`
yanwt
  • 浏览: 99425 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
前两天发了一个招聘广告贴,结果之前的ID和帖子都被管理员删了,之前的一些资料都没了,真是服了,没办法又注册了一个原来的ID,结果等了两天才能发贴。
继续把之前的帖子重发一下。



说明:
Web负载均衡和应用负载均衡使用Nginx
Web服务器用Tomcat
应用服务器可选Jboss、glassfish、tomcat
数据库Mysql
Session缓存使用TokyoTyrant(需要持久化)
应用缓存使用Memcached
Web服务器通过Hessian远程调用访问应用服务器
Web层使用Spring3 MVC通过Hessian调用远程应用服务器的业务方法获取业务数据生成页面。各服务器之间的session存储在session缓存中。
应用层使用Spring3+Hibernate+Hessian,主要是提供业务service接口,在接口层进行事务控制,通过hessian生成远程调用接口供web层调用。通过AOP实现结果缓存减少数据库压力。
数据库做集群,这部分没有画在图上。

------------------------------------------------------------------------------------------
2010-09-21增加:
这个是新版本的软件结构:

改进:购物车数据保存在共享的memcached中,去掉session,增加身份认证服务。
  • 大小: 45.5 KB
  • 大小: 72.2 KB
分享到:
评论
26 楼 vvggsky 2009-12-19  
LZ,session过期, memcached中的相关的session的值是如何处理的?
25 楼 yanwt 2009-12-19  
z95001188 写道
很想知道http://www.shopin.net 网站的伪静态化怎么做的?

看一下SpringMVC就知道了,这个没什么说的
24 楼 z95001188 2009-12-19  
很想知道http://www.shopin.net 网站的伪静态化怎么做的?
23 楼 yanwt 2009-12-18  
JaNer 写道
yanwt 写道
JaNer 写道
JaNer 写道
真是一语道破天机啊

如此看来应用服务器可以直接使用Main方法
Java代码

   1. public static void main(String[] args) { 
   2.                 boolean flag=true;// 
   3.                 // Init Spring ApplicationContext .... 
   4.                 while(flag){ 
   5.                         try { 
   6.                                 Thread.sleep(Long.MAX_VALUE); 
   7.                         } catch (InterruptedException e) { 
   8.                                 e.printStackTrace(); 
   9.                         } 
  10.                 } 
  11.         } 

public static void main(String[] args) {
                boolean flag=true;//
                // Init Spring ApplicationContext ....
                while(flag){
                        try {
                                Thread.sleep(Long.MAX_VALUE);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }

,不知想法是否可行.

有个小疑问:使用session缓存开销是否划算,可以考虑IP粘连?

上面方法不行,hessian是要Servlet容器支持,是用POST方法调用的。
使用session缓存目的是做双机互备,两个Tomcat一组,正常情况下通过nginx的ip_hash同一IP始终转发到同一台机器上,一旦一台机器当机后另一台完全可以接管session。目的是最大程度的使用户的购物车数据不丢失。并不是所有的Web容器共享同一session缓存。

那如果我使用Spring自己的HttpInvoker呢  是不是也需要Servlet的支持~?

看名字就能看出来了,是基于http协议的
22 楼 JaNer 2009-12-18  
yanwt 写道
JaNer 写道
JaNer 写道
真是一语道破天机啊

如此看来应用服务器可以直接使用Main方法
Java代码

   1. public static void main(String[] args) { 
   2.                 boolean flag=true;// 
   3.                 // Init Spring ApplicationContext .... 
   4.                 while(flag){ 
   5.                         try { 
   6.                                 Thread.sleep(Long.MAX_VALUE); 
   7.                         } catch (InterruptedException e) { 
   8.                                 e.printStackTrace(); 
   9.                         } 
  10.                 } 
  11.         } 

public static void main(String[] args) {
                boolean flag=true;//
                // Init Spring ApplicationContext ....
                while(flag){
                        try {
                                Thread.sleep(Long.MAX_VALUE);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }

,不知想法是否可行.

有个小疑问:使用session缓存开销是否划算,可以考虑IP粘连?

上面方法不行,hessian是要Servlet容器支持,是用POST方法调用的。
使用session缓存目的是做双机互备,两个Tomcat一组,正常情况下通过nginx的ip_hash同一IP始终转发到同一台机器上,一旦一台机器当机后另一台完全可以接管session。目的是最大程度的使用户的购物车数据不丢失。并不是所有的Web容器共享同一session缓存。

那如果我使用Spring自己的HttpInvoker呢  是不是也需要Servlet的支持~?
21 楼 yanwt 2009-12-18  
JaNer 写道
JaNer 写道
真是一语道破天机啊

如此看来应用服务器可以直接使用Main方法
Java代码

   1. public static void main(String[] args) { 
   2.                 boolean flag=true;// 
   3.                 // Init Spring ApplicationContext .... 
   4.                 while(flag){ 
   5.                         try { 
   6.                                 Thread.sleep(Long.MAX_VALUE); 
   7.                         } catch (InterruptedException e) { 
   8.                                 e.printStackTrace(); 
   9.                         } 
  10.                 } 
  11.         } 

public static void main(String[] args) {
                boolean flag=true;//
                // Init Spring ApplicationContext ....
                while(flag){
                        try {
                                Thread.sleep(Long.MAX_VALUE);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }

,不知想法是否可行.

有个小疑问:使用session缓存开销是否划算,可以考虑IP粘连?

上面方法不行,hessian是要Servlet容器支持,是用POST方法调用的。
使用session缓存目的是做双机互备,两个Tomcat一组,正常情况下通过nginx的ip_hash同一IP始终转发到同一台机器上,一旦一台机器当机后另一台完全可以接管session。目的是最大程度的使用户的购物车数据不丢失。并不是所有的Web容器共享同一session缓存。
20 楼 JaNer 2009-12-18  
JaNer 写道
真是一语道破天机啊

如此看来应用服务器可以直接使用Main方法
Java代码

   1. public static void main(String[] args) { 
   2.                 boolean flag=true;// 
   3.                 // Init Spring ApplicationContext .... 
   4.                 while(flag){ 
   5.                         try { 
   6.                                 Thread.sleep(Long.MAX_VALUE); 
   7.                         } catch (InterruptedException e) { 
   8.                                 e.printStackTrace(); 
   9.                         } 
  10.                 } 
  11.         } 

public static void main(String[] args) {
                boolean flag=true;//
                // Init Spring ApplicationContext ....
                while(flag){
                        try {
                                Thread.sleep(Long.MAX_VALUE);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }

,不知想法是否可行.

有个小疑问:使用session缓存开销是否划算,可以考虑IP粘连?
19 楼 JaNer 2009-12-18  
真是一语道破天机啊
18 楼 topcode 2009-12-18  
无语了,难道你是楼主的客户.
17 楼 yanwt 2009-12-18  
引用
楼主的网站不卖假货吧。!

保证是正品,所有商品都是在实体店销售的,这里不应该讨论这个问题吧,呵呵
16 楼 yanwt 2009-12-18  
每台机器安装Nginx+Tomcat多实例
15 楼 sealv 2009-12-18  
引用
web和应用服务器各一台,使用DELL PowerEdge 1950 CPU 8核 8G内存,系统安装redhat linux5.3 64

每个都是一台 那是不是没用到图中的负载均衡系统呢
14 楼 javaeye官理员 2009-12-18  
楼主的网站不卖假货吧。!
13 楼 yanwt 2009-12-18  
kingapex 写道
请问一下,楼主所说的支持 4w pv/h 的负载的具体硬件情况如何?
如:各硬件数量、配置及所用操作系统。
谢谢

web和应用服务器各一台,使用DELL PowerEdge 1950 CPU 8核 8G内存,系统安装redhat linux5.3 64
12 楼 kingapex 2009-12-18  
请问一下,楼主所说的支持 4w pv/h 的负载的具体硬件情况如何?
如:各硬件数量、配置及所用操作系统。
谢谢
11 楼 zhanglian123 2009-12-18  
lovemylover 写道
有经过实际的项目应用吗?最高能够承受的压力是多少?性能瓶颈在哪?数据库集成是否有解决方案?增加负载数量能够提高多少性能?为什么用Nginx?它的性能极限是多少?这些楼主都是否清楚?如果没有,那么请楼主做过这些再发布吧,花架子只能用来看,不能拿来用的。


拜托说别人,先拿出哪些自己项目说说,真是站着说话腰不疼.
你做项目承受的压力是多少;性能瓶颈在哪...
拜托你给出源码,让我好好瞻仰下....

支持楼主
10 楼 yanwt 2009-12-18  
lovemylover 写道
有经过实际的项目应用吗?最高能够承受的压力是多少?性能瓶颈在哪?数据库集成是否有解决方案?增加负载数量能够提高多少性能?为什么用Nginx?它的性能极限是多少?这些楼主都是否清楚?如果没有,那么请楼主做过这些再发布吧,花架子只能用来看,不能拿来用的。

实际应用网址:www.shopin.net
目前最高的承受压力有记录的最高值是4.38万pv/小时。这个数值是和我们的推广相关的,并没有达到系统最大值。现在系统瓶颈在带宽上,由于页面上图片教多,占用了大量网络资源。
之前使用apache但是并发大了之后,系统反应奇慢无比,后来换成Nginx,处理速度明显提升,而且占用资源很少。
至于系统的极限值,我没有测试过,目前的网站也只是个小网站,访问量还没有那么大。这个架构够我们用一段时间的。等到出现瓶颈时再考虑其他方案。
9 楼 曾经de迷茫 2009-12-18  
yanwt 写道
JaNer 写道
我还有一个问题请教:
你的应用服务器选择Jboss、glassfish、tomcat 之类的,还有没有其他的更轻量级的选择。因为我觉得Servlet/JSP的支持已经交给了你的Web服务器来处理,二后台的应用服务器无非是暴露一系列服务出来,一般也很少会使用Ejb之类的J2EEAPI,所有应用服务器也不需要J2EEAPI的支持,所有我想还有没有其他更轻量级更高性能的选择。不知我的理解对不对~~~~~~~、??

我没有强制使用任何web容器,只要支持Servlet/JSP的容器都可以的。


如此看来应用服务器可以直接使用Main方法
public static void main(String[] args) {
                boolean flag=true;//
                // Init Spring ApplicationContext ....
                while(flag){
                        try {
                                Thread.sleep(Long.MAX_VALUE);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }
,不知想法是否可行.

有个小疑问:使用session缓存开销是否划算,可以考虑IP粘连?
   
8 楼 vvggsky 2009-12-18  
LZ,session过期, memcached中的相关的session的值是如何处理的?
7 楼 lovemylover 2009-12-18  
有经过实际的项目应用吗?最高能够承受的压力是多少?性能瓶颈在哪?数据库集成是否有解决方案?增加负载数量能够提高多少性能?为什么用Nginx?它的性能极限是多少?这些楼主都是否清楚?如果没有,那么请楼主做过这些再发布吧,花架子只能用来看,不能拿来用的。

相关推荐

    明日知道 JAVA WEB架构探索.zip

    明日知道 JAVA WEB架构探索

    java高手真经_系统架构卷:java.web系统设计与架构

    总的来说,《Java高手真经_系统架构卷:Java.Web系统设计与架构》是一本全面解析Java Web开发的指南,适合已经有一定Java基础,希望进一步提升技能,或者想要深入理解Java Web架构的专业人士阅读。通过学习,读者...

    架构探险-从零开始写Java Web框架-全书源码

    全书源码的提供,使得读者能够更加直观地理解并实践书中的理论知识,这对于学习和提升Java Web架构设计与实现能力具有极大的帮助。 在构建Java Web框架的过程中,我们首先会接触到的是基础概念,如HTTP协议、...

    java web了解软件架构

     一、了解软件架构  (一)基本概念  (二)软件架构的历史  (三)软件架构的目标  二、J2EE开发模型分析  (一)一层架构模式  (二)两层架构模式Model 1  (三)三层架构模式Model 2  (四)多层...

    Java Web架构 资产管理系统

    本系统是基于B/S的多层Web应用,在windows 7操作系统下,开发工具:MyEclipse +MySQL +Tomcat 6.0 此系统是公司固定资产管理系统,其中有两种角色可以登录并使用此系统.一是超级管理员,一是管理员。 资产管理,JSP,...

    java高手真经_系统架构卷java.web系统设计与架构

    #### 三、Java Web架构模式 1. **MVC(Model-View-Controller)模式**:这是最常用的架构模式之一,将应用程序分为三个核心部分:模型、视图和控制器。模型处理数据逻辑,视图负责展示数据,而控制器则接收用户的...

    开发者突击:Java Web主流框架整合开发.part07.rar

     本书内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行技术,无论对于Java Web架构设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书面向读者对象:Java和J2EE软件架构师与设计师、...

    开发者突击:Java Web主流框架整合开发.part12.rar

     本书内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行技术,无论对于Java Web架构设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书面向读者对象:Java和J2EE软件架构师与设计师、...

    高并发web架构完整1

    《高并发Web架构完整1》是一份关于优化和构建高性能Web站点的综合资源,共分为五个部分。在当今互联网行业中,随着用户数量的急剧增长,Web应用必须具备处理高并发请求的能力,才能确保服务的稳定性和用户体验。本...

    java web 2.0架构开发与项目实战 源代码01

    在本资源中,"java web 2.0架构开发与项目实战 源代码01",我们聚焦于Java Web应用程序的开发,特别是在Web 2.0时代的技术和实践。Web 2.0是一个概念,它强调互联网作为交互式平台,用户参与度更高,社交网络和富...

    开发者突击:Java Web主流框架整合开发.part09.rar

     本书内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行技术,无论对于Java Web架构设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书面向读者对象:Java和J2EE软件架构师与设计师、...

    开发者突击:Java Web主流框架整合开发.part04.rar

     本书内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行技术,无论对于Java Web架构设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书面向读者对象:Java和J2EE软件架构师与设计师、...

    开发者突击:Java Web主流框架整合开发.part11.rar

     本书内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行技术,无论对于Java Web架构设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书面向读者对象:Java和J2EE软件架构师与设计师、...

    [AddisonWesley]Performance_Analysis_For_Java_Web_Sites.zip

    2. **Java Web架构分析**:讨论了Java Web应用的常见架构模式,包括Servlet、JSP、Spring MVC等,以及它们对性能的影响。 3. **JVM优化**:深入讲解Java虚拟机(JVM)的内部工作原理,包括垃圾回收机制、类加载、...

    开发者突击:Java Web主流框架整合开发.part10.rar

     本书内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行技术,无论对于Java Web架构设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书面向读者对象:Java和J2EE软件架构师与设计师、...

    开发者突击:Java Web主流框架整合开发.part06.rar

     本书内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行技术,无论对于Java Web架构设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书面向读者对象:Java和J2EE软件架构师与设计师、...

    开发者突击:Java Web主流框架整合开发.part08.rar

     本书内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行技术,无论对于Java Web架构设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书面向读者对象:Java和J2EE软件架构师与设计师、...

    Java Web三层架构的配置详解

    Java Web三层架构是一种常见的软件设计模式,用于构建可扩展、可维护且易于测试的Web应用程序。这个模式将应用逻辑划分为三个主要层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据...

    架构探险 从零开始写Java Web框架.pdf

    本书首先从一个简单的Web应用开始,让读者学会如何使用IDEA、Maven Git等开发工具搭建Java web应用:接着通过一个简单的应用场景,为该Web应用添加若干业务功能,从需求分析与系统设计开始,带领读者动手完成该Web...

Global site tag (gtag.js) - Google Analytics