分布式部署①

📑打牌 : da pai ge的个人主页
🌤️个人专栏 : da pai ge的博客专栏
☁️宝剑锋从磨砺出,梅花香自苦寒来
1. 需要部署的服务
Nacos 理论上,应该是集群的模式
MySQL 理论上,应该是集群的模式
网关服务 单例
订单服务>多例
商品服务>多例

2机器个数
1-N 都可以

3MySQL部署操作
2.1 MySQL安装
1安装MySQL
http://t.csdnimg.cn/lfrgA
CENTOS7wget https://dev.mysql.com/get/mysql80-community
release-el7-11.noarch.rpm//
安装发布包
yum -y install mysql80-community-release-el7-11.noarch.rpm
//
安装MySQL, 中间输⼊Y
systemctl start mysqld
systemctl enable mysqld首次安装成功,MySQL把root⽤⼾的默认密码保存在错误⽇志中grep "password" /var/log/mysqld.log&hpkaqO:c4oK #默认⽣成的密码mysql -uroot -p修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'yyds.666';Query OK, 0 rows affected (0.01 sec)


2. 数据初始化
直接复制
- 订单服务-- 建库
create database if not exists cloud_order charset utf8mb4;use cloud_order;
-- 订单表
DROP TABLE IF EXISTS order_detail;
CREATE TABLE order_detail (`id` INT NOT NULL AUTO_INCREMENT COMMENT '订单id',`user_id` BIGINT ( 20 ) NOT NULL COMMENT '用户ID',`product_id` BIGINT ( 20 ) NULL COMMENT '产品id',`num` INT ( 10 ) NULL DEFAULT 0 COMMENT '下单数量',`price` BIGINT ( 20 ) NOT NULL COMMENT '实付款',`delete_flag` TINYINT ( 4 ) NULL DEFAULT 0,`create_time` DATETIME DEFAULT now(),`update_time` DATETIME DEFAULT now(),
PRIMARY KEY ( id )) ENGINE = INNODB DEFAULT CHARACTER
SET = utf8mb4 COMMENT = '订单表';-- 数据初始化
insert into order_detail (user_id,product_id,num,price)
values
(2001, 1001,1,99), (2002, 1002,1,30), (2001, 1003,1,40),
(2003, 1004,3,58), (2004, 1005,7,85), (2005, 1006,7,94);-- 产品服务
create database if not exists cloud_product charset utf8mb4;-- 产品表
use cloud_product;
DROP TABLE IF EXISTS product_detail;
CREATE TABLE product_detail (`id` INT NOT NULL AUTO_INCREMENT COMMENT '产品id',`product_name` varchar ( 128 ) NULL COMMENT '产品名称',`product_price` BIGINT ( 20 ) NOT NULL COMMENT '产品价格',`state` TINYINT ( 4 ) NULL DEFAULT 0 COMMENT '产品状态 0-有效 1-下架',`create_time` DATETIME DEFAULT now(),`update_time` DATETIME DEFAULT now(),
PRIMARY KEY ( id )) ENGINE = INNODB DEFAULT CHARACTER
SET = utf8mb4 COMMENT = '产品表';-- 数据初始化
insert into product_detail (id, product_name,product_price,state)
values
(1001,"T恤", 101, 0), (1002, "短袖",30, 0), (1003, "短裤",44, 0),
(1004, "卫衣",58, 0), (1005, "马甲",98, 0),(1006,"羽绒服", 101, 0),
(1007, "冲锋衣",30, 0), (1008, "袜子",44, 0), (1009, "鞋子",58, 0),
(10010, "毛衣",98, 0);
3. 对其他服务器授权
grant 权限 on 数据库对象to ⽤⼾
修改bind-address
修改⽂件路径:/etc/mysql/mysql.conf.d/mysqld.cnf
重启MySQL服务器
systemctl restart mysql
开放3306端⼝号
测试授权结果
使⽤CMD客⼾端,连接服务器MySQL

4nacos部署
下载JDK
下载地址:https://www.oracle.com/java/technologies/downloads/#java17
centos7 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpmyum -y install jdk-17_linux-x64_bin.rpm验证 java -version
上传nacos 启动服务 开放对应端⼝号



测试
访问接⼝:http://110.41.51.65:8080

5产品服务,订单服务部署
下载JDK
centos7 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpmyum -y install jdk-17_linux-x64_bin.rpm验证 java -version
确认配置, 代码, 打包
注意事项


常见问题
一nacos 没找到配置项


解决方法
进入nacos


问题2
安装lrzsz即可
问题三 数据库错误


然后在重新打包上传服务器
打包完会显示相关路径
.把包上传到服务器(注意: 先把老的java进程杀掉) 启动程序 
问题四 内网IP


运行代码改成这个即可 nohup java -jar order-service-1.0-SNAPSHOT.jar --
spring.cloud.nacos.discovery.ip=162.14.71.227 >logs/order.log &
接着访问外网IP

登录服务器,上传Jar包
打包流程 
ls
order-service-1.0-SNAPSHOT.jar product-service-1.0-SNAPSHOT.jar
启动服务
nohup java -jar product-service-1.0-SNAPSHOT.jar --
spring.cloud.nacos.discovery.ip=162.14.71.227 >logs/product.log &nohup java -jar order-service-1.0-SNAPSHOT.jar --
spring.cloud.nacos.discovery.ip=162.14.71.227 >logs/order.log &
开放对应端⼝号 测试
产品服务:http://162.14.71.227:10030/product/1001
订单服务:http://162.14.71.227:10040/order/1
6⽹关服务部署
安装JDK
登录服务器,上传Jar包
启动服务
nohup java -jar gateway-1.0-SNAPSHOT.jar --server.port=8080 >logs/gateway.log &
开放对应端⼝号 测试
产品服务:http://120.78.126.148:8080/product/1001

相关文章:
分布式部署①
📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 1. 需要部署的服务 Nacos 理论上,应…...
开源可视化大屏superset Docker环境部署
superset 开源可视化大屏Docker环境部署 前言 superset是俄罗斯开源的一款可视化大屏,用于数据可视化探索,含有丰富的图表组件,可以支持接入各种数据源。 接触superset就是想体验下可视化大屏功能,想最快速度安装成功ÿ…...
tomato靶场通关攻略
1.御剑2014找到IP地址 2.dirb扫描目录 3.再次详细扫描目录 4.访问找到的目录文件 进入antibots中 5.搜寻一会再info.php里面发现有东西 6.这个地方貌似可以进行利用 7.查看源代码发现包含include文件上传漏洞 8.网址后面跟?image../../../../../../../etc/passwd 9.既然可以查…...
【Spring Boot 3】【Web】处理跨域资源共享 CORS
【Spring Boot 3】【Web】处理跨域资源共享 CORS 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术…...
HUAWEI华为MateBook B5-420 i5 集显(KLCZ-WXX9,KLCZ-WDH9)原装出厂Windows10系统文件下载
适用型号:KLCZ-WXX9、KLCZ-WDH9 链接:https://pan.baidu.com/s/12xnaLtcPjZoyfCcJUHynVQ?pwdelul 提取码:elul 华为原装系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、华为浏览器、Office办公软件、华为…...
算法练习题10:leetcode76最小覆盖子串-滑动窗口
目录 题目 题目描述 约束条件 解决思路 代码 getOrDefault(c, 0) 方法 方法签名 参数 返回值 示例 getOrDefault 与 get 的主要区别 Integer 题目 题目描述 给定两个字符串 s 和 t,请你在字符串 s 中找到包含 t 中所有字符的最小子串。 要求…...
Svn常用操作技巧详细说明
TortoiseSVN是一个Windows操作系统下的Subversion客户端,它为用户提供了直观易用的界面,方便进行版本控制操作。下面是一些TortoiseSVN的常用操作技巧的详细说明: 检出代码: 在Windows资源管理器中,选择一个空文件夹&a…...
六、MySQL高级—架构介绍(1)
🌻🌻 目录 一、Mysql 简介1.1 概述1.2 Mysql 高手是怎样炼成的 二、Mysql Linux 版的安装2.1 mysql5.52.2 mysql5.7 三、Mysql 的用户与权限管理3.1 MySQL的用户管理3.2 权限管理3.3 通过工具远程访问 四、 Mysql的一些杂项配置(了解)五、 Mysql 逻辑架构…...
TensorRT-For-YOLO-Series项目:实现yolov10模型的python-tensorrt推理(对比int8与fp16推理差异)
项目地址:https://github.com/Linaom1214/TensorRT-For-YOLO-Series/tree/cuda-python 算法支持状态: 2024.6.16 Support YOLOv9, YOLOv10, changing the TensorRT version to 10.0 2023.8.15 Support cuda-python 2023.5.12 Update 2023.1.7 support YO…...
码上君量化互助社群介绍
写在前面 量化投资是一个漫长的过程,一个人单打独斗会走很多弯路,所以建立一个交流沟通互助群是有必要的。 无论是加入我的这个量化互助社群,还是加入其他的社群,首先要想想自己加入社群的目的是什么,自己想从中获得…...
Qt使用小技巧之按钮动态变化
前言 最近写小demo中无意发现的,是想实现当鼠标悬停到按钮上面的时候,按钮实现动态变化,让人知道鼠标经过了按钮,效果如下 hoverDynamicPushButton 正文 首先是将按钮的边框给去掉,然后设置下它的悬停伪状态就行了 格…...
MySQL——事务与存储过程(三)存储过程的使用(1)调用存储过程
使用存储过程可以使程序执行效率更高、安全性更好,增强程序的可重用性和维护性。接下来将针对存储过程的使用进行详细的讲解。 存储过程有多种调用方法。存储过程必须使用CALL语句调用,并且存储过程和数据库相关,如果要执行其他数据库…...
基于VUE2-dataV和echarts实现的可视化大屏,百分比适配PC端
可视化平台中,数据分别通过仪表盘、环状图、柱形图、曲线图、 滚动表格等多种形式展示数据变化。 可视化平台大致分为左、中、右三部分,左侧由能耗总览、耗能 占比、库存预警构成,中间由数据总览、销售计划完成率构成,右侧 由销售…...
FastAPI模块化:为复杂应用程序提供清晰的结构
开题描述: 在现代软件开发中,随着应用程序规模的扩大和功能的增加,传统的单体架构逐渐暴露出其局限性。FastAPI,作为一款高性能的现代Web框架,通过其模块化设计提供了一种解决方案。本文将探讨FastAPI模块化如何为构建…...
【Hot100】LeetCode—215. 数组中的第K个最大元素
目录 1- 思路快速选择 2- 实现⭐215. 数组中的第K个最大元素——题解思路 3- ACM实现 原题连接:215. 数组中的第K个最大元素 1- 思路 快速选择 第 k 大的元素的数组下标: int target nums.length - k 1- 根据 partition 分割的区间来判断当前处理方式…...
pycharm如何安装selenium
在pycharm中打开一个项目后,点击Setting(ALTCtrlS快捷键) 然后点击install package完成后点击关闭这个窗口,就可以在代码中使用selenium了 成功后出现如下界面 编写一段正常可以运行操作chorme浏览器的 from selenium import webdriver # 指定ChromeDriver的路径driver we…...
css三点闪烁(可用于加载样式、标题等)
代码案例 HTML <div class"flexAlign loading"><div class"loading_item"></div><div class"loading_item"></div><div class"loading_item"></div> </div> <div class"ot…...
支持向量机 (Support Vector Machines, SVM)
支持向量机 (Support Vector Machines, SVM) 通俗易懂算法 支持向量机(SVM)是一种用于分类和回归任务的机器学习算法。在最简单的情况下,SVM是一种线性分类器,适用于二分类问题。它的基本思想是找到一个超平面(在二维…...
上海市计算机学会竞赛平台2024年8月月赛丙组调和级数
题目描述 给定一个整数 nn,记 ⌊x⌋⌊x⌋ 表示不超过实数 xx 的最大整数,请求出 ⌊n1⌋⌊n2⌋⌊n3⌋⋯⌊nn−1⌋⌊nn⌋⌊1n⌋⌊2n⌋⌊3n⌋⋯⌊n−1n⌋⌊nn⌋ 输入格式 单个整数:表示 nn 输出格式 单个整数:表示答…...
【重学 MySQL】二十、运算符的优先级
【重学 MySQL】二十、运算符的优先级 MySQL 运算符的优先级(由高到低)注意事项示例 在 MySQL 中,运算符的优先级决定了在表达式中各个运算符被计算的先后顺序。了解运算符的优先级对于编写正确且高效的 SQL 语句至关重要。以下是根据高权威性…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
