`
xihongshi414
  • 浏览: 35731 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

可伸缩性和重/轻量,谁是实用系统的架构主选?

阅读更多

http://www.jdon.com/artichect/scalable.htm

 

        所谓可伸缩性,是指在小型规模单台服务器情况下,应用系统可以良好运转系统的访问量或功能增加后,整个系统只需通过增加服务器硬件就可以实现性能扩展,无需修改太多软件。对于可伸缩性平台(如JBoss)来说,理论上,没有最大负载或最多在线人数这样的概念。
   重/轻量其实是使用难易程度,从根本上说,重/轻量应该和可伸缩性不矛盾的,特别是EJB 3.0推出以后,这个问题应该得到比较好的解决。  
   但是,在目前情况下,编写一个JavaBeans要比编写一个EJB容易多,那么,是重/轻量还是可伸缩性应该成为系统架构的主要依据呢? 在这个问题背后,还隐藏了目前在开源领域两个架构技术选择:
  1. 重量:基于JBoss/EJB的完整J2EE系统架构 (具有可伸缩性,目前不易于学习)
  2. 轻量:基于Tomcat的Struts+Hibernate/Spring+Hibernate (目前无太大可伸缩性,但是易于学习使用)
   因为轻量解决方案易于学习新技术,容易使用,选中率比较高。但是让人产生对系统的可伸缩性担忧。鉴于这种情况,我认为有必要强调一下可伸缩性的重要性,切不能因为要跟进新的设计思想和技术,而盲目地采用一个无可伸缩性的设计方案。
   其实,"轻量"应该是一个中性词,但是因为大量新的设计思想比较容易通过轻量方案获得成型软件,如(Spring/Naning/Hibernate)等,逐渐的"轻量"好像变成了一个褒义词。如果从可伸缩性的标准看,轻量还可能是一个贬义词,轻量意味着丧失重量系统中的分布式网络计算的设计考量,那么可伸缩性就要打问号。
   从这次JavaOne大会以及从长远来看,随着EJB 3.0中间件轻量化、SOA架构理念普及,轻量/重量的区别已经模糊,如果还是以轻量/重量作为架构选择的标准,甚至标榜自己的系统,无疑是不明智的。
   可伸缩性应该依然是实用企业系统架构的主选,可伸缩性是站在软件公司的客户企业立场,为这些客户企业考虑的,但是他们经常因为被认为是外行,挡在了软件系统架构选择的门外。

分享到:
评论

相关推荐

    软件架构设计的思想与模式

    这种架构风格提高了系统的可伸缩性和容错性。 此外,面向方面编程(AOP)和事件驱动架构(EDA)也是软件架构中的重要技术。AOP允许开发者将关注点分离,比如日志、事务管理等,使得代码更专注于业务逻辑。EDA则利用...

    轻量级J2EE企业实战

    轻量级J2EE应用则是在保留了J2EE架构的可扩展性和可维护性优势的基础上,通过使用诸如Struts、Hibernate和Spring这样的开源框架,极大地简化了开发流程,降低了部署成本。这种架构模式更注重于灵活性和效率,使得...

    微服务架构与实践 ,王磊著(1)

    这种方式使得服务可以独立地开发、部署和扩展,提高了系统的可伸缩性、可维护性和敏捷性。 在微服务架构中,每个服务都围绕特定业务功能构建,服务之间保持松耦合,降低了系统间的复杂性。这样的设计使得团队能够更...

    7、如何写架构方案及实践.pdf

    分层结构也便于维护和测试,提高了系统的可伸缩性和可扩展性。 总之,一份完整的微服务架构方案不仅要考虑服务的设计和部署,还要在性能优化上作出深入的思考。通过架构师的精心设计和不断实践,最终实现系统的高...

    [轻量级Java_EE企业应用实战2

    综上所述,《轻量级Java EE企业应用实战2》是一本非常实用的技术书籍,它不仅系统地介绍了轻量级框架的使用方法,还深入探讨了微服务架构、持续集成与持续部署等前沿技术,对于希望提升自己在Java EE领域技能的...

    《一线架构师实践指南》(温昱)【上】.pdf

    - **可伸缩性与弹性**:设计时考虑系统在不同负载下的表现,确保其能够适应未来的需求变化。 ### 二、架构模式与框架 #### 2.1 常见架构模式 - **MVC(Model-View-Controller)**:分离业务逻辑、用户界面和数据...

    Apache Thrift - 可伸缩的跨语言服务开发框架(代码已修正)

    3. **轻量级**:Thrift的API设计简洁,易于理解和使用,同时它不依赖特定的框架或库,降低了系统的复杂性。 4. **可扩展**:服务接口可以通过IDL进行扩展,而无需修改已有代码,这有助于保持系统的稳定性和可维护性...

    基于.NET Core开发的轻量级分布式配置中心.zip

    分布式配置中心允许各个服务节点从中心获取和更新配置,降低了配置变更时的服务中断风险,并提高了系统的可伸缩性。 3. **综合资源**:此压缩包中的“AgileConfig-master”可能是一个完整的项目源码库,包含了开发...

    架构师(2020年2月).pdf

    再从技术架构的发展趋势来看,当今企业面临的挑战是如何构建更加敏捷、快速、可伸缩的技术基础设施,以应对不断变化的市场需求和业务发展。《架构师》杂志提到了“下一代架构”的概念,这通常包含了云计算、容器化、...

    17小时微服务架构实战课程【视频课程】下载整理.zip

    这种架构模式能够提高系统的可伸缩性、可维护性和敏捷性。 【微服务核心概念】 1. **服务拆分**:微服务的核心思想是将大型单体应用拆分为多个小而自治的服务,每个服务负责业务的一个特定领域,降低了复杂性。 2...

    毕业设计-基于微服务的商城秒杀系统.zip

    这有助于提高系统的可伸缩性、可维护性和容错性。 2. **服务间通信**:在微服务架构中,服务之间的通信通常采用RESTful API。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,...

    Microservices Patterns

    这种方式提高了系统的可伸缩性、灵活性和可部署性。 2. **服务拆分**:书中详细介绍了如何根据业务能力来拆分服务,如按照业务域、数据或功能来划分,以及如何避免服务过小或过大导致的问题。 3. **服务发现**:在...

    《微服务:从设计到部署》PDF

    这种架构模式有助于提高系统的可伸缩性、可维护性和敏捷性。 微服务架构的核心理念在于解耦,它鼓励开发团队将大型单体应用拆分成一系列小而自治的服务,每个服务专注于完成特定业务功能。这样做的好处包括: 1. *...

    Migrating to Cloud-Native Application Architectures

    2. **增强可伸缩性**:云原生应用能够自动扩展资源以应对不断变化的工作负载,从而提高效率并降低成本。 3. **提升可靠性**:通过采用容错机制和服务网格等技术,确保高可用性,减少停机时间。 4. **简化运维工作**...

    基于微服务打造共享开发平台.pdf

    6. 微服务的优缺点:分析微服务架构带来的优势,比如更快的市场响应时间、更好的系统可伸缩性,以及可能面临的挑战,如服务间调用增加导致的复杂性增加、事务一致性处理难度加大等。 7. 智慧共享平台的构建:讨论...

    无服务架构实践手册(Serverless Handbook).pdf

    此外,Serverless 架构通常只适用于轻量级任务,且监控和调试较为复杂,这些都需要开发者在选择 Serverless 架构时充分考虑。 开源的 Serverless 框架给开发者提供了更多的选择和灵活性。Knative 是一个开源的 ...

    Android平台下软件管理系统_计算机专业毕业设计.pdf

    SQL Server是微软公司开发的一种关系型数据库管理系统,它提供了数据存储、安全和检索功能,具有高度的可伸缩性和可靠性。SQLite作为一个轻量级的数据库,通常用于移动设备或小型项目中,不需要专门的服务器进程。 ...

Global site tag (gtag.js) - Google Analytics