电商实战练习部署

基于阿里云ECS服务器实战部署

1 单架构部署方案

1.1 部署流程

传统方案

在这里插入图片描述

基于docker

在这里插入图片描述

2 持续集成&持续部署方案

随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件
开发的质量已经慢慢成为开发过程中不可回避的问题。互联网软件的开发和发布,已经形成了一套标准流程。

如: 在互联网企业中,每时每刻都有需求的变更,bug的修复, 为了将改动及时更新到生产服务器上,下面的图片我们需要每天执行N多次,开发人员完整代码自测后提交到git,然后需要将git中最新的代码生成镜像并部署到测试服务器,如果测试通过了还需要将最新代码部署到生产服务器。如果采用手动方式操作,那将会浪费大量的时间浪费在运维部署方面。

在这里插入图片描述

现在的互联网企业,基本都会采用以下方案解决:

持续集成(Continuous integration,简称 CI)。

持续部署(continuous deployment, 简称 CD)

2.1 持续集成

持续集成 (Continuous integration,简称 CI) 指的是,频繁地(一天多次)将代码集成到主干。

它的好处主要有两个。

1、快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。

2、防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

Martin Fowler 说过,”持续集成并不能消除 Bug,而是让它们非常容易发现和改正。”

与持续集成相关的,还有两个概念,分别是持续交付和持续部署。

2.2 持续部署

持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。

持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。

持续部署的前提是能自动化完成测试、构建、部署等步骤。

2.3 流程说明

为了保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复
过程以节省时间、费用和工作量;接下来我们会演示一套基本的自动化持续集成和持续部署方案,来帮助大家理解互联网企业的软件部署方案。

计划如下:

在这里插入图片描述

1. 开发人员将代码提交到 git 指定分支   如: dev

2. git仓库触发push事件,发送webhooks通知到持续集成软件

3. 持续集成软件触发构建任务,对dev分支的代码进行构建、编译、单元测试

4. 如果构建失败,发送邮件提醒代码提交人员或管理员

5. 如果构建成功,最新代码将会被构建Docker镜像并上传到注册中心

6. 构建成功触发webhooks通知容器编排软件,进行服务升级

7. 容器编排软件,触发对应的服务升级任务, 将创建对应服务的新容器替换之前的容器

8. 完成最新代码的自动构建与自动部署,全程无工作人员干预

3 ECS服务器准备

3.1 ECS服务器购买

购买地址: 阿里云ECS

1 选择配置

在这里插入图片描述

2 选择服务和对应的操作系统

在这里插入图片描述

3 选择网络带宽 5M

默认5m即可,当然想更快可以设置大一些,但流量是单独收费的

在这里插入图片描述

4 直接点击确认订单

在这里插入图片描述

5 点击创建实例

在这里插入图片描述

image-20210403161041703

点击管理控制台进入服务器管理界面如下:

在这里插入图片描述

其中:

公网IP: 47.103.2.34.130

私网IP: 172.20.170.76

收到短信: 发送服务器的 密码

重置密码:

在这里插入图片描述

在这里插入图片描述

接收短信后,立即重启生效.

3.2 客户端工具连接

推荐使用 finalshell 连接.

1 打开 finalshell 创建 ssh 连接

在这里插入图片描述

2 输入 阿里云的 用户名(root) 和 设置的新密码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3 安全组设置

在云服务器中,只有配置了安全规则的端口才允许被外界访问

一般默认 开启: 80 (http) 443 (https) 22 (ssh远程连接) 3389 (windows远程连接)

在这里插入图片描述

在这里插入图片描述

那如果你安装了mysql 端口是3306 ,那么外界是无法直接访问到的,需要配置一下规则

在入方向中配置安全规则: ( 用户 访问 --> 阿里云)

在这里插入图片描述

如果配置端口范围: 3306/3306 那就是允许3306端口访问

但是我们的软件很多, 可以通过 1/65535 范围 来开放所有的端口访问**(不安全,学习阶段这么搞)**

4 基础环境配置

4.1 配置docker环境

(1)yum 包更新到最新

sudo yum update -y

(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

(3)设置yum源为阿里云

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(4)安装docker

sudo yum -y install docker-ce

(5)安装后查看docker版本

docker -v

(6)启动docker

systemctl start docker

#设置开机自启
systemctl enable docker

(7)阿里云镜像加速

阿里云开设了一个容器开发平台

需要注册一个属于自己的阿里云账户,登录后进入管理中心

image-20210403231903208

针对Docker客户端版本大于 3.2.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hf23ud62.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

观察镜像是否生效:

docker info

开启docker远程访问功能:

 vi /lib/systemd/system/docker.service

替换ExecStart 一行配置:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

在这里插入图片描述

# 重启docker

systemctl daemon-reload
systemctl restart docker

4.2 资料上传阿里云

全部上传到阿里云的**/root目录**

在这里插入图片描述

5软件部署和配置

5.1 相关软件部署

通过命令安装:

# * 如果下载慢,可以上传资料中的 docker-compose 文件到 /usr/local/bin/
cp /root/docker-compose /usr/local/bin/
# 修改权限
chmod +x /usr/local/bin/docker-compose

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

实战练习相关软件 一键脚本

root目录 创建 docker-compose.yml 脚本文件 拷贝下面内容

# 通过docker命令即可启动所有软件
version: '3'
services:
  mysql:
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - "/root/mysql/conf:/etc/mysql/conf.d"
      - "/root/mysql/logs:/logs"
      - "/root/mysql/data:/var/lib/mysql"
      - "/root/mysql/init:/docker-entrypoint-initdb.d/"
    environment:
      - MYSQL_ROOT_PASSWORD=root
    restart: always
  nacos:
    image: nacos/nacos-server:1.3.2
    ports:
      - "8848:8848"
    restart: always
    environment:
      - MODE=standalone
      - JVM_XMS=512m
      - JVM_XMX=512m
      - JVM_XMN=256m
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=mysql
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=root
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - NACOS_SERVER_IP=101.132.251.26
    depends_on:
      - mysql
  xxljob:
    image: xuxueli/xxl-job-admin:2.2.0
    volumes:
      - "/tmp:/data/applogs"
    environment:
      PARAMS: "--spring.datasource.url=jdbc:mysql://101.132.251.26:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root"
    ports:
      - "8888:8080"
    depends_on:
      - mysql
    restart: always
  redis:
    image: redis:6.2.5
    ports:
      - "6379:6379"
    restart: always
    command: redis-server --appendonly yes --requirepass root
  elasticsearch:
    image: elasticsearch:7.12.1
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - "discovery.type=single-node"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - "/root/elasticsearch:/usr/share/elasticsearch/plugins"
    restart: always
  kibana:
    image: kibana:7.12.1
    links:
      - elasticsearch
    environment:
      - "ELASTICSEARCH_URL=http://elasticsearch:9200"
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    restart: always
  mq:
    image: rabbitmq:3.8-management
    restart: always
    ports:
      - 5672:5672
      - 15672:15672
    volumes:
      - "mq-config:/plugins"
    environment:
      - "RABBITMQ_DEFAULT_USER=itcast"
      - "RABBITMQ_DEFAULT_PASS=123321"
volumes:
  mq-config: 

使用步骤

运行所有容器:

# 运行
docker-compose up -d
# 停止
docker-compose stop
# 停止并删除容器
docker-compose down
# 查看日志
docker-compose logs -f [service...]
# 查看命令
docker-compose --help

5.2 相关软件配置

创建es索引库

PUT /item
{
  "settings": {
    "analysis": {
      "analyzer": {
        "text_anlyzer": {
          "tokenizer": "ik_max_word",
          "filter": "py"
        },
        "completion_analyzer": {
          "tokenizer": "keyword",
          "filter": "py"
        }
      },
      "filter": {
        "py": {
          "type": "pinyin",
          "keep_full_pinyin": false,
          "keep_joined_full_pinyin": true,
          "keep_original": true,
          "limit_first_letter_length": 16,
          "remove_duplicated_term": true,
          "none_chinese_pinyin_tokenize": false
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "id":{
        "type": "keyword"
      },
      "name":{
        "type": "text",
        "analyzer": "text_anlyzer",
        "search_analyzer": "ik_smart",
        "copy_to": "all"
      },
      "image":{
        "type": "keyword",
        "index": false
      },
      "price":{
        "type": "long"
      },
      "brand":{
        "type": "keyword",
        "copy_to": "all"
      },
      "category":{
        "type": "keyword",
        "copy_to": "all"
      },
      "sold":{
        "type": "integer"
      },
      "commentCount":{
        "type": "integer"
      },
      "isAd":{
        "type": "boolean"
      },
      "all":{
        "type": "text",
        "analyzer": "text_anlyzer",
        "search_analyzer": "ik_smart"
      },
      "suggestion":{
          "type": "completion",
          "analyzer": "completion_analyzer"
      }
    }
  }
}

rabbitmq安装延迟队列 (暂不需要)

# 将mq的延迟插件拷贝至挂在目录
cp /root/rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez /var/lib/docker/volumes/root_mq-config/_data

# 进入rabbitmq容器
docker exec -it root_mq_1 bash

# 开启插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

6. 准备持续集成软件jenkins

6.1 Jenkins环境搭建

执行docker命令安装:

docker run --name jenkins -u root -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean

管理后台初始化设置

http://服务器IP:8080/

第一次访问需要管理员密码:

docker exec -it jenkins bash

cat /var/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述

解锁后 选择安装推荐的插件

在这里插入图片描述

在这里插入图片描述

这一步等待时间较长, 安装完成之后, 创建管理员用户:

在这里插入图片描述

安装 maven集成插件

在这里插入图片描述

安装git插件

在这里插入图片描述

6.2 Jenkins插件安装

在实现持续集成之前, 需要确保以下插件安装成功。

  • Maven Integration plugin: Maven 集成管理插件。(必装)
  • Git: Git 集成插件。(必装)
  • Gitee: Git 集成插件。(选装)

安装方法:

  1. 进入【系统管理】-【插件管理】

  2. 点击标签页的【可选插件】

    在过滤框中搜索插件名称

    在这里插入图片描述

  3. 勾选插件, 点击直接安装即可。

注意,如果上面安装正常,无需配置 如果没有安装按钮,或者安装失败 需要更改配置

在安装插件的高级配置中,修改升级站点的连接为:http://updates.jenkins.io/update-center.json 保存

在这里插入图片描述

在这里插入图片描述

安装完毕后重启jenkins

systemctl restart jenkins

6.3 jenkins全局配置

配置maven环境

上传maven 至 /var/jenkins_home 目录:

cp /root/apache-maven-3.3.9.zip  /var/jenkins_home
# 下载unzip命令
yum install -y unzip
# 将压缩包上传至 /usr/local/maven下 解压
unzip -o /var/jenkins_home/apache-maven-3.3.9.zip

进入【系统管理】–> 【全局工具配置】

在这里插入图片描述

  1. MAVEN配置全局设置

    在这里插入图片描述

  2. 指定JDK配置

    不用指定, 前面已安装

  3. 指定MAVEN 目录

点击新增maven 配置name: maven 配置maven地址: /var/jenkins_home/apache-maven-3.3.9

在这里插入图片描述

7 微服务持续部署

每个微服务使用的dockerfile的方式进行构建镜像后创建容器,需要在每个微服务中添加docker相关的配置

(1)修改需要部署微服务的pom文件,添加部署配置

<build>
        <!--修改app.jar-->
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <configuration>
                    <!--镜像的名称 跳过上传到私有仓库-->
                    <imageName>139.196.153.42:5000/${project.artifactId}:${project.version}</imageName>
                    <!--上传到私有仓库-->
                    <!--<imageName>106.14.241.224:5000/${project.artifactId}:${project.version}</imageName>-->
                    <!--依赖一个基础镜像 带JDK 1.8-->
                    <baseImage>java:8-alpine</baseImage>
                    <!--java -jar app.jar -->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <dockerHost>http://139.196.153.42:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

7.1 基础依赖打包配置

构建基础依赖打包任务 hmall-cloud

点击【构建触发器】–【构建】–【增加构建步骤】–【调用顶层Maven目标】–【填写配置】–【保存】

clean install -Dmaven.test.skip=true

7.2 构建其他微服务

依次构建其它微服务 重点设置:

(1)build设置: clean package -DskipTests docker:build

在这里插入图片描述

(2)build执行Shell脚本:

在这里插入图片描述

docker rm -f item || true

docker run -id --name item -p 8081:8081 139.196.153.42:5000/hmall-service-item:1.0-SNAPSHOT || true

docker rmi $(docker images | grep "none" | awk '{print $3}') || true

删除item容器 || true 如果报错继续向下执行命令

创建item容器

删除旧的镜像

8 部署前端工程

前端:

在这里插入图片描述

修改前端资源 并 上传到服务器:

修改hm-mall-admin 下 index.html页面中网关的路径 改为服务器路径

在这里插入图片描述

修改hm-mall-portal / js 下 common.js中网关的路径 改为服务器路径

在这里插入图片描述

# 创建nginx容器
docker run -id --name nginx -p 80:80 -p 9001:9001 -p 9002:9002 nginx

# 将前端资源拷贝到nginx中
docker cp hm-mall-admin nginx:/
docker cp hm-mall-portal nginx:/
docker cp nginx.conf nginx:/etc/nginx/

# 重启nginx
docker restart nginx

9 基于webhook实现自动构建

(1) 此功能需要下载gitee插件

(2) 有插件后 在构建触发器中勾选Gitee webhook触发构建

在这里插入图片描述

(3)生成构建触发密码

在这里插入图片描述

(4)打开Gitee仓库,设置webhooks钩子

在这里插入图片描述

(5)将jenkins中的触发路径触发密码 写入到表单

在这里插入图片描述

(6)点击测试 查看jenkins任务是否触发,如果触发代表成功

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369081.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

153基于matlab的滚动轴承故障诊断

基于matlab的滚动轴承故障诊断&#xff0c;基于小波包分解&#xff0c;得到数据峭度值&#xff0c;以正常与故障数据峭度差值进行最大尺度重构&#xff0c;对重构信号进行包络谱分析。程序已调通&#xff0c;可直接运行。 153matlab 信号重构 包络谱分析 故障诊断 (xiaohongshu…

通过html2canvas和jsPDF将网页内容导出成pdf

jsPDF参考&#xff1a;https://github.com/parallax/jsPDF html2canvas参考&#xff1a;https://github.com/niklasvh/html2canvas 或者 https://html2canvas.hertzen.com 思路 使用html2canvas将选中DOM生成截图对象将截图对象借助jsPDF导出为PDF文件 代码 这是一个示例&a…

gorm day1

gorm day1 gorm简介gorm声明模型 代码样例基本来自官方文档 Gorm简介 什么是ORM&#xff1f; 对象关系映射(Objection Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库(如mysql数据库&#xff09;存在的互不匹配现象的计数。简单来说&#xff0c;ORM是通…

西瓜书学习笔记——主成分分析(公式推导+举例应用)

文章目录 算法介绍实验分析 算法介绍 主成分分析&#xff08;Principal Component Analysis&#xff0c;PCA&#xff09;是一种常用的降维技术&#xff0c;用于在高维数据中发现最重要的特征或主成分。PCA的目标是通过线性变换将原始数据转换成一组新的特征&#xff0c;这些新…

C++ OpenGL绘制三维立体skybox场景obj模型AABB碰撞检测旋转动画界面

程序示例精选 C OpenGL绘制三维立体skybox场景obj模型AABB碰撞检测旋转动画界面 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《C OpenGL绘制三维立体skybox场景obj模型AABB碰撞检测旋转动…

HBase 数据导入导出

HBase 数据导入导出 1. 使用 Docker 部署 HBase2. HBase 命令查找3. 命令行操作 HBase3.1 HBase shell 命令3.2 查看命名空间3.3 查看命名空间下的表3.4 新建命名空间3.5 查看具体表结构3.6 创建表 4. HBase 数据导出、导入4.1 导出 HBase 中的某个表数据4.2 导入 HBase 中的某…

从源代码看Chrome 版本号

一直以来都是用Chrome 浏览器&#xff0c;但是看到Chrome 点分4 组数据的表达方式&#xff0c;总是感觉怪怪的&#xff0c;遂深入源代码了解她的版本号具体表示的内容 chrome 浏览器中显示的版本号 源代码中的版本号标识 版本号文件位于 chrome/VERSION &#xff0c; 看到源代…

nginx初学者指南

一、启动、停止和重新加载配置 前提&#xff1a;先要启动nginx 在Windows上启动nginx的步骤如下&#xff1a; 1. 下载并安装nginx。可以从nginx官网下载适合自己操作系统的版本&#xff0c;一般是zip压缩包&#xff0c;解压到指定目录中。 2. 进入nginx的安装目录&#xff…

Shell脚本⑧免交互

目录 一.Here Document 1.定义 2.变量 &#xff08;1&#xff09;变量替换成实际值 &#xff08;2&#xff09;整行内容作为变量并输出结果 &#xff08;3&#xff09;多行注释 &#xff08;4&#xff09;自动划分磁盘免交互 二.Expect 1.定义 2.安装 3.免交互操作 …

微软的Copilot for Sales(销售助手)和Copilot for Service(服务助手)现已全面开放

深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领域的领跑者。点击订阅&#xff0c;与未来同行&#xff01; 订阅&#xff1a;https://rengongzhineng.io/ 。 微…

基于控制台的购书系统(Java 语言实现)

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》|《数据结构与算法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢…

Llama2大模型开源,大模型的Android时代来了?

就昨天凌晨,微软和Meta宣布Llama2大模型开源且进一步放开商用,一下朋友圈刷屏。要知道,开源界最强大的模型就是过去Meta开源的Llama,而现在Llama2更强大,又开放商用,更有微软大模型霸主企业撑腰(微软既投资大模型界的IOS——ChatGPT,又联合发布大模型的Android——Llam…

【DDD】学习笔记-什么是模型

从领域驱动的战略设计进入战术设计&#xff0c;简单说来&#xff0c;就是跨过系统视角的限界上下文边界进入它的内部&#xff0c;从分层架构的逻辑分层进入到每一层的内部。在思考内部的设计细节时&#xff0c;首先需要思考的问题就是&#xff1a;什么是模型&#xff08;Model&…

Leaf——美团点评分布式ID生成系统

0.普通算法生成id的缺点 1.Leaf-segment数据库方案 第一种Leaf-segment方案&#xff0c;在使用数据库的方案上&#xff0c;做了如下改变&#xff1a; - 原方案每次获取ID都得读写一次数据库&#xff0c;造成数据库压力大。改为利用proxy server批量获取&#xff0c;每次获取一…

x-shell安装、使用以及配置cuda、cudnn和conda

x-shell安装、使用以及安装最新版本conda x-shell安装远程连接服务器conda安装和环境配置 x-shell安装 x-shell是一款终端模拟软件&#xff0c;用于在Windows界面下远程访问和使用不同系统下的服务器。免费版本下载地址&#xff1a; https://www.xshell.com/zh/free-for-home-…

网络流数据集处理(深度学习数据处理基础)

一、数据集处理 处理数据集是一个文件夹 一个文件夹处理的&#xff0c;将原网络流数据集 放入一个文件夹 处理转换成 Json文件。&#xff08;数据预处理&#xff09;然后将这些文件处理成目标文件格式 再分割成训练集和测试集。每次运行只会处理一个文件夹。 运行train.py 导入…

070:vue中provide、inject的使用方法(图文示例)

第070个 查看专栏目录: VUE 本文章目录 示例背景示例效果图示例源代码父组件代码子组件代码孙组件代码 基本使用步骤 示例背景 本教程是介绍如何在vue中使用provide和inject。在 Vue 中&#xff0c;provide 和 inject 是用于实现祖先组件向后代组件传递数据的一种方式。 在这个…

分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别

分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别 目录 分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现G…

26条prompt规则应用于大模型

1、引入动机 llm大模型在回答一些问题上表现出了惊人的能力&#xff0c;例如数学逻辑推理&#xff0c;代码生成&#xff0c;问题答复等。提词工程是和大预言模型交流的一门艺术。 大模型的返回结合和用户的指令和输入直接相关prompts是用户和大模型沟通的一种编码方式 一般地…

python计算两个DataFrame的指定两列中,相同的数据有多少

目的&#xff1a;查询数据1和数据2中&#xff0c;red与red列相同 并且blue与blue列相同的&#xff0c;情况有多少。 &#xff08;备注&#xff1a;两个数据中格式不一致&#xff0c;需要经过json提取等处理步骤&#xff09; 思路步骤&#xff1a; 1、读取数据1&#xff0c;筛选…