您身边的网站建设专家
成功案例

【建站服务】平凉网站建设【平凉网络公司】平凉做网站、平凉微信公众号开发、平凉网站设计、平凉小程序制作-域名申请

日期: 2022-09-20 15:50:13 浏览数:3


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


平凉网站建设【平凉网络公司】平凉做网站、平凉微信公众号开发、平凉网站设计、平凉小程序制作

网站建设.jpg

平凉,是甘肃省辖地级市,甘肃省人民政府批复确定的甘肃省域副中心城市,丝绸之路经济带重要节点城市,陕甘宁结合部以文化旅游和工贸物流为主的生态宜居城市。截至2020年4月,全市辖1个区、1个市、5个县,总面积1.1万平方公里,2019年末常住人口212.53万人。 [1-2] 

平凉地处中国西北地区,甘肃省东部,陕甘宁三省(区)交汇处,东邻陕西咸阳,西连甘肃定西、白银,南接陕西宝鸡、甘肃天水,北倚宁夏固原、甘肃庆阳。是西北地区重要的公路枢纽,欧亚大陆桥第二通道的重要中转站,甘肃东部重要的交通枢纽、商贸重镇和区域性中心城市,素有“陇上旱码头”之称。 [1] 

平凉是中华文明的发祥地之一,早在3000多年前,周朝就在泾河流域创造了比较先进的农耕文化。公元376年,前秦灭前凉,取“平定凉国”之意,置平凉郡,平凉之名自此始。平凉境内历史文化遗存众多,已发现仰韶文化、齐家文化等各个时期的文化遗址2257处。崆峒山道源文化、古成纪伏羲文化、西王母远古文化、皇甫谧医学文化独具魅力。 [1] 

市内有5A级旅游景区崆峒山、云崖寺、南石窟寺、泾川王母宫、崇信龙泉寺等名胜古迹,被评为中国优秀旅游城市、中国顾客最满意的十大风景名胜区、中国最值得外国人去的50个地方之一。 [1]  2018年12月,2018魅力中国城十大魅力榜单发布,平凉荣获“年度魅力文旅扶贫城市”。 [3]  2019年10月,被确定为“第三批城市黑臭水体治理示范城市”。 [4]  2020年10月,被评为全国双拥模范城(县)。

2.3.6 扩展你的项目

涌现的数据分子

经历了一定岁月的项目系统,往往会变得臃肿、庞大、混乱。这是因为里面需要处理各种数据,而这些数据的来源更为多种多样,如来自文件、来自数据库、来自高效缓存、来自第三方平台接口。虽然PhalApi提供了Model层和Model代理层来统一负责这些不同来源的数据的处理,但若想得到更明确的划分、更一致的管理,还需要更细致的应对方案。

先来简单回顾一下中学时间所学的化学方程式。

图2-7 一条化学方程式
)

图2-7 一条化学方程式

上面是指二氧化碳和水在加热情况下可生成碳酸。化学方程式左边是反应前的分子,右边是反应后的产物。

类似地,在我们系统这个大环境下,在不同的场景下也会有不同的原材料,再根据不同的目的生成相应的数据产出物。这与化学反应有是点相似的。如果我们把数据的加工、处理看作化学的反应过程,而把数据源当作反应前的物质、把最终的页面数据比作化学的产物,我们可以得到这样一个类比:

图2-8 类似化学方程式的数据处理

图2-8 类似化学方程式的数据处理

这是一种以分子/原子的视角来看待数据,由此我们可以知道每份数据都会有其本身的一些特性,如:大小、稳定程度、名字、组成的结构等。若按数据的稳定程度分轨道划分,我们可以看到原来混沌的数据分布将显得有序、可视化。

图2-9 划分前后的数据分布

图2-9 划分前后的数据分布

由分子组成的化学物质,有活泼、稳定之分。越活泼的物质变化越快,反之,越稳定的物质变化缓慢,可以放置很长一段时间。同样,对于接口服务系统中的数据,有的需要频繁更新甚至实时更新,如商品库存;有的则相对稳定,不需要频繁更新并在业务上可以接受一定时间的延时,如商品的信息;有的甚至非常稳定,通常很长的时间内都不会发生变化,如全站的通用的开关配置。

因此明显地,为了在高效缓存和实时性之间取得更好的平衡,我们需要为不同的业务数据,根据各自的稳定程序,为其选择不同的缓存策略。以便得到合理的划分,分配正确的缓存策略。

通过上面新视角的划分,结合数据的使用场景,我们可以得到数据稳定-访问象限分布图。

图2-10 数据稳定-访问象限分布图

图2-10 数据稳定-访问象限分布图

在进行了这么多理论的说明后,让我们结合个示例来实践一下。

假设,我们的Shop商城项目中,有三种缓存机制,分别是:

则可以创建三个对应的模型代理目录,如下:

$ tree ./Shop/ModelProxy/
./Shop/ModelProxy/
├── Heavy      # 重量级缓存├── Light      # 轻量级缓存└── Realtime   # 实时数据

并且,假设我们有四份这样的数据:

经过分析数据的稳定性和来源,可以得到以下这样的缓存策略分配。

表2-10 业务数据的缓存策略示例

业务数据

缓存策略

考虑点

商品信息

重量级缓存

商品信息可共享缓存,并且访问量大,需避免DB穿透

推荐商品

实时数据

每个用户所看到的推荐商品不一样,需要千人千面

站点配置

轻量级缓存

适合使用单机缓存,且允许回源到文件

在Model层的目录里,默认情况下,数据来源于数据库。如果有其他来源的数据,可在Model目录里面添加子目录,以示区分。如添加以下目录:

$ tree ./Shop/Model/
./Shop/Model/
├── Connector # 连接器,与外部接口进行通信├── File      # 文件数据

然后,在Model相应的子目录里实现对应业务数据的原始操作。假设最终的实现文件列表如下:

./Shop/Model/Connector/Recommend.php # 推荐商品./Shop/Model/File/SiteConfig.php     # 站点配置./Shop/Model/Goods.php               # 商品信息

接着,在ModelProxy层,各自添加相应的缓存策略,如下:

./Shop/ModelProxy/Heavy/Goods.php        # 重量级的商品信息./Shop/ModelProxy/Light/SiteConfig.php   # 轻量级的站点配置./Shop/ModelProxy/Realtime/Recommend.php # 实时的推荐商品

至此,我们便得到了一个清晰的数据划分。对于每个业务数据,我们都能一种更细粒度上的管理和分布视角。同时对于何种业务数据使用何种缓存策略也一目了解。当然,这里只是作为一个示例,实际项目中,还应实现完善各种缓存策略的基类,以及添加类似下面这样的查询类。

./Shop/ModelProxy/Query/Goods.php      # 商品信息查询参数类./Shop/ModelProxy/Query/Recommond.php  # 推荐商品查询参数类./Shop/ModelProxy/Query/SiteConfig.php # 站点配置查询参数类

虽然这种方案,可以提供更清晰、更可视化的数据管理,但与此同时也引入了一定的复杂性,建议在大型项目中优先考虑采用,在小型项目中可以先快速迭代再逐渐演进考虑。

2.4 配置

在学习了接口请求、接口响应和ADM架构模式后,我们已经掌握了接口服务开发的基本流程。在进入数据库操作和缓存的使用前,我们还要先来学习一下配置的使用。因为后面的数据库和缓存相关配置信息,都需要使用配置来获取。

2.4.1 配置的简单读取

默认情况下,项目里会有以下三个配置文件:

$ tree ./Config/
./Config/
├── app.php
├── dbs.php
└── sys.php

其中app.php为项目应用配置;dbs.php为分布式存储的数据库配置;sys.php为不同环境下的系统配置。

在初始化文件,默认已注册配置组件服务。

//$ vim ./Public/init.php// 配置DI()->config = new PhalApi_Config_File(API_ROOT . '/Config');

假设app.php配置文件里有:

return array(    'version' => '1.1.1',    'email' => array(        'address' => 'chanzonghuang@gmail.com',
    );
);

可以分别这样根据需要获取配置:

// app.php里面的全部配置DI()->config->get('app');                //返回:array( ... ... )// app.php里面的单个配置DI()->config->get('app.version');        //返回:1.1.1// app.php里面的多级配置DI()->config->get('app.email.address');  //返回:'chanzonghuang@gmail.com'

其他配置文件的读取类似,你也可以根据需要添加新的配置文件。

2.4.2 配置管理策略

可以说,在项目开发中,除了我们的代码、数据和文档外,配置也是一块相当重要的组成部分,而且占据着非常重要的位置。最为明显的是,如果配置一旦出错,就很可能影响到整个系统的运行,并且远比修改再上线发布的代码影响的速度要快。

这里将讨论另外一个同样重要的问题,即:不同环境下不同配置的管理和切换。现在将不同的策略分说如下。

支持整包发布的环境变量配置

此种策略的主要方法就是在PHP代码中读取php-fpm中的ENV环境配置,再对应到Linux环境下的profile环境变量,即:

PHP代码 --> $_ENV环境配置 --> Linux服务器环境变量/etc/profile

这样的好处莫过于可以支持项目代码的整包发布,而不需要在各个环境(开发环境、测试环境、回归环境、预发布环境、生产环境)来回修改切换配置,同时运维可以更好地保护服务器的账号和密码而不让开发知道。

而这样的不足则是,在对项目进行初次部署时,需要添加以上一系列的配置,而且后期维护也比较复杂麻烦,特别当机器多时。这时可以通过pupple/stacksalt这些运维工具进行自动化管理。但对于开发来说,依然会觉得有点烦锁。


平凉网站建设平凉网络公司平凉做网站、平凉微信公众号开发、平凉网站设计、平凉小程序制作


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站