在线
客服

芸众在线客服服务时间: 工作日9:00-18:00(其余时间请加微信)

选择下列客服马上在线沟通:

快速
发帖

客服
热线

02029887215
7*24小时客服服务热线

关注
微信

添加微信好友
顶部

[部署/环境配置] 芸众商城系统负载均衡/集群建议方案

开发 开发 8141 人阅读 | 4 人回复

发表于 2018-8-21 09:11:30 | 显示全部楼层 |阅读模式

温馨提示:帖子内容附有图文说明,须登录查看!
⚠️自行搭建集群环境的,芸众不提供任何除本帖外的技术、文档支持,如自行搭建集群环境导致的程序问题,芸众不承诺提供任何免费的售后支持!

本建议方案是基本集群方案,具体方案需要根据需求评估设计!方案拓扑图如下:




执⾏概要
具体⽬标
提⾼商城系统可⽤性SLA(99.9%),实现商城⾼并发,⾼负时,将任务分配到集群的节点中进⾏处理。避免单台处理出现瓶颈问题。

⽬标
架构实施后:
1.动静态服务器、数据库服务器可横向扩容。
2.避免单点故障
3.使⽤redis作为数据库缓存

解决⽅案
1.使⽤动静分离技术,动态和静态资源分布到不同服务器处理。
2.数据库使⽤读写分离技术,减轻商城读数据压⼒。
3.使⽤redis服务器减轻⾼负载时对数据库服务器的冲击

项⽬⼤纲
• 访问流程
1.客户通过互联⽹访问GSLB或CDN,进⼊负载均衡器(购买阿⾥云负载均衡)
2.通过负载均衡器进⼊静态服务器组(nginx)2核4G*2台。
3.动态服务器组(php)4核8G*3台,处理php动态资源
4.redis服务器(标准版双副本2G主从)
5.数据库实现读写分离(阿⾥云rds)读写实例:8核16G。只读实例:8核16G(读写分离可选)

项目预算
1.单价为⽉付费,按实际使⽤量计算总价,只包含购买阿⾥云实例的价格。项目预算阿里云部分取2020年9月官方报价。
2.部署项⽬⼯期+测试需2周,见下图!

注:特别提醒,服务器预算只是按月实例费用,不包含按量费用预估,具体费用以阿里云报价为准!

商城系统相关配置
配置守护进程
使用nginx或apache运行的用户执行,这个必须开机就执行
/path/to/yun_shop/daemon.sh /path/to/php

可以使用supervisor去管理进程
集群客户需要修改
supervisord.conf需要修改如下
[inet_http_server]   
port=*:9001

守护进程配置
[program:domain]
process_name=%(program_name)s_%(process_num)02d
command=/path/to/daemon.sh /path/to/php
autostart=true
autorestart=true
user=www
numprocs=1
redirect_stderr=true
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=5
stdout_logfile=/path/to/storage/logs/worker.log

说明:
/path/to/daemon.sh     daemon.sh文件位置
/path/to/php               php执行文件位置
/path/to/storage/logs/worker.log      日志位置

商城后台填写相应服务器内网ip
多少台后端服务器安装supervisor就填多少台

重启守护进程必须全部都需要重启.不能只重启一个守护进程

服务器维护时,需要在上图中删除对应下线的机器,不然点概括会一直loading.....

独立框架读写分离设置:
database/config.php 配置 读库信息

<?php
$config = array();

$config['db']['master']['host'] = 'IP';
$config['db']['master']['username'] = 'USER';
$config['db']['master']['password'] = 'PASSWORD';
$config['db']['master']['port'] = '3306';
$config['db']['master']['database'] = 'DBNAME';
$config['db']['master']['tablepre'] = 'ims_';


$config['db']['slave_status'] = true;
$config['db']['slave']['1']['host'] = 'IP';
$config['db']['slave']['1']['username'] = 'USER';
$config['db']['slave']['1']['password'] = 'PASSWORD';
$config['db']['slave']['1']['port'] = '3306';
$config['db']['slave']['1']['database'] = 'DBNAME';
$config['db']['slave']['1']['tablepre'] = 'ims_';


商城跟目录下编辑.env 添加 DB_CONNECTION=mysql_slave 为开启读写分离


注意:
1、底层架构是负载均衡的,如使用supervisor管理进程需要每台后端服务器都安装配置好supervisor
2、迁移服务器务必删除商城目录下bootstrap/cache/config.php缓存文件,并重启php程序(微擎版迁移也必须操作
3.不要放通9001对公网访问,出问题的自行负责.




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

回答|共 4 个

admin

发表于 2018-12-9 15:51:22 | 显示全部楼层

登录后可以看到项目实施拓扑图、价格预算;
如果您的量比较大,建议项目启动时就进行集群部署,否则后期部署将需要相应的测试、迁移时间!测试预计一周(不影响使用)、迁移1-2天(需要停机进行)。
回复

使用道具 举报

admin

发表于 2018-12-9 16:41:10 | 显示全部楼层

admin 发表于 2018-12-9 15:51
登录后可以看到项目实施拓扑图、价格预算;
如果您的量比较大,建议项目启动时就进行集群部署,否则后期部 ...

嘻嘻
回复

使用道具 举报

houweixin8888

发表于 2018-12-30 22:19:06 | 显示全部楼层

回复

使用道具 举报

hkadmins

发表于 2021-1-10 03:21:54 | 显示全部楼层

本帖最后由 hkadmins 于 2021-1-10 03:23 编辑

程序环境要求太高了吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

admin

发表主题 0

热门推荐