当前位置: 首页 > news >正文

常用开发组件Docker部署保姆级教程

说明

本文总结了一些常用组件的Docker启动命令及过程,在开发过程中只需花费数分钟下载和配置即可完美使用这些服务。

Mysql

在这里插入图片描述

MySQL 是一种开源关系数据库管理系统(RDBMS),目前由 Oracle 公司维护。MySQL 以其高性能、可靠性和易用性而著称,应用于各种应用程序和网站,尤其是在 LAMP(Linux、Apache、MySQL 和 PHP/Python/Perl)堆栈中。以下是 MySQL 的一些核心特点和优势:

  • 开源:MySQL 是开源软件,用户可以自由使用、修改和分发其源代码。

  • 关系数据库:MySQL 使用结构化查询语言(SQL)来操作数据,支持表、视图、索引等经典的数据库管理功能。

  • 高性能:MySQL 以其快速的数据处理能力而著称,适合高并发环境和大型数据集的应用。包括查询优化、存储引擎选择等多种性能增强特性。

  • 可扩展性:MySQL 可以处理从小型到大型的数据库,支持几百GB到几TB的数据规模,且可以根据需求扩展数据库。

  • 事务支持:MySQL 支持 ACID(原子性、一致性、隔离性、持久性)事务,确保数据操作的可靠性和完整性。

  • 多种存储引擎:MySQL 提供了多种存储引擎(如 InnoDB、MyISAM、MEMORY 等),用户可以根据具体需求选择合适的存储方式。

  • 安全性:MySQL 提供多种安全机制,包括用户权限管理、SSL 加密连接、数据加密等,以保护数据的安全。

  • 跨平台支持:MySQL 可以在多种操作系统上运行,包括 Linux、Windows、macOS 等,适应性强。

  • 社区和支持:MySQL 拥有活跃的开发者社区,提供广泛的文档、示例和支持。此外,Oracle 公司也提供商业支持与服务。

  • 集成和兼容性:MySQL 可以与多种编程语言和开发框架集成,包括 PHP、Java、Python、Node.js 等,方便开发各种应用。

拉取镜像

docker pull mysql:8.0.28

启动

docker run -d --name mysql \	#容器名称
-p 3306:3306 \	# 端口映射
--restart=always \	# 自动重启
-v /data/mysql/data/:/var/lib/mysql \	# 数据目录映射
-v /data/mysql/conf/:/etc/mysql \	# 配置目录映射
-e MYSQL_ROOT_PASSWORD=root \	# root密码
-e TZ=Asia/Shanghai \	# 设置时区
--lower_case_table_names=1\		# 关闭大小写敏感mysql:8.0.28	# 镜像名称

配置

# 进入容器内部
docker exec -it mysql /bin/bash
mysql
use mysql;
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root的密码';
#刷新数据库
flush privileges;
# 或者以下
mysql -uroot -proot
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root的密码';
#刷新数据库
flush privileges;

备份数据

docker exec mysql mysqldump -h $ip -P $port -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql

Emqx

在这里插入图片描述

EMQX 是一款高性能的开源 MQTT 消息代理,专为物联网 (IoT) 和分布式应用程序设计。它支持 MQTT 协议,同时也可以轻松集成其他协议,如 HTTP、WebSocket 和 CoAP。以下是 EMQX 的一些重要特性和优势:

  • 高性能:EMQX 能够支持数百万的并发连接,这使其适用于大型的 IoT 部署。它以优化的消息处理能力,可以实现快速的消息传递和高吞吐量。

  • 分布式架构:EMQX 采用分布式架构,支持集群部署,确保系统的可靠性和可扩展性。可以通过简单的配置来扩展集群的节点。

  • 多协议支持:除了 MQTT,EMQX 也支持多种协议,包括 MQTT 5.0、WebSocket、HTTP、CoAP 等,这使得它能够与各种类型的客户端和设备进行通信。

  • 丰富的管理工具:EMQX 提供了用户友好的管理界面和命令行工具,方便用户监控、管理和配置 MQTT 代理。

  • 插件系统:EMQX 支持插件扩展,可以通过自定义插件来满足特定需求,比如身份验证、存储后端、协议转换等。

  • 安全性:EMQX 提供了多种安全机制,包括 TLS 加密、用户认证、访问控制列表 (ACL) 等,确保数据传输安全和用户权限管理。

  • 开放源代码:EMQX 是一个开源项目,用户可以根据自己的需求进行修改和定制,同时也能享受到社区提供的支持和文档。

  • 云原生:EMQX 适用于云环境,可以与 Kubernetes 等容器编排工具完美集成,方便用户在云环境中部署和管理 IoT 应用。

拉取镜像

docker pull emqx/emqx

启动

docker run -d --name emqx \		# 容器名称
--privileged=true \		# 权限
--restart always \		# 自动重启
-e EMQX_DASHBOARD__DEFAULT_USERNAME=admin \		# 用户名
-e EMQX_DASHBOARD__DEFAULT_PASSWORD=admin \		# 密码
-p 32642:1883 \		# 端口映射
-p 31862:8883 \
-p 30559:8083 \
-p 30079:8084 \
-p 31841:18083 \
emqx/emqx	# 镜像名称

Minio

在这里插入图片描述

MinIO 是一个高性能的对象存储服务器,主要用于大数据和机器学习等应用场景。它兼容 Amazon S3 API,并且可以在私有云、公有云或者边缘计算环境中运行。以下是 MinIO 的一些重要特性和优势:

  • 高性能:MinIO 采用了高效的存储设计,可以达到非常高的吞吐量,适合处理大量的数据读写请求。

  • S3 兼容性:MinIO 支持与 Amazon S3 API 兼容的接口,用户可以轻松地将现有的 S3 应用迁移到 MinIO,或者使用现有的 S3 类库和工具。

  • 简单易用:MinIO 提供了简洁的命令行工具和图形用户界面,使得管理和使用存储变得更加简单。

  • 高可用性和分布式:MinIO 支持数据冗余和分布式架构,可以通过自动数据复制保证数据的安全性和高可用性。

  • 支持多种存储后端:MinIO 可以与多种底层存储集成,例如本地磁盘、网络存储(如 NFS、Ceph)以及云存储。

  • 安全性:MinIO 支持端到端的加密,用户可以通过访问控制和身份验证机制确保数据的安全性。

  • 扩展性:MinIO 支持水平扩展,用户可以通过添加更多节点来扩展存储容量和性能,满足不断增长的数据需求。

拉取镜像

docker pull minio/minio:RELEASE.2020-08-08T04-50-06Z

启动

docker run -p 32300:9000 --name minio\		# 容器名称
--privileged=true\		# 权限
--restart always \		# 自动重启
-e "MINIO_ACCESS_KEY=admin" \		# 用户名
-e "MINIO_SECRET_KEY=password" \		# 密码
-v /data/miniodata:/data \	# 数据目录映射
-v /data/miniodata/config:/root/.minio \
-d minio/minio:RELEASE.2020-08-08T04-50-06Z server /data -address ":9000"	# 镜像名称

Nacos

在这里插入图片描述

Nacos(清新开放的服务发现和配置管理平台)是一个开源的、动态服务发现、配置管理和服务管理平台,由阿里巴巴开发并维护的,属于 Apache 软件基金会的一部分。以下是 Nacos 的一些主要特点和功能:

  • 服务发现:Nacos 支持服务治理,提供灵活的服务发现机制。服务可以通过 Nacos 注册、注销,并通过 Nacos 查询到其他服务的实例信息,便于进行负载均衡和故障转移。

  • 动态配置管理:Nacos 提供了强大的配置管理功能,支持动态配置更新。开发者可以在运行时修改配置,Nacos 会将最新的配置信息推送到相关的服务实例中,而无需重启。

  • 易用的操作界面:Nacos 提供了一个用户友好的 Web 控制台,便于用户进行服务和配置的管理,监控服务的状态及其健康情况。

  • 多种数据源支持:Nacos 支持多种数据源格式,包括 JSON、YAML、XML 等,适应不同的项目需求。

  • 支持多种语言:Nacos 提供了 Java、Go、Node.js 等多种语言的客户端 SDK,使得不同语言的应用程序都可以方便地与 Nacos 进行交互。

  • 健康检查:Nacos 定期对注册的服务实例进行健康检查,以确保系统的稳定性和可用性。当服务实例异常时,Nacos 会自动将其剔除出可用的服务列表。

  • 多环境和多集群支持:Nacos 支持多环境配置,允许用户为不同的环境(如开发、测试、生产等)维护独立的配置。同时支持多集群的部署,适应大规模的分布式系统。

  • 高可用性:Nacos 采用分布式架构,支持集群模式,提供高可用性和容错能力,确保服务的持续可用性。

  • 易于集成:Nacos 可以与 Spring Cloud、Dubbo 等微服务框架无缝集成,成为微服务架构中的重要组成部分。

拉取镜像

docker pull nacos/nacos-server:latest

运行镜像

docker run --name nacos\		# 容器名称-p 8848:8848 \		# 端口映射
--privileged=true \		# 权限
--restart=always \		# 自动重启
-e SPRING_DATASOURCE_PLATFORM=mysql \		# 数据源 
-e MYSQL_SERVICE_HOST=10.5.112.221 \		# 数据源IP
-e MYSQL_SERVICE_PORT=3306 \		# 数据源port
-e MYSQL_SERVICE_USER=root \		# 数据源用户
-e MYSQL_SERVICE_PASSWORD=123mdf \		# 数据源密码
-e MYSQL_SERVICE_DB_NAME=nacosdb \		# 数据源数据库名
-e MODE=standalone \	# 模式
-v /home/nacos/logs:/home/nacos/logs \	# 日志目录映射
-d nacos/nacos-server:latest	# 镜像名称

Redis

在这里插入图片描述

Redis(Remote Dictionary Server)是一种开源的高性能键值存储数据库,广泛用于缓存、消息队列、实时分析和数据存储等多种场景。以下是 Redis 的一些关键特性和功能:

  • 内存存储:Redis 将数据存储在内存中,提供极快的数据读写速度,适用于需要低延迟的场景。

  • 丰富的数据结构:Redis 支持多种数据结构,包括字符串、哈希、列表、集合、有序集合、位图、超日志等,能够满足不同情境下的数据存储需求。

  • 持久化存储:虽然 Redis 主要是内存数据库,但也支持数据持久化,可以通过快照(RDB)或追加文件(AOF)将数据保存到磁盘,避免数据丢失。

  • 高可用性和分布式:Redis 支持主从复制(Replication)和分片(Sharding),可以通过 Redis Sentinel 实现高可用性,确保在主节点故障时可以自动切换到从节点。

  • 支持事务:Redis 支持简单的事务,允许将多个命令打包成一个原子操作,确保数据的一致性。

  • 发布/订阅(Pub/Sub)机制:Redis 提供发布/订阅模式,允许消息的发送者与接收者解耦,适合实现实时消息推送和通知功能。

  • Lua 脚本支持:Redis 支持使用 Lua 脚本执行复杂的操作,能够在服务器端进行原子性处理,减少网络延迟。

  • 水平扩展:通过 Redis Cluster,Redis 可以实现自动分片和数据的横向扩展,适应大规模应用的需求。

  • 监控与管理工具:Redis 提供命令行界面(CLI)和图形化管理工具(如 RedisInsight)以便于监控和管理 Redis 实例。

  • 多种客户端支持:Redis 提供了丰富的客户端库,支持多种编程语言,如 Java、Python、C#、Go、Node.js 等,使开发者能够轻松集成到各种应用中。

拉取镜像

docker pull redis

配置

# 编辑配置文件
vim /data/myapp/mydata/redis/conf/redis.conf
appendonly yes            #redis持久化(可选)
requirepass  密码         #配置redis访问密码
databases 16              #数据库个数(可选)

运行镜像

docker run --name redis-vcco\		# 容器名称
--restart always \		# 自动重启
-v /data/vcco-sh-server/redis/data:/data \	# 数据目录映射
-v /data/vcco-sh-server/redis/conf/redis.conf:/etc/redis/redis.conf \
-dp 31900:6379 \		# 端口映射
redis redis-server /etc/redis/redis.conf	# 镜像名称

Nginx

在这里插入图片描述

Nginx是一款开源的高性能Web服务器和反向代理服务器,具有负载均衡和HTTP缓存等功能。最流行的Web服务器之一。以下是Nginx的一些关键特性和功能:

  • 高性能:Nginx 以事件驱动的架构设计,使其能够处理大量的并发连接,适合高流量的环境。它在静态文件处理、反向代理和负载均衡等方面表现出色。

  • 反向代理:Nginx 可作为反向代理服务器,转发来自客户端的请求到后端服务器,并将响应返回给客户端。这种架构有助于提升系统的安全性和可扩展性。

  • 负载均衡:Nginx 支持多种负载均衡算法(如轮询、最少连接、IP哈希等),可以将请求智能地分配到多个后端服务器,提升整个平台的可靠性和性能。

  • 静态文件服务:Nginx 专注于高效地提供静态文件服务,如HTML、CSS、JavaScript 和图片等,相较于其他Web服务器,Nginx 在处理这类请求时速度更快。

  • HTTP/HTTPS 支持:Nginx 完全支持现代的HTTP协议,并且支持SSL/TLS加密,能够安全地处理HTTPS请求,为用户提供安全的访问体验。

  • WebSocket支持:Nginx 可作为WebSocket的代理,支持实时通信应用,如在线聊天和实时数据更新等。

  • 模块化架构:Nginx 采用模块化架构,用户可以根据需要编译和加载特定模块,以增加功能或优化性能。

  • 缓存机制:Nginx 具备强大的HTTP缓存功能,可以缓存后端服务器的响应,减轻原服务器的负担,提高响应速度。

  • URL重写和重定向功能:Nginx 支持强大的URL重写和重定向功能,便于进行SEO优化、路由管理和内容迁移。

  • 易于配置:Nginx 的配置文件简单明了,允许用户通过少量的指令进行复杂的配置,适合快速部署和管理。

配置

编写Dockfile
vim Dockfile-nginx
# 使用基础的Node.js镜像
FROM node:16.14.0 as builder# 创建目录
RUN mkdir -p /opt/sv-webapp
# 指定路径
COPY . /opt/sv-webapp
WORKDIR /opt/sv-webapp# 安装依赖
RUN cd deploy \&& tar zxf zlib-1.2.13.tar.gz \&& cd zlib-1.2.13 \&& ./configure \&& make && make install \&& cp /usr/local/lib/libz.so.1.2.13 /lib64/libz.so.1 \&& chmod 755 /lib64/libz.so.1# 编译打包
RUN ls -a \&& npm config set registry https://registry.npm.taobao.org \&& yarn install \&& yarn build:dev# 拉取nginx镜像
FROM nginx AS production# 把打包好的文件移到 docker拉取的nginx镜像默认读取路径里(/usr/share/nginx/html)
COPY --from=builder /opt/sv-webapp/dist /opt/sv-webapp/distRUN echo "server {  \listen       80; \server_name  192.1.1.31;  \location / { \root   /opt/sv-webapp/dist/; \index  index.html index.htm; \} \location /api/v1/ { \proxy_set_header Host \$host; \proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \proxy_pass http://192.1.1.31:30521/api/v1/; \} \location /api/ { \proxy_set_header Host \$host; \proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \proxy_pass http://192.1.1.31:32004/api/; \} \access_log  /var/log/nginx/access.log ; \} " > /etc/nginx/conf.d/default.confEXPOSE 80
EXPOSE 443

启动

docker run -d --name nginx\		# 容器名称-p 80:80\		# 端口映射--restart=always \		# 自动重启
-v /data/myapp/nginx/conf.d:/etc/nginx/conf.d \	# 配置目录映射
镜像名	# 镜像名称

vim /etc/nginx/conf.d/default.conf
server {
# 前端服务端口
listen 80;
listen [::]:80;
server_name 192.1.1.31;

# 首页
location / {root   /opt/sv-webapp/dist/;index  index.html index.htm;
}# 错误页
error_page   500 502 503 504  /50x.html;
location = /50x.html {root   /opt/sv-webapp/dist/;
}# 后端
location /api/v1/ {proxy_set_header Host \$host;proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;proxy_pass http://192.1.1.31:30521/api/v1/;
}
location /api/ {proxy_set_header Host \$host;proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;proxy_pass http://192.1.1.31:32004/api/;
}

}

Harbor

在这里插入图片描述

Harbor 是一个开源的企业级容器镜像 registry,主要用于存储、管理和分发容器镜像。它是基于 Docker Registry 的扩展,提供了更多的功能和管理工具,旨在帮助组织安全和高效地管理其容器化应用程序。以下是 Harbor 的一些关键特性和功能:

  • 访问控制:Harbor 提供基于角色的访问控制(RBAC),允许用户和团队根据角色定义访问权限,确保安全性。

  • 身份验证:支持多种身份验证方式,包括 LDAP、AD 和 OAuth 等,可以轻松与现有的身份管理系统集成。

  • 镜像签名:支持 Notary 进行镜像签名,确保推送的镜像的完整性和来源,防止恶意镜像的使用。

  • 镜像版本管理:Harbor 支持对镜像的版本进行管理,包括镜像的标记和删除,可以方便地管理应用程序的不同版本。

  • 镜像扫描:集成了安全扫描工具(如 Clair),允许在使用镜像之前检测和识别潜在的安全漏洞。

  • 高可用性:Harbor 支持高可用性集群部署,可以通过负载均衡实现容器镜像的高可用性和容错能力。

  • 多种存储后端支持:Harbor 支持多种后端存储,例如 NFS、S3、Google Cloud Storage 等,用户可以根据需求选择适合的存储解决方案。

  • 易于使用的Web界面:Harbor 提供用户友好的Web界面,通过可视化方式简化容器镜像的管理,让用户可以轻松进行镜像的上传、下载和搜索。

  • API 和 CLI支持:Harbor 提供丰富的RESTful API和命令行工具,方便开发者和运维人员进行自动化管理和集成。

  • 支持图形化界面:用户可以通过一个统一的界面浏览、管理和共享容器镜像,提升了操作的便利性。

  • 多项目支持:Harbor 允许用户在同一个默认实例中创建多个项目,每个项目可以配置不同的访问权限和策略,支持多团队协作。

部署Docker Compose

apt  install docker-compose
docker-compose version

部署harbor

#下载harbor压缩包
wget https://github.com/goharbor/harbor/releases/download/v2.4.3/harbor-offline-installer-v2.4.3.tgz
#把harbor解压至/usr/local目录下
tar xf harbor-offline-installer-v2.4.3.tgz -C /usr/local/
#进入harbor目录
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
hostname: harbor_node01.example.com        //这里的主机名换成本机的主机名或IP地址
#https:                        //把https这行及子行都注释掉,因为没有弄ssl证书加密# https port for harbor, default is 443#port: 443# The path of cert and key files for nginx#certificate: /your/certificate/path#private_key: /your/private/key/path
./install.sh

Mongo

在这里插入图片描述

MongoDB 是一个开源的 NoSQL 数据库,专注于高性能、高可用性和可扩展性。与传统的关系型数据库不同,MongoDB 使用文档导向的数据存储方式,以 JSON 类似的 BSON(Binary JSON)格式存储数据,允许结构化和半结构化数据的灵活存储。以下是 MongoDB 的一些关键特性和功能:

  • 文档存储:数据以文档的形式存储,每个文档都可以拥有不同的结构(字段和类型),适合动态变化的需求。这种方式使得开发者可以灵活地定义数据模式。
  • 横向扩展:MongoDB 支持分片(Sharding),可以方便地通过增加更多的服务器来扩展数据存储和处理能力。这使其适合处理大规模数据集和高并发的应用场景。
  • 高可用性:通过Replica Set(副本集),MongoDB 提供了内置的高可用性和故障恢复解决方案。副本集允许多个副本节点同步数据,确保数据的冗余和可用性。
  • 灵活的查询语言:MongoDB 使用一种基于 JSON 的查询语言,支持丰富的查询操作,如过滤、排序、聚合等,能够满足复杂查询的需求。
  • 强大的索引功能:MongoDB 支持多种类型的索引(如单字段、复合索引、地理空间索引等),可以优化查询性能并加快数据检索速度。
  • 聚合框架:MongoDB 提供了一种强大的聚合框架,允许用户以声明方式进行数据处理和分析,适合进行复杂的数据操作和计算。
  • 地理空间支持:MongoDB 具备地理空间数据处理能力,支持地理位置查询和计算,适用于位置服务和地图应用等场景。
  • 副本集和分片的自动故障转移:在发生故障时,MongoDB 可以自动进行故障转移,确保服务的持续可用性。
  • 丰富的驱动程序支持:MongoDB 提供了多种编程语言的驱动程序(如 Java、Python、Node.js 等),方便开发者将 MongoDB 集成到不同的应用程序中。
  • 社区和生态系统:MongoDB 拥有活跃的社区和丰富的生态系统,提供各种工具和扩展,帮助开发者更高效地使用和管理数据库。

拉取镜像

docker pull mongo:4.4

配置

vim mongod.conf
systemLog:# MongoDB发送所有日志输出的目标指定为文件destination: file# mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径path: "/var/log/mongodb/mongodb.log"# 当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。logAppend: true
storage:# mongod实例存储其数据的目录。dbPath: "/data/db"journal:#启用或禁用持久性日志以确保数据文件保持有效和可恢复。enabled: true
net:# 服务实例绑定的IP,默认是localhost(多个ip用逗号分隔)bindIp: 0.0.0.0#绑定的端口,默认是27017port: 27017

启动

docker run --name mongo\			# 容器名称-p 27017:27017 \		# 端口映射
-v /app/mongo/data:/data/db \	# 数据目录映射
-v /app/mongo/logs:/var/log/mongodb \
-v /app/mongo/mongod.conf:/etc/mongod.conf \
-d mongo --auth		# 镜像名称

配置

docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('admin', '123456')
MongoDB 6.0 及以上版本使用以下命令:
docker exec -it mongo mongosh admin

相关文章:

常用开发组件Docker部署保姆级教程

说明 本文总结了一些常用组件的Docker启动命令及过程,在开发过程中只需花费数分钟下载和配置即可完美使用这些服务。 Mysql MySQL 是一种开源关系数据库管理系统(RDBMS),目前由 Oracle 公司维护。MySQL 以其高性能、可靠性和易用…...

MySql高级视频笔记

索引 索引 : 是帮助MySql高效查询数据的数据结构 优势&劣势 优势: 提高数据检索的效率, 降低数据库的IO成本通过索引列队数据进行排序, 降低数据的排序成本, 降低CPU的消耗 劣势: 索引维护了主键信息, 并指向表中数据记录, 也是占用磁盘空间的索引提高了查询效率, 但索引也…...

二十二、状态模式

文章目录 1 基本介绍2 案例2.1 Season 接口2.2 Spring 类2.3 Summer 类2.4 Autumn 类2.5 Winter 类2.6 Person 类2.7 Client 类2.8 Client 类的运行结果2.9 总结 3 各角色之间的关系3.1 角色3.1.1 State ( 状态 )3.1.2 ConcreteState ( 具体的状态 )3.1.3 Context ( 上下文 )3.…...

Spark环境搭建-Local

目录 Local下的角色分布: Anaconda On Linux 安装 (单台服务器) 1.下载安装 2.国内源 下载Spark安装包 1.下载 2.解压 3.环境变量 测试 监控 Local下的角色分布: 资源管理: Master:Local进程本身 Worker:L…...

使用FModel提取黑神话悟空的资产

使用FModel提取黑神话悟空的资产 前言设置效果展示闲聊可能遇到的问题没有相应的UE引擎版本选项 前言 黑神话悟空昨天上线了,解个包looklook。 本文内容比较简洁,仅介绍解包黑神话所需的专项配置,关于FModel的基础使用流程,请见…...

MYSQL定时任务使用手册

开发和管理数据库时,经常需要定时执行某些任务,比如每天备份数据库、每周统计报表等。MySQL提供了一个非常有用的工具,即事件调度器(Event Scheduler),可以帮助我们实现定时任务调度的功能。本文将介绍如何…...

SAP 预扣税配置步骤文档【Withholding Tax]

1. 配置预扣税的基本概念 预扣税是对某些支付进行扣除的税,可能适用于各种财务交易(例如,供应商支付、股息支付等)。预扣税通常包括几种类型,如个人所得税、企业所得税和其他税务种类。 2. 配置步骤 以下是一般的预…...

Ubuntu ssh配置

下面给出配置和使用ubuntu ssh的指南。 环境 Ubuntu22.04 安装Install sudo apt update && sudo apt upgrade sudo apt install openssh-server使用start service ssh status sudo systemctl enable --now ssh sudo ufw allow ssh连接Connect search "conn…...

Spring Boot OAuth2.0应用

本文展示Spring Boot中,新版本OAuth2.0的简单实现,版本信息: spring-boot 2.7.10 spring-security-oauth2-authorization-server 0.4.0 spring-security-oauth2-client 5.7.7 spring-boot-starter-oauth2-resource-server 2.7.10展示三个服务…...

Java | Leetcode Java题解之第363题矩形区域不超过K的最大数值和

题目&#xff1a; 题解&#xff1a; class Solution {public int maxSumSubmatrix(int[][] matrix, int k) {int ans Integer.MIN_VALUE;int m matrix.length, n matrix[0].length;for (int i 0; i < m; i) { // 枚举上边界int[] sum new int[n];for (int j i; j <…...

AI作画提示词(Prompts)工程:技巧与最佳实践

在人工智能领域&#xff0c;AI作画已成为一个令人兴奋的创新点&#xff0c;它结合了艺术与科技&#xff0c;创造出令人惊叹的视觉作品。本文将探讨在使用AI作画时的提示词工程&#xff0c;提供技巧与最佳实践。 理解AI作画 AI作画通常依赖于深度学习模型&#xff0c;尤其是生成…...

leetcode滑动窗口问题

想成功先发疯&#xff0c;不顾一切向前冲。 第一种 定长滑动窗口 . - 力扣&#xff08;LeetCode&#xff09;1456.定长子串中的元音的最大数目. - 力扣&#xff08;LeetCode&#xff09; No.1 定长滑窗套路 我总结成三步&#xff1a;入-更新-出。 1. 入&#xff1a;下标为…...

QT 控件使用案例

常用控件 表单 按钮 Push Button 命令按钮。Tool Button&#xff1a;工具按钮。Radio Button&#xff1a;单选按钮。Check Box&#xff1a;复选框按钮。Command Link Button&#xff1a;命令链接按钮。Dialog Button Box&#xff1a;按钮盒。 容器组控件(Containers) Group Box…...

【MySQL 10】表的内外连接 (带思维导图)

文章目录 &#x1f308; 一、内连接⭐ 0. 准备工作⭐ 1. 隐式内连接⭐ 2. 显式内连接 &#x1f308; 二、外连接⭐ 0. 准备工作⭐ 1. 左外连接⭐ 2. 右外连接 &#x1f308; 一、内连接 内连接实际上就是利用 where 子句对两张表形成的笛卡儿积进行筛选&#xff0c;之前所有的…...

【C语言】:与文件通信

1.文件是什么&#xff1f; 文件通常是在磁盘或固态硬盘上的一段已命名的存储区。C语言把文件看成一系列连续的字节&#xff0c;每个字节都能被单独的读取。这与UNIX环境中&#xff08;C的 发源地&#xff09;的文件结构相对应。由于其他环境中可能无法完全对应这个模型&#x…...

HTTPS通讯全过程

HTTPS通讯全过程 不得不说&#xff0c;https比http通讯更加复杂惹。在第一次接触https代码的时候&#xff0c;不知道为什么要用用证书&#xff0c;公钥是什么&#xff1f;私钥是什么&#xff1f;他们作用是什么&#xff1f;非对称加密和对称加密是啥&#xff1f;天&#xff0c;…...

建筑物规则化(实现) --- 特征边分组、重构、直角化

规则化建筑物 一、摘 要 建筑物多边形在地图综合中的两类处理模型:化简与直角化。 建筑物矢量数据来源广泛&#xff0c;在数据获取过程中&#xff0c;受GPS精确度、遥感影像分辨率或人为因素的影响&#xff0c;数据往往存在不同程度的误差。其中&#xff0c;图像分割、深度学习…...

pytorch的优化

在pytorch中&#xff0c;tensor是基于numpy与array的。内存共享。 在pythorch中&#xff0c;自定义层是继承nn.Module。将层与模型看成是模块&#xff0c;层与模型堪称模块&#xff0c;两者之间没有明确界限&#xff0c;定义方式与定义模型一样_init_与forward。 1、先定义全…...

React 入门第一天:从Vue到React的初体验

作为一名合格的前端工程师&#xff0c;怎么能只会Vue呢&#xff1f;学习React不仅是一场新技术的探索&#xff0c;更是对前端开发思维的一次重新审视。在这里&#xff0c;我将分享学习React的心得&#xff0c;希望能帮助那些和我一样从Vue转向React的开发者。 1. 为什么选择Re…...

Golang | Leetcode Golang题解之第357题统计各位数字都不同的数字个数

题目&#xff1a; 题解&#xff1a; func countNumbersWithUniqueDigits(n int) int {if n 0 {return 1}if n 1 {return 10}ans, cur : 10, 9for i : 0; i < n-1; i {cur * 9 - ians cur}return ans }...

【Linux】 gdb-调试器初入门(简单版使用)

&#x1f525;系列文章&#xff1a;《Linux入门》 目录 一、背景 二、什么是GDB &#x1f337;定义 &#x1f337;GDB调试工具---提供的帮助 三、GDB的安装教程-Ubuntu &#x1f337;gdb的安装 四、哪类程序可被调试 &#x1f337;程序的发布方式 &#x1f337;Debug版…...

Spring 的事务支持

文章目录 1、Spring如何管理事务2、编程式事务1_基本用法2_创建TransactionTemplate实例3_TransactionTemplate的内部结构4_总结 3、声明式事务1_使用Transactional注解2_事务的传播行为3_配置4_总结 1、Spring如何管理事务 Spring为事务管理提供了一致的编程模板&#xff0c;…...

基于STM32开发的智能家居照明控制系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化传感器数据采集显示与控制逻辑Wi-Fi通信应用场景 家庭智能照明办公室节能照明控制常见问题及解决方案 常见问题解决方案结论 1. 引言 智能家居照明控制系统通过集成光照传感器、继…...

程序员的底层思维~张建飞

前言 ◆ 成人学习的目的不是获取更多的信息量&#xff0c;而是学习更好的思维模型。 ◆ 好的思维能力是可以被复制和迁移的&#xff0c;它应该是普适的&#xff0c;而不应该有行业的界限。 第一部分 基础思维能力 ◆ 因为语言的抽象性&#xff0c;我在团队中会要求大家使用通用…...

美股收涨,半导体板块领涨;苹果iPhone出货预测上调

市场概况 在昨夜的交易中&#xff0c;美股三大股指全线收涨。道琼斯工业平均指数上涨1.39%&#xff0c;纳斯达克综合指数上涨2.34%&#xff0c;标准普尔500指数上涨1.61%。值得注意的是&#xff0c;英伟达股票涨幅近4%&#xff0c;推动了科技股的整体表现。美国十年期国债收益…...

[学习笔记]在不同项目中切换Node.js版本

文章目录 使用 Node Version Manager (NVM)安装 NVM使用 NVM 安装和切换 Node.js 版本为项目指定 Node.js 版本 使用环境变量指定 Node.js安装多个版本的 Node.js设置环境变量验证配置使用 npm 脚本切换 在开发中&#xff0c;可能会遇到不同的Vue项目需要不同的Node.js&#xf…...

SOL项目开发代币DApp的基本要求、模式创建与海外宣发策略

Solana&#xff08;SOL&#xff09;作为一个高性能区块链平台&#xff0c;以其快速的交易速度和低交易成本吸引了大量开发者和投资者。基于Solana开发的去中心化应用程序&#xff08;DApp&#xff09;和代币项目正逐步成为区块链领域的重要组成部分。要成功开发并推广一个SOL项…...

如何在 FastReport .NET 中构建和安装 Postgres 插件

FastReport .NET 是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案。 功能非常丰富&#xff0c;功能广泛。今天我们将介绍如何使用报表设计器的 FastReport 插件连接数据库。 FastReport .NET 是适用于.NET Core 3&#xff0c;ASP.NET&#xff0c;MVC和Windows窗体…...

JVM指令重排序

文章目录 什么是指令重排序编译器优化JIT 编译优化处理器优化重排序数据依赖性 硬件层的内存屏障指令重排的代码验证好处减少管道阻塞提高缓存利用率利用并行执行单元性能提升更好地利用硬件资源 问题内存可见性问题编程复杂性增加调试困难 解决方案&#xff1a;Java内存模型&a…...

改造字典关键字:

怎样把第一个关键字的值都 加到所有关键字上&#xff1f; {type: 7, typenum: , typemon: } 我们可以使用字典的keys()方法来获取所有的关键字&#xff0c;然后通过遍历字典的方式将第一个关键字的值添加到其他关键字的名称上。以下是一个示例代码&#xff1a; data {type: …...