Java领域佼佼者|你了解几种?,九种高性能可用高并发的技术架构总结

分层架构是逻辑上的 , 在物理部署上 , 三层架构可以部署在同一个物理机器上 , 但是随着网站业务的发展 , 必然需要对已经分层的模块分离部署 , 即三层结构分别部署在不同的服务器上 , 是网站拥有更多的计算资源以应对越来越多的用户访问 。 1、分层
分层是企业应用系统中最常见的一种架构模式 , 将系统在横向维度上切分成几个部分 , 每个部分负责一部分相对简单并比较单一的职责 , 然后通过上层对下层的依赖和维度组成一个完整的系统 。
在网站的分层架构中 , 常见的为3层 , 即应用层、服务层、数据层 。 应用层具体负责业务和视图的展示;服务层为应用层提供服务支持;数据库提供数据存储访问服务 , 如数据库、缓存、文件、搜索引擎等 。
分层架构是逻辑上的 , 在物理部署上 , 三层架构可以部署在同一个物理机上 , 但是随着网站业务的发展 , 必然需要对已经分层的模块分离部署 , 即三层结构分别部署在不同的服务器上 , 使网站拥有更多的计算资源以应对越来越多的用户访问 。
所以 , 虽然分层架构模式最初的目的是规划软件清晰的逻辑结构以便于开发维护 , 但在网站的发展过程中 , 分层结构对网站支持高并发向分布式方向的发展至关重要 。
Java领域佼佼者|你了解几种?,九种高性能可用高并发的技术架构总结
文章图片
2、冗余
网站需要7*24小是连续运行 , 那么就得有相应的冗余机制 , 以防止某台机器宕掉时无法访问 , 而冗余则可以通过部署至少两台服务器构成一个集群实现服务高可用 。 数据库除了定期备份还需要实现冷热备份 。 甚至可以在全球范围内部署灾备数据中心 。 3、分离
如果说分层将软件横向方面进行切分 , 那么分隔就是在纵向方面对软件进行切分 。 网站越大 , 功能越复杂 , 服务和数据处理的种类也越多 , 将这些不同的功能和服务分离开来 , 包装成高内聚低耦合的模块单元 , 不仅有助于软件的开发维护 , 也便于不同模块的分布式部署 , 提高网站的并发处理能力和功能扩展能力 。
大型网站分隔的力度可能会很小 。 比如在应用层 , 将不同业务进行分隔 , 例如将购物、论坛、搜索、广告分隔成不同的应用 , 有独立的团队负责 , 部署在不同的服务器上 。 4、异步
使用异步 , 业务之间的消息传递不是同步调用 , 而是将一个业务操作分成多个阶段 , 每个阶段之间通过共享数据的方法异步执行进行协作 。
具体实现则在单一服务器内部可用通过多线程共享内存的方式处理 。 在分布式系统中 , 可用通过分布式消息队列来实现异步 。
异步架构的典型就是生产者消费者方式 , 两者不存在直接调用 。 5、分布式
对于大型网站 , 分层和分隔的一个主要目的时为了切分后的模块便于分布式部署 , 即将不同模块部署在不同的服务器上 , 通过远程调用协同工作 。 分布式意味着可以使用更多的计算机完成同样的工作 , 计算机越多 , CPU、内存、存储资源就越多 , 能处理的高并发访问和数据量就越大 , 进而能够为更多的用户提供服务 。
在网站应用中 , 常用的分布式方案有以下几种:
分布式应用和服务:将分层和分隔后的应用和服务模块分布式部署 , 可以改善网络性能和并发性、加快开发和发布速度、减少数据库连接资源消耗 。
【Java领域佼佼者|你了解几种?,九种高性能可用高并发的技术架构总结】分布式静态资源:网站的静态资源如JS、CSS、logo图片等资源独立分布部署 , 并采用独立的域名 , 即人们长多的动静分离 。 静态资源分布式部署可以减轻应用服务器的负载压力;通过使用独立域名加快浏览器并发加载速度 。
分布式数据和存储:大型网站需要处理以P为单位的海量数据 , 单台计算机无法提供如此大的存储空间 , 这些数据需要分布式存储 。
分布式计算:目前网站普遍使用Hadoop和MapReduce分布式计算框架进行此类批处理计算 , 其特点是移动计算而不是移动数据 , 将计算程序分发到数据所在的位置以加速计算和分布式计算 。


推荐阅读