购物车中还没有商品,赶紧选购吧!

推荐阅读

思途智旅 思途智旅

思途CMS底层框架升级,支持PHP7,实现数据库读写分离,Session存储云端化

时间:2020-06-12 | 分类:产品更新
浏览:16636

思途cms重大更新.jpg


思途智旅-国内知名的旅游信息化建设服务商,在迎来13周年之际,旗下品牌思途CMS也在本周迎来重大升级,此次更新主要针对底层框架升级,包含PHP版本升级,数据库以Session 等技术更新,通过此次升级会大大提升网站运行速度,同时通过数据库读写分离和Session 存储云端化技术可以支持中大型网站做负载均衡分布式部署。


具体升级内容如下:


一、系统支持PHP 7.0

此前版本仅支持PHP 5.4、5.5 升级后支持PHP 7.0 且兼容5.4、5.5


 PHP 7.0核心优势:性能提升


重写ZendVM,系统性能比PHP5.6提升300%。通俗点讲就是程序运行效率更快,网站打开速度也会得到大幅度提升。

备注:在Zend引擎和拓展中,经常要创建一个PHP的变量,底层就是一个zval指针。之前的版本都是通过MAKE_STD_ZVAL动态的从堆上分配一个zval内存。而PHP可以直接使用栈内存。


PHP7.0 其他 新特征


变量类型

PHP 7.0版本函数的参数和返回值增加类型限定,为了PHP 7.1版本JIT特征做准备,增加类型后PHP JIT可以准确判断变量乐享,生成最佳的机器指令。


错误异常

PHP程序出错后过去Zend引擎会发生致命错误并终止程序运行,PHP 7.0可以使用try/catch 捕获错误。


二、实现数据库读写分离


1、什么是数据库读写分离


MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中 的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环节服务器压力,提升网站运行速度。


2、数据库读写分离解决什么问题?


大多数互联网业务,往往读多写少,这时候,数据库的读会首先称为数据库的瓶颈,这时,如果我们希望能够线性的提升数据库的读性能,消除读写锁冲突从而提升数据库的写性能,那么就可以使用数据库读写分离,性能提升后,网站打开速度自然也快。


3、为什么数据库读写分离会提升性能?


(1) 物理服务器增加,负荷增加。


(2) 主从只负责各自的写和读,极大程度的缓解X锁和S锁争用。


(3) 从库可配置myisam引擎,提升查询性能以及节约系统开销。


(4) 从库同步主库的数据和主库直接写还是有区别的,通过主库发送来的binlog恢复数据,但是,最重要区别在于主库向从库发送binlog是异步的,从库恢复数据也是异步的。


(5) 读写分离适用与读远大于写的场景,如果只有一台服务器,当select很多时,update和delete会被这些select访问中的数据堵塞,等待select结束,并发性能不高。 对于写和读比例相近的应用,应该部署双主相互复制。


(6) 可以在从库启动是增加一些参数来提高其读的性能,例如--skip-innodb、--skip-bdb、--low-priority-updates以及--delay-key-write=ALL。


(7) 分摊读取。假如我们有1主3从,不考虑上述1中提到的从库单方面设置,假设现在1 分钟内有10条写入,150条读取。那么,1主3从相当于共计40条写入,而读取总数没变,因此平均下来每台服务器承担了10条写入和50条读取(主库不 承担读取操作)。

因此,虽然写入没变,但是读取大大分摊了,提高了系统性能。另外,当读取被分摊后,又间接提高了写入的性能。所以,总体性能提高了,说白 了就是拿机器和带宽换性能。


(8) MySQL复制另外一大功能是增加冗余,提高可用性,当一台数据库服务器宕机后能通过调整另外一台从库来以最快的速度恢复服务,因此不能光看性能,也就是说1主1从也是可以的。


三、Session存储云端化


Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。


Session 存储云端化优势:


为了提高服务器端的负载能力,后台一般将服务器节点做集群,通过ngnix通过轮询的方式转发到目标服务器。打个比方,当浏览器首次访问A服务器生成Session 对象,然后在访问生成的Session 对象,如果正好被ngnix转发到了A服务器,那么没问题可以获取到Session 对象,如果不巧请求被转发到B服务器,由于之前生成的Session 对象在A服务器,B服务器根本没有生成session对象,很自然访问不到Session 对象。那么将Session 存储云端化后,将Session 放入redis中存在,这样不管有多少台应用服务器节点,都能共享redis中存储的Session 对象,从而不会出现Session 错误。


以上便是此次底层框架升级的全部内容,升级后,网站打开速度更快,用户体验更好!


关于思途CMS


思途旅游CMS系统,将十三余年旅游实体行业经营经验与互联网营销实战需求相结合,针对旅游企业网站建设、经营需要,以效率提高、建立品牌,赢得利润为出发点,经过近十二年研发,实现了让旅游网站建设轻而易举的目标。


产品详情请查看:思途CMS产品介绍


说明

赞   5

有一点帮助   0

没有帮助  

参与评论

他们说...

童虎

PHP8都来了

欢兔旅行

不错,顶顶顶........

php7早该支持了
积分获取更多
思途CMS系统更新动态
  • 2024-04-24
    1、补充后台应用公共文件
    2、【BUG修复】老版移动端登录js优化,解决变量被重定义问题
    3、【功能优化】优化CMS退款流程,支持梦旅程APP订单随时退和设置手续费功能
    4、【BUG优化】CMS系统后台售后文字修改
    5、【BUG修复】景点订单未读查询
查看更多

扫一扫官方微信号

加入微信
在线客服
微信咨询
微信咨询
现在咨询,获取演示账号
企业logo小米
立即扫码加我微信
电话咨询
咨询电话
028-61558715
预约演示