问题
可扩展性并非Java企业级平台规范内的标准组件。相关技术通常因供应商而异,并且往往需要使用不止一款产品。正因如此,设计可扩展的Java企业级应用才会有些棘手,要完成任务,往往不仅没有可以参照的实例,而且要求我们必须彻彻底底地理解应用。
扩展类型
相信你们不是第一次看到这些内容。扩展一般分为两大类:纵向扩展,和横向扩展。
扩展的第一个自然阶段是纵向扩展。
• 纵向扩展:包括给服务器增加更多资源,例如内存、磁盘空间、处理器等。这在某些方案中具备实用价值,但经过特定时间点后就会发现,这种扩展费用高昂,不如借助横向扩展。
• 横向扩展:在这个过程中会增加更多机器或额外的服务器实例/节点,这也叫做集群,因为所有服务器是作为一个集体或集群一起运行的。
高可用性不等于可扩展性
系统高度可用,并不表示系统可扩展。高可用性只是意味着,如果当前处理节点崩溃,请求会传递或转移到集群中的另一个节点,以便从开始处继续。可扩展性则是通过增加可用资源而提升系统特定性能的能力,即使将失败请求传递到另一个节点,也无法保证应用会在这种场景中正确运行。
下面我们来了解一些关于可扩展性的观点和相关讨论。
让横向扩展的集群达到负载均衡
假设你已经纵向扩展至最大容量,现在又用多个节点形成集群,将系统进行了横向扩展。接下来你要做的可能是在集群基础架构前放置一台负载均衡器,让负载分散在集群各部分之间。
更多,Java视频,Java教程尽在极悦Java培训,关注极悦官方微信,获得一手Java全新知识。