CRMEB多商户商城系统阿里云集群部署教程
注意:
1.所有服务创建时地域一定要选择一致,这里我用的是杭州K区
2.文件/图片上传一定要用类似oss的云文件服务, 本文不做演示
一、 创建容器镜像服务,容器镜像服务(aliyun.com) ,个人版本就可以

- 先创建一个命名空间

- 然后创建一个镜像仓库

- 查看并记录镜像公网地址

- 创建镜像,首先保证本地已经安装号docker服务
4.1 登录阿里云docker

docker login --username=你的用户名 registry.cn-hangzhou.aliyuncs.com
Copy
4.2 拉取多商户预制镜像
docker pull leekay0218/crmeb-mer
Copy

4.3 在多商户项目根目录创建Dockerfile文件,内容为
FROM leekay0218/crmeb-mer
MAINTAINER crmeb.com# 复制代码
ADD . /var/www# 设置容器启动后的默认运行目录
WORKDIR /var/www# 默认入口命令
ENTRYPOINT ["/entrypoint.sh"]# CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。
#CMD []
CMD ["php", "-d", "memory_limit=2048M", "think", "swoole"]
Copy
二、开通阿里云mysql服务 RDS管理控制台 (aliyun.com)
- 开通服务

- 创建数据库,mysql选择5.7


- 配置按照自己的需求选择即可,我这里演示用,所以选择的最低配置

- 这里选择默认即可, 没有的话就创建一个, 后面服务需要选择同一个

- 为了方便使用,直接设置好root密码


- 等待mysql创建完成

- 开通外网地址,自行创建多商户的数据库并导入数据.这个就不做演示了

- 修改sql-mode配置为: NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER


- 刷新检查一下,确保修改成功

- 修改项目根目录.env文件中的mysql配置,如下:
填写配置并保存, 数据库配置完毕了


三、开通redis服务 云数据库Redis版管理控制台 (aliyun.com)
- 创建redis服务,区域和mysql保持一致

- 选择相同的网络配置

- 按照需求选择配置

- 设置redis密码

- 开通完成


- 等待创建完成

- 设置白名单,这里按照自己的需求设置,我这里设置0.0.0.0/0是方便演示,有安全问题


- env文件填写配置并保存, redis配置完毕了


四、 推送镜像
- 在项目根目录执行下面的命令,代码打包镜像推送到阿里云云仓库
docker build -t leekay0218/crmeb-mer .docker tag leekay0218/crmeb-mer 你的公网镜像地址docker push 你的公网镜像地址
Copy
- 推送成功后镜像更新时间会更新

五、 创建阿里云集群服务容器服务ACK_容器服务Kubernetes版_容器_云原生应用平台-阿里云 (aliyun.com)
- 创建集群,选择杭州K区


- 按照自己的需求选择,然后下一步

- 按需求选择负载均衡配置

- 创建集群

- 待集群初始化完毕

- 创建应用


- 选择镜像,tag不用填

- 按照自己的需求选择

- 填写端口,8324

- 创建应用,等待应用初始化完毕



六、 创建服务,获取公网IP
- 创建应用



- 等待应用启动完毕后,访问118.31.68.253/api/config, 有数据说明部署成功;

-
如果失败请检查镜像,可以在本地运行镜像检查是否正常. 本地运行时记得将redis和mysql的访问地址改为外网地址;
-
集群服务使用完毕后,释放时记得删除干净,并单独删除负载均衡服务,避免意外扣费;
七、代码更新及集群配置
-
后端代码更新后需要重新打包镜像并推送到阿里云docker
-
然后点击重新部署

- 修改集群服务器配置
编辑可以修改服务器配置
伸缩可以修改集群服务器数量

- 队列服务
在一个阿里云服务器中再部署一套多商户项目代码, 单独启动多商户的队列服务并运行多商户项目. 保证队列和ws可用
ws需要配置独立的域名单独访问
- 前端项目
在一个阿里云服务器中单独部署多商户的移动端,平台端,商户端. 并使用独立的域名访问, 接口地址使用集群服务的域名
集群部署完毕,感谢浏览,附件中有word文档可下载查看
多商户阿里云集群部署流程.zip
相关文章:
CRMEB多商户商城系统阿里云集群部署教程
注意: 1.所有服务创建时地域一定要选择一致,这里我用的是杭州K区 2.文件/图片上传一定要用类似oss的云文件服务, 本文不做演示 一、 创建容器镜像服务,容器镜像服务(aliyun.com) ,个人版本就可以 先创建一个命名空间 然后创建一个镜像仓库 查看并记录镜像公网地址…...
Java第三方登录封装工具类
Java中可以使用第三方登录来简化用户登录流程,常见的第三方登录如QQ、微信、微博等。下面是一个Java封装第三方登录的工具类: import java.io.IOException; import java.util.HashMap; import java.util.Map;import org.apache.http.client.ClientProto…...
BUUCTF学习(四): 文件包含tips
1、介绍 2、hackBar插件安装 教程: Hackbar插件安装-CSDN博客 3、解题 php://filter/readconvert.base64-encode/resource要读取的文件 ?filephp://filter/readconvert.base64-encode/resourceflag.php Base64 在线编码解码 | Base64 加密解密 - Base64.us 结束...
德国人工智能公司【Kodex AI】完成160万欧元融资
来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于德国柏林的人工智能公司【Kodex AI】今日宣布已完成160万欧元融资。 本轮融资由Signals VC领投,Techstars、德意志银行等天使投资者参与,其中包括:most AI首席执行官…...
LeetCode 2 两数相加
题目描述 链接:https://leetcode.cn/problems/add-two-numbers/?envTypefeatured-list&envId2ckc81c?envTypefeatured-list&envId2ckc81c 难度:中等 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式…...
springboot项目启动失败,不打印报错详细信息(启动打印日记问题)
1:出现这种我问题一般都是日记的问题,查看控制台启动打印的第一句,为什么启动失败,需要用那个日记 2:如果使用的是log4j或者logback与slf4j都是默认在依赖web自带的如下 <dependency><groupId>org.springf…...
MyBatis (where、set、foreach)标签
where标签 在上一节SQL 语句中加入了一个条件“11”,如果没有加入这个条件,那么可能就会变成下面这样一条错误的语句。 SELECT id,name,url,age,country FROM website AND name LIKE CONCAT(%,#{name},%)显然以上语句会出现 SQL 语法异常,但…...
flutter开发之安装dart
1、在MacOS系统中打开终端,进入到官网Get the Dart SDK | Dart brew tap dart-lang/dartbrew install dart 注意:若显示没有brew,请先执行第二步骤,如下: 2、打开homebrew的官网Homebrew — The Missing Package Man…...
向量召回:深入评估离线体系,探索优质召回方法
向量召回:深入评估离线体系,探索优质召回方法 1.简介 近年来,基于向量进行召回的做法在搜索和推荐领域都得到了比较广泛的应用,并且在学术界发表的论文中,基于向量的 dense retrieve 的方法也在不少数据集上都战胜了 sparse retrieve,吸引了越来越多的关注。在内网的不…...
播放器缓存队列bug解决方案
背景 我在开发一个播放器的缓存队列时,遇到一个bug,导致包和帧无法被下一个模块读取 找了半天,原来是队列中的包和帧数据要进行内容的刷新暂存 包数据和帧数据不能直接放入队列 //入队,包进队列 int AVPacketQueue::Push(AVPacket *val,i…...
React拖拽实践
当涉及到前端开发中的用户体验时,拖拽功能是一个常见而重要的需求。在React中,实现拖拽功能可以通过多种方式完成,但通常需要深刻理解React的状态管理、事件处理和DOM操作。本文将探讨React中拖拽的实践,包括基本原理、拖拽库的使…...
Stable Diffusion绘图,lora选择
best quality, ultra high res, (photorealistic:1.4), 1girl, off-shoulder white shirt, black tight skirt, black choker, (faded ash gray hair:1), looking at viewer, closeup <lora:koreandolllikeness_v20:0.66> 最佳品质,超高分辨率,&am…...
kube-controller-manager和kube-scheduler不能正常启动
kube-controller-manager-k8s-worker01和kube-scheduler-k8s-worker01没有启动起来 原因: 解决:进入/etc/kubernetes/manifests 编辑 将镜像地址修改为 然后重启kubelet:systemctl restart kubelet.service...
Mac OS m1 下安装Gradle5.1
1. 下载、解压 1.1 下载地址 https://gradle.org 往下翻 选择 5.1 或者选择 任何 你想要的版本 ,点击 binary-only 即可下载 . 1.2 解压到指定目录 2. 配置环境变量 2.1 编辑环境文件 vi ~/.bash_profile #GRADLE相关配置 GRADLE_HOME/Users/zxj/Documents/devSoft/grad…...
JUC并发编程面试题(自用)
线程池 1 线程池的作用:提高线程的利用率,线程复用,频繁的创建和销毁线程非常浪费资源 线程池的七大参数: corePoolSize(核心线程数):线程池中始终保持的活动线程数,即使它们处于空…...
Redis分布式会话
当探讨Redis分布式会话管理时,以下是更加详细的知识点: 1. 会话管理的挑战: 在分布式应用程序中,每个用户请求可能由不同的服务器处理。这导致了会话数据的分散性,需要一种方法来维护一致性的用户会话状态。 2. Redi…...
程序员大厂之鹅厂探秘
...
【Java 进阶篇】深入理解 JavaScript DOM Node 对象
在前端开发中,与HTML文档进行交互是一项基本任务。文档对象模型(Document Object Model,简称DOM)为开发者提供了一种以编程方式访问和操作HTML文档的方式。DOM的核心是节点(Node)对象,它代表了文…...
测试用例基础
测试用例的基本要素 测试环境, 操作步骤, 测试数据, 预期结果 测试用例的设计方法 基于需求的设计方法 需求文档 -> 梳理需求(掌握需求) -> 针对文档设计测试用例 只是针对需求进行大概的测试 具体的设计方法 等价类 等价类: 依据需求将输入(特殊情况…...
“Flex弹性布局、轮播图mock遍历数据和首页布局解析与实践“
目录 引言1. Flex弹性布局介绍及使用什么是Flex弹性布局?Flex容器与Flex项目Flex属性详解 2. 轮播图mock遍历数据简述轮播图的作用和意义处理mock数据的重要性使用Mock模拟数据遍历 3. 首页布局总结 引言 在现代网页开发中,灵活性和响应式布局是至关重要…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
