技术分享 其他 查看内容

品互网络整体技术架构介绍

老高 | 发布于 2021-01-20 14:38| 浏览()| 评论() | 收藏() | 点赞() | 打印

网站模块

网站前台:http://www.pinhuba.com

论坛前台:http://bbs.pinhuba.com

登录注册中心:http://passport.pinhuba.com

用户中心:http://member.pinhuba.com

搜索中心:http://so.pinhuba.com

个人主页:http://space.pinhuba.com

网站后台:http://***.pinhuba.com

论坛后台:http://***.pinhuba.com

常用工具:http://tools.pinhuba.com 该模块使用前后端分离模式开发,前端技术使用了react,仍然适应整个系统的用户状态体系。

网站整体架构

QQ图片20210120155328.png

品互网络每个模块都是独立的java应用,可以单独进行开发、测试、打包、部署。每个应用连接同一个mysql和redis来实现数据、用户会话、缓存管理等功能。

随着系统的垂直拆分、公共模块提取、缓存共享以及用户会话的统一,逐渐有了平台化的趋势,后期可以使用基础的脚手架开发各类子应用,各个应用之间能够实现统一登录/退出。

这种架构模式有很多典型的应用场景:区域网站,以门户为基础衍生出各类生活服务应用,例如:人才招聘、婚嫁、房产、汽车...等等子网站。

网站运行环境

腾讯云Linux Centos7.x服务器1核1G是的你没看错,品互网络所有的应用都部署在一台服务器上的同一个Tomcat里,jvm虚拟机只需要配置400M内存即可

上面说到每个应用可以独立部署到服务器,但是老高我为了追求更高的内存利用率(放nm的屁,就是因为没钱)毅然决然的采取了这种部署策略,具体查看:http://www.pinhuba.com/javaweb/101517.htm

另外,网站所用的mysql5.7、redis5.0也安装在同一台腾讯云服务器上。文件服务、静态资源使用的是“又拍云”。

呵呵,你以为这样就结束了?NO!这台服务器上不仅安装了java环境,还装了php7.x环境,同时运行着3个php网站,就这1G内存,我容易么......

QQ图片20210120153005.png

应用脚手架

品互网络所有的应用模块都使用同一套脚手架,该套脚手架主要用的java技术框架如下:

业务容器Spring3.x、持久层hibernate3.x、认证授权shiro、工具类库commons系列、模板引擎freemarker、搜索引擎lucene3.x、日志logback等共58个jar包。jar包的版本都比较老,够用就懒得去升级了。

QQ图片20210120145218.png

公共页面片段

在一个大网站里,有很多子域名对应到很多子系统,这些子系统由不同的团队负责,如何保证整个网站的风格一致性(最基本的页头、页尾必须一致),这个时候就得提供一份统一的页头、页尾以及公共的JS、css等内容,但如果是直接给源代码(ftl/js/css)的形式,对于后期的升级维护必然增加不必要的麻烦,必须得只有一个地方维护这个代码。

品互网络pc、wap公共页头页尾具体实现如下:http://www.pinhuba.com/other/101518.htm 

前台接口

http://www.pinhuba.com/other/101527.htm

发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)

表情