【fisco-bcos底层链】WeBASE管理平台各组件分别打包成镜像部署到k8s上亲测完成

news2024/11/15 10:26:08

【fisco-bcos底层链】WeBASE管理平台各组件分别打包成镜像部署到k8s上亲测完成

  • 前言
  • 第一步、docker 打包dockerfile书写
  • 第二步、fisco-bcos 三节点的底层链
    • 1. 更改数据库连接信息
    • 2.删除节点中运行预语句中最后的的&符号
    • 3. 具体编译的dockerfile
    • 4. 编译dockerfile生成 fisco-bcos 镜像
    • 5. 查看镜像、运行镜像等本地检查
    • 6. tag打包--推送至镜像仓库--从k8s 拉取镜像仓库中所需镜像运行
    • 7. k8s 中部署运行镜像
      • 7.1创建保密字典
      • 7.2在 k8s工作台选择创建无状态服务
      • 7.3从dcoker仓库中选择需要的镜像拉取
      • 7.4并配置容器端口
      • 7.5高级设置中选择访问模式为对外访问,下拉中选取nodeport模式
      • 7.6创建完成并运行
  • 第三步、webase-sign 签名服务
    • 1. 官方参考文档
    • 2. 创建数据库
    • 3. 创建用户表 tb_user 用于存放后续需要的用户用于签名
    • 4. 修改配置
    • 5. dockerfile 文件
    • 6. 编译dockerfile 打包成 webase-sign 镜像
    • 7. 查看镜像、运行镜像等本地检查
    • 8. tag打包--推送至镜像仓库--从k8s 拉取镜像仓库中所需镜像运行
  • 第四步、webase-front 区块链节点前置服务
    • 1. 官方参考文档
    • 2. 拉取代码后修改配置
    • 3. dockerfile文件
    • 4. 编译dockerfile 打包成 webase-front 镜像
  • 第五步、webase-node-manager 区块链节点管理服务
    • 1. 官方部署文档
    • 2. 新建数据库
    • 3. 修改脚本配置文件
    • 4. 修改服务配置
    • 5. dockerfile 文件
    • 6. 编译dockerfile 打包成 webase-node-manager 镜像
  • 第六步、webase-web 管理平台
    • 1. 官方部署文档
    • 2. 下载solc-bin
    • 3. 修改配置
    • 4. dockerfile 文件
    • 5. 编译dockerfile 打包成 webase-web镜像
  • 第七步、前端页面操作用户私钥和合约等步骤
    • 1. 登录wabase-web页面
    • 2.关联前置节点服务
    • 3.私钥管理创建用户
      • 3.1私钥管理新增用户
      • 3.2导出对应账户私钥,类型为 p12
      • 3.3导出pem 格式私钥
    • 4.编译测试合约
  • 第八步、data-export 数据导出系统服务
    • 1. 官方部署文档
    • 2. 创建数据库存放历史数据
    • 3. 修改配置
    • 4. dockerfile 文件
    • 5. 编译dockerfile 打包成 data-export镜像

前言

因公司项目规划需要,需要将区块链项目所用到的环境用 docker打包成镜像部署运行到 k8s 环境上,其中最复杂的就是区块链底层环境和管理平台的各类子组件直接的配置依赖和打包关系最为复杂,以下为我亲测打包镜像并成功部署的经验总结。(这套管理工具主要由:节点前置,签名服务,节点管理,WeBASE管理平台四个WeBASE子系统构成。WeBASE四个服务的部署架构如下图:节点前置需要和区块链节点部署在同一台机器;节点管理和WeBASE管理平台可以同机部署,也可以分开部署。)以下为子服务之间的架构关系
在这里插入图片描述

第一步、docker 打包dockerfile书写

我前一篇博文详细描述了如何将项目需要利用 docker 进行打包,其中的 dockerfile文件的书写原则可以等同借鉴用到区块链底层打包中使用,主要可参考博文mac环境把go项目打包成docker镜像推送至阿里云镜像仓库

第二步、fisco-bcos 三节点的底层链

1. 更改数据库连接信息

更改数据库配置信息,文件位置位于 nodes下 node0的 conf 中的 group.1.ini 中关于数据库相关的配置即可
在这里插入图片描述
具体修改位置如下图位置,更改为自己的数据库信息即可
在这里插入图片描述

2.删除节点中运行预语句中最后的的&符号

# 原始为
nohup ${fisco_bcos} -c config.ini >>nohup.out 2>&1 &
# 更改后
nohup ${fisco_bcos} -c config.ini >>nohup.out 2>&1

在这里插入图片描述

3. 具体编译的dockerfile

# 基础镜像
FROM fiscoorg/fiscobcos:v2.8.0
WORKDIR /fiscobcos/nodes
COPY nodes /fiscobcos/nodes/
# 暴露端口
# 区块链节点的访问端口
EXPOSE 20200 20201 20202
# 启动所有区块链节点
ENTRYPOINT ["bash","/fiscobcos/nodes/start_all.sh"]
# 启动命令
# docker run -d -p 20200:20200 --name fiscobcos fiscobcos:v1.0

4. 编译dockerfile生成 fisco-bcos 镜像

docker build -f Dockerfile -t fisco-bcos:v1.0 .

5. 查看镜像、运行镜像等本地检查

  • 注:端口设置预留为20200
 docker run -d -p 20200:20200 -it --privileged=true fisco-bcos:v1.0

6. tag打包–推送至镜像仓库–从k8s 拉取镜像仓库中所需镜像运行

docker tag [ImageId] [镜像仓库地址ip]/[区分空间名]/[镜像名]:[镜像版本号]
docker push [镜像仓库地址ip]/[区分空间名]/[镜像名]:[镜像版本号]

7. k8s 中部署运行镜像

7.1创建保密字典

在拉取服务前先配置好镜像仓库地址,即创建保密字典,这样后续才能在服务创建的时候找到拉取镜像的仓库
在这里插入图片描述

7.2在 k8s工作台选择创建无状态服务

在这里插入图片描述

7.3从dcoker仓库中选择需要的镜像拉取

在这里插入图片描述

7.4并配置容器端口

在这里插入图片描述

7.5高级设置中选择访问模式为对外访问,下拉中选取nodeport模式

在这里插入图片描述

7.6创建完成并运行

创建成功后即可看到如下所示页面,服务状态为运行中,容器端口变成对外暴露的端口为nodeport 代替,如需要对外访问,即可利用 k8s 服务所在 ip:nodeport访问到该镜像服务
在这里插入图片描述

第三步、webase-sign 签名服务

1. 官方参考文档

webase-sign签名服务部署说明文档
端口预留:5004

2. 创建数据库

拉取完代码后除环境外配置完就需要创建一个签名服务的数据库可自定义名字(例如 webasesign)

3. 创建用户表 tb_user 用于存放后续需要的用户用于签名

  • 注:步骤中未提示,需要自己创建
CREATE TABLE `tb_user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号',
  `sign_user_id` varchar(64) NOT NULL COMMENT '用户唯一的业务编号',
  `app_id` varchar(64) NOT NULL COMMENT '用户对应的应用编号',
  `address` varchar(64) NOT NULL COMMENT '用户地址',
  `public_key` varchar(256) NOT NULL COMMENT '公钥',
  `private_key` varchar(256) NOT NULL COMMENT '私钥',
  `description` varchar(128) DEFAULT NULL COMMENT '描述',
  `encrypt_type` int(11) NOT NULL COMMENT '加密类型,1:国密;0:ECDSA',
  `gmt_create` datetime DEFAULT NULL COMMENT '创建时间',
  `gmt_modify` datetime DEFAULT NULL COMMENT '修改时间',
  `status` char(1) NOT NULL DEFAULT '1' COMMENT '状态: 1 有效 0 无效',
  PRIMARY KEY (`user_id`),
  UNIQUE KEY `unique_uuid` (`sign_user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=100002 DEFAULT CHARSET=utf8 COMMENT='用户信息表';

4. 修改配置

修改conf/application.yml中的数据库配置信息,修改信息如下图所示

  • 注:配置中的constant:下的aesKey,在各互联的子系统的加密key需保持一致
    在这里插入图片描述

5. dockerfile 文件

  • 注意:因环境需要 jdk1.8,所以在webase-sign文件夹同层预留了一个 jdk 环境,需要拷贝到镜像中
# 基础镜像
FROM fiscoorg/fiscobcos:v2.8.0
WORKDIR /WeBASE-Sign/dist
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
COPY WeBASE-Sign /WeBASE-Sign
# 暴露端口
EXPOSE 5004
# 入口,jar文件的启动命令 # 这里app.jar就是我的jar文件
ENTRYPOINT ["bash","/WeBASE-Sign/dist/start.sh"]

6. 编译dockerfile 打包成 webase-sign 镜像

docker build -f Dockerfile -t webase-sign:v1.0 .

7. 查看镜像、运行镜像等本地检查

 docker run -d -p 5400:5400 -it --privileged=true webase-sign:v1.0

8. tag打包–推送至镜像仓库–从k8s 拉取镜像仓库中所需镜像运行

docker tag [ImageId] [镜像仓库地址ip]/[区分空间名]/[镜像名]:[镜像版本号]
docker push [镜像仓库地址ip]/[区分空间名]/[镜像名]:[镜像版本号]

同上述相同方式在 k8s 上运行镜像服务

第四步、webase-front 区块链节点前置服务

1. 官方参考文档

webase-front 区块链节点前置服务部署说明
注:端口预留5002

2. 拉取代码后修改配置

打开 dist/conf/application.yml文件,修改位置如下图所示

  • 1、需要修改 sdk 下的 ip和channelPort,这为第一步 fisco-bcos 链部署到 k8s 后对应的 ip 和对外的端口(即nodeport)
  • 2、需要修改constant下的keyServer以及确保aesKey与 webase-sign 中的一致
    在这里插入图片描述

3. dockerfile文件

同理运用到了jdk1.8的环境

# 基础镜像
FROM fiscoorg/fiscobcos:v2.8.0
WORKDIR /WeBASE-Front/dist
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
COPY dist /WeBASE-Front/dist
# 暴露端口
EXPOSE 5002
# 入口,jar文件的启动命令 # 这里app.jar就是我的jar文件
ENTRYPOINT ["bash","/WeBASE-Front/dist/start.sh"]

4. 编译dockerfile 打包成 webase-front 镜像

docker build -f Dockerfile -t webase-front:v1.0 .

其他打包推送镜像至镜像仓库,以及部署至 k8s 上的步骤类似上文,部署完成后可通过 k8s 对应的 ip 和端口查看到前置服务关于链和节点信息等
在这里插入图片描述

第五步、webase-node-manager 区块链节点管理服务

1. 官方部署文档

webase-node-manager 区块链节点管理服务部署说明

  • 注:预留端口5001

2. 新建数据库

拉取完代码后除环境外配置完就需要创建一个节点管理服务的数据库可自定义名字(例如 node_manager),该处无需创建表,会同步拉取链上的数据

#登录MySQL:
mysql -u ${your_db_account} -p${your_db_password}  例如:mysql -u root -p123456
#新建数据库:
CREATE DATABASE IF NOT EXISTS {your_db_name} DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3. 修改脚本配置文件

进入数据库脚本目录/dist/script,修改数据库连接信息,更改webase.sh文件中关于数据库 ip、用户名、密码、数据库名等信息并重新执行脚本文件
在这里插入图片描述

4. 修改服务配置

修改路径/dist/conf/application.yml 中的application.yml

  • 修改数据库连接信息
    在这里插入图片描述
  • 修改 webase-sign 的 k8s 配置后信息
  • 注:一定是部署到 k8s 后的 ip 以及对外映射的端口(nodeport)
    在这里插入图片描述

5. dockerfile 文件

同理运用到了jdk1.8的环境

# 基础镜像
FROM fiscoorg/fiscobcos:v2.8.0
WORKDIR /WeBASE-Node-Manager/dist
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
COPY WeBASE-Node-Manager/dist /WeBASE-Node-Manager/dist/
# 暴露端口
EXPOSE 5001
# 入口,jar文件的启动命令 # 这里app.jar就是我的jar文件
ENTRYPOINT ["bash","/WeBASE-Node-Manager/dist/start.sh"]

6. 编译dockerfile 打包成 webase-node-manager 镜像

docker build -f Dockerfile -t webase-node-manager:v1.0 .

其他打包推送镜像至镜像仓库,以及部署至 k8s 上的步骤类似上文

第六步、webase-web 管理平台

1. 官方部署文档

webase-web 管理平台部署文档
注:预留端口5000

2. 下载solc-bin

拉取完代码后进去WeBASE-Web目录,执行脚本get_solc_js.sh,会自动下载solc-bin,即下面v0.4.25.js等文件

 bash ./get_solc_js.sh

执行完后检查dist/static/js是否下载完这些js文件

3. 修改配置

在docs目录下有配置文件nginx.conf,修改相关信息
注意点:错误日志文件存放拉取下来的代码没有对应文件,需要自行创建一个,例如我创建在/data/WeBASE-Web/dist/log/下的三个文件
在这里插入图片描述
然后在nginx.conf中写上对应在镜像里的存放位置
在这里插入图片描述
修改对应的 server 信息,主要修改upstream node_mgr_serve,对应 k8s 中节点管理服务运行的 ip 和对外端口,前端展示的 dist 路径在镜像的位置,端口预留5000
在这里插入图片描述

4. dockerfile 文件

# 基础镜像
FROM nginx:latest
WORKDIR /data/WeBASE-Web
COPY WeBASE-Web /data/WeBASE-Web/
# 注意本机目录不能使用绝对路径,只能从当前目录开始
COPY WeBASE-Web/docs/nginx.conf /etc/nginx/nginx.conf
# 暴露端口
# 区块链节点的访问端口
EXPOSE 5000
# 启动
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]

5. 编译dockerfile 打包成 webase-web镜像

docker build -f Dockerfile -t webase-web:v1.0 .

其他打包推送镜像至镜像仓库,以及部署至 k8s 上的步骤类似上文

第七步、前端页面操作用户私钥和合约等步骤

1. 登录wabase-web页面

通过部署完成 wabase-web 到 k8s 上之后,通过 ip 和对外端口可看到这样一个登录页面,初次登录的账户密码是admin/Abcd1234,登录后会要求修改,入验证码有问题那就是你的节点管理服务没有配置好,可以检查一下是否启动或者webase-web的节点服务配置问题
在这里插入图片描述

2.关联前置节点服务

登录进入会会要求你关联节点前置服务的 ip 和端口。即更改成你在 k8s 上部署成功的 ip 和对外端口,成功绑定后会出现如下所示的链信息和节点信息等,表示绑定前置服务成功
在这里插入图片描述

3.私钥管理创建用户

3.1私钥管理新增用户

在这里插入图片描述

3.2导出对应账户私钥,类型为 p12

在这里插入图片描述

3.3导出pem 格式私钥

在前面提过的前置服务中导入刚刚从 web 导出的用户私钥,再点击导出格式为 pem 类型,用于后续放在上链服务中获取上链用户私钥
在这里插入图片描述

4.编译测试合约

新建合约-保存-编译-部署。之后在合约列表即可查看到对应的合约地址等信息用于后续上链修改配置信息。
在这里插入图片描述
导出合约获得编译后的合约 bin 文件和 abi文件,后续扩展服务会用到
在这里插入图片描述

第八步、data-export 数据导出系统服务

1. 官方部署文档

data-export 数据导出系统服务部署说明
该服务是为了同步链上数据的所有历史操作,便于快速溯源数据操作历史动作等,增加检索效率,根据自身业务选择是否配置

2. 创建数据库存放历史数据

创建一个历史数据库,用于同步拉取链上行为的历史数据

3. 修改配置

找到路径tools/config/solidity/下包括了abi和bin两个文件夹,用于配置合约信息,将上述中导出的只能合约中的主合约入口的 abi和 bin 文件放于该路径下
在这里插入图片描述
修改tools/config/application.properties文件中关于fisco-bcos节点在 k8s运行的IP和端口 以及同步历史库的数据库信息
在这里插入图片描述

4. dockerfile 文件

# 基础镜像
FROM fiscoorg/fiscobcos:v2.8.0
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
COPY Data-Export /Data-Export/
WORKDIR /Data-Export/tools
# 入口,jar文件的启动命令 # 这里app.jar就是我的jar文件
ENTRYPOINT ["bash","/Data-Export/tools/start.sh"]

5. 编译dockerfile 打包成 data-export镜像

docker build -f Dockerfile -t data-export:v1.0 .
  • 注:该服务不需要对外访问,所以创建k8s对外访问的时候可以不用向上述服务一样选择对外访问
    其他打包推送镜像至镜像仓库,以及部署至 k8s 上的步骤类似上文
    最后在 k8s 上部署的服务总和如下图所示
    在这里插入图片描述
  • 注意:最好按照我上述服务部署顺序进行,以为他们服务直接有依赖关系,特别是配置文件中可能互有依赖,如何顺序打乱可能就会有一些七七八八的问题,90%都可能是配置出错之类的,总之按需调整!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux编程Shell自动化脚本】01 Shell 变量、条件语句及常用概念操作等详解

文章目录 一、简介二、变量详解1. 系统变量 三、If条件语句1. ()、(())、[]、[[]]、let和test的区别(1)bash中的Compound Commands(2)Shell Builtin Commands(3)Arithmetic Evaluation(4&#x…

【MySQL | 进阶篇】09、MySQL 管理及常用工具(mysqladmin、mysqlbinlog、mysqldump 等)的使用

目录 一、系统数据库 二、常用工具 2.1 mysql 示例 2.2 mysqladmin 示例 2.3 mysqlbinlog 示例 2.4 mysqlshow 示例 2.5 mysqldump(数据备份) 示例 2.6 mysqlimport/source(数据恢复) 2.6.1 mysqlimport 2.6.2 …

实现表格可编辑(点击字段出现输入框)vue elementUI

实现表格可编辑 参考&#xff1a;el-table 中实现表格可编辑_el表格编辑_快乐征途的博客-CSDN博客 按行保存数据&#xff0c;每行数据最后都有一个保存按钮&#xff0c;如下图所示 使用的是<template>嵌套<el-input> 完整代码如下&#xff1a; <template>…

【计算机视觉 | 目标检测】RT-DETR:DETRs Beat YOLOs on Real-time Object Detection

文章目录 一、前言二、简介三、相关方法3.1 实时目标检测器3.2 端到端目标检测器3.3 目标检测的多尺度特征 四、检测器端到端速度4.1 分析NMS4.2 端到端速度基准 五、The Real-time DETR5.1 方法概览5.2 高效混合编码器5.2.1 计算瓶颈分析5.2.2 Hybrid design5.2.3 IoU-Aware查…

【LeetCode】105. 从前序与中序遍历序列构造二叉树

1.问题 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null…

“访达”不能完成操作,因为不能读取或写入“”中某些数据。

“访达”不能完成操作&#xff0c;因为不能读取或写入“”中某些数据。 复制文件夹时出现「“访达”不能完成该操作&#xff0c;因为不能读取或写入“”中的某些数据。 &#xff08;错误代码-36&#xff09;」及icloud中文件夹无法下载提示「未能下载项目“XX”。」 最近1个月…

1.Mybatis基本介绍

为什么使用MyBatis&#xff1f; 1.JDBC在创建Connection的时候&#xff0c;存在硬编码问题&#xff08;也就是直接把连接信息写死&#xff0c;不方便后期维护&#xff09; 2.preparedStatement对象在执行sql语句的时候存在硬编码问题 3.每次在进行一次数据库连接后都会关闭数据…

【SWAT水文模型】ArcSWAT输入准备:土地利用/土壤/气象数据

ArcSWAT输入准备&#xff1a;土地利用/土壤/气象数据 1 土地利用数据的处理1.1 数据下载 2 土壤库建立2.1 数据下载 3 气象数据库参考 1 土地利用数据的处理 1.1 数据下载 下载地址如下&#xff1a; 中科院1km土地利用数据 清华大学高精度土地利用数据 2 土壤库建立 SW…

pytest学习二(通过配置文件运行、分组执行,及其它一些参数)

接上一篇说到了环境的配置&#xff0c;以及一个用例的编写&#xff0c;接下来继续记录一些它的运行方式和一些平常使用的标签 一、通过全局配置文件&#xff08;pytest.ini&#xff09;运行 pytest.ini配置文件的编写规则 ①编码格式一般为ANSI ②一般放在项目的根目录下&a…

个人杂笔记

docker里面的-p暴露端口是确确实实写了才会映射到主机 docker run -d --hostname my-rabbit --name my-rabbit -e RABBITMQ_DEFAULT_USERroot -e RABBITMQ_DEFAULT_PASS250772730 -p 8080:8080 -p 15672:15672 -p 5672:5672 rabbitmq:3-managementpip安装提示warning 可能原因…

【 Spring Mybatis 复杂的查询操作 】

文章目录 引言一、参数占位符 #{} 和 ${}二、SQL 注入三、like 模糊查询四、返回类型&#xff1a;resultType 和 resultMap五、多表查询 引言 前面我们已经学会了使用 Mybatis 进行增&#xff0c;删&#xff0c;改操作&#xff0c;也实现了简单的查询操作 &#xff01;下面我们…

执着于考研考公却一再挫败,拿什么拯救你的职场后半生?

今天之所以想写一篇这样的文章&#xff0c;确确实实是有感而发&#xff0c;因为从近来接触的学员身上&#xff0c;能够最直观地感受到&#xff1a;考公考研失败后的同学&#xff0c;他们内心的那种焦虑感远超往期&#xff01; 用他们的话讲&#xff1a;“目前的状态就是感觉自…

540. 有序数组中的单一元素

给你一个仅由整数组成的有序数组&#xff0c;其中每个元素都会出现两次&#xff0c;唯有一个数只会出现一次。 请你找出并返回只出现一次的那个数。 你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。 示例 1: 输入: nums [1,1,2,3,3,4,4,8,8] 输出: 2 示…

“开发人员必备技能:Python接口自动化测试全攻略“:了解接口测试的基础知识,并通过Python编写测试用例,提升自己的测试技能

目录 摘要 一、基础知识 二、工具选择 三、实现步骤 1.安装依赖库 2.编写测试用例 3.运行测试用例 4.查看测试结果 四、代码实现 总结 摘要 随着互联网行业的不断发展&#xff0c;越来越多的企业开始注重自动化测试的重要性。而在自动化测试中&#xff0c;接口自动化…

同为科技(TOWE)防雷科普篇(二)——雷击灾害急救方法大全

前 言 当雷击发生时&#xff0c;空气中的各种微粒互相碰撞和摩擦便会使该空气介质两面的正负电荷的量持续积累&#xff0c;这时加于该空气介质的电压也会同时增加&#xff0c;当局部电压达到当时条件下空气的击穿电压时&#xff0c;该空气介质的局部便会发生电击穿而持续成为等…

我国激光打标机行业分析:防疫放开医疗行业激光打标机需求迫切 行业将迈向自动化、智能化的未来

1、激光打标机行业定义、分类及应用范围 激光打标机是用激光束在各种不同的物质表面打上永久标记的激光设备。激光打标技术相比传统的标识技术&#xff0c;不仅仅在对于材料的损耗&#xff0c;标识效果更具有优势&#xff0c;并且在生产加工的效率和产出方面更是有过之而无不及…

【复现与代码分析】Apache APISIX Dashboard API权限绕过导致RCE(CVE-2021-45232)

Apache APISIX Dashboard API权限绕过导致RCE&#xff08;CVE-2021-45232&#xff09; 0x00漏洞信息 Apache APISIX 是一个动态、实时、高性能的 API 网关&#xff0c; 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Apache APISIX …

节点流和处理流

节点流可以从一个特定的数据源读写数据&#xff0c;如FileReader&#xff0c;FileWriter处理流&#xff08;也叫包装流&#xff09;是“连接”在已存在的流&#xff08;节点流或处理流&#xff09;之上&#xff0c;为程序提供更为强大的读写功能&#xff0c;也更加灵活&#xf…

JavaEE IP协议详细讲解

详细讲解IP协议 O > O 文章目录 JavaEE & IP协议1. 地址管理1.1 IP协议报文格式1.2 动态分配IP地址1.3 NAT机制1.4 IP协议1.4 IP协议工作过程1.5 IPV6协议1.6 IP地址的组成1.7 特殊的IP地址 2. 路由选择 JavaEE & IP协议 1. 地址管理 我们希望&#xff0c;每个网络…

免费AI人工智能在线写作伪原创-百度ai自动写文章

免费伪原创洗稿工具 免费伪原创洗稿工具现在终于推出了&#xff01;你是否在写作的时候&#xff0c;经常因为缺乏灵感而苦恼&#xff1f;或者&#xff0c;你在撰写文章的时候&#xff0c;发现自己的语言表述不够丰富&#xff0c;缺乏变化&#xff0c;语句重复率太高&#xff1f…