首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员需掌握的大型网站后端架构的技术细节规整化应用拆分和协调

应用拆分和协调

一个大型网站系统会有很多接口,把它们都塞进一个后端应用程序里是很不理智的行为。这样做的话,无论是在开发阶段还是运营阶段,都会存在很大的麻烦。因此,后端应用程序需要拆分成独立的模块,拆分后端应用程序可以根据业务架构划分,如划分成用户模块和发布模块等。除了按功能划分以外,应用拆分还需要考虑权限分类(普通用户和管理员)及并发压力(高并发接口和普通接口)等因素。

拆分和整合后端应用程序很难在项目初期就一次性确定好,需要经常在开发过程中或者在调优过程中不断做调整。如果做好了前面强调的“限制函数调用层级”和“公共模块”,那么拆分或整合后端应用程序会变得非常简单,如图4.58所示。其中,公共模块是通用的,没有业务代码,接口迁移过去后可直接使用。

图4.58 对垂直切分的后端应用程序做接口拆分

从技术层面上讲,每个接口请求都是完全独立的,在拆分应用后,后端应用程序可以正常运行在不同的Web应用服务器里。也就是说,从“正常运行”角度讲,后端应用程序之间可以不用考虑相互协调的问题。

不过,一般情况下,大部分的接口都需要做用户鉴权,而用户信息一般会记录在上节中介绍的Session当中。因此,我们需要做Session共享,而Session共享需要解决两个问题:

在同一个Web应用服务器(Tomcat)下,不同的后端应用程序共享Session。默认情况下,Session是不能跨后端应用程序使用的,所以需要通过设置让Session支持跨后端应用程序使用。

在不同的Web应用服务器下,后端应用程序共享Session。Session是被存储在Web应用服务器上的(Tomcat程序内),默认情况下,Session是不能跨Web应用服务器使用的。因此,需要设置一个共用的Session数据存储中心,一般使用Redis作为Session的存储中心。

以上这两个设置都只需要在后端应用程序的配置文件(默认是application.properites)中设置即可,无须在代码中做其他修改。配置文件中的设置如代码4.31所示,其中redis的连接IP和端口需要根据实际情况修改。

代码4.31 配置文件中的Session相关设置

本文给大家讲解的内容是大型网站架构的技术细节:后端架构规整化应用拆分和协调

下篇文章给大家讲解的内容是大型网站架构的技术细节:后端架构规整化java日志框架

感谢大家的支持

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221129A00PC200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券