企业国产操作系统选型适配实施方案

news2024/11/15 6:48:09

d2eddee63d9ff961fb0b26139c59a7b0.jpeg

   

【摘要】企业在推动国产化进程时,需选择一款主流、稳定且安全的服务器操作系统作为其系统软件。在产品投入实际生产环境前,对上游软硬件的适配情况有深入了解至关重要。本文将重点介绍银河麒麟高级服务器操作系统V10(以下简称麒麟V10)的软件适配情况,结合实例进行分享,并对运维过程中遇到的问题进行分析,提供有效解决方案。

一、麒麟操作系统概况

麒麟V10是一款商业版本服务器操作系统,其作为承载业务系统的基础底座,能满足大部分企业的产品需求,各类软硬件适配也都较好。麒麟V10的SP1/SP2/SP3版本内核都是基于OpenEuler 20.03 LTS研发的,其支持X86、ARM、Alpha、MPIS等CPU架构,支持Intel、AMD、鲲鹏、海光、飞腾、龙芯、兆芯、申威8种国内外主流CPU品牌,已适配1400多款国内外服务器整机,适配1500多款主板和板卡,适配200多款数据库和200多款中间件产品,适配6600多款服务器基础软件,适配250000多款服务器商业软件和开源软件。

86bdfcc98aa16cf1d5e47cb46e02a701.jpeg


二、常用软件选型适配

2.1 常用软件适配情况

本文罗列了29款常用软件的适配情况,如下表所示,供参考:

4595fe739d163f8ba91472be822608d5.jpeg

更多兼容适配情况,可登录麒麟生态官网进行查询:

探索商业生态,欢迎访问https://eco.kylinos.cn/zoology/commercial.html?system_class=1。在这里,我们将带您领略商业世界的奥秘与魅力。

2.2 常用软件适配案例

以下是几个典型的数据库(MongoDB、Redis)和中间件(Nginx、Tomcat)的适配测试案例,为您详解软件适配流程。

2.2.1 MongoDB
2.2.1.1 MongoDB测试环境

麒麟V10镜像:

Kylin Server 10 SP1 ARM64,版本2500,发布日期:2020年12月02日。立即体验稳定高效的服务器系统!

硬件环境:cpu数量(4),可用内存(8G),磁盘(300G)

软件版本:MongoDB 4.0.12

2.2.1.2 MongoDB适配步骤

(1)软件安装

创建安装目录

# mkdir -p /usr/local/mongodb/bin

解压并安装mongodb-linux-arm64-4.0.12.tgz至/usr/local/mongodb/bin,轻松完成软件配置。

解压mongodb-linux-arm64-4.0.12.tgz文件到/usr/local/mongodb/bin目录,命令如下:`tar -zxvf mongodb-linux-arm64-4.0.12.tgz -C /usr/local/mongodb/bin`

db68d32e4d72c42b46816d98d1eda924.jpeg

(2)配置系统环境参数

# vim /etc/profile

将您的环境路径扩展至新位置:/usr/local/mongodb/bin/mongodb-linux-arm64-4.0.12/bin,为您的操作带来无限可能。

6a47c101d737b52ca4b14bd6498a0cdd.jpeg

# source /etc/profile

(3)创建MongoDB数据文件存放目录和日志文件存放目录

# mkdir -p /data/db /logs

(4)创建MongoDB运行时使用的配置文件

# mkdir -p /usr/local/mongodb/conf

5d2debf8bd15f696222c95be521bfbd6.jpeg

请将以下启动参数编辑并保存至/usr/local/mongodb/conf/mongodb.conf文件中。

dbpath = /data/db # 数据文件存放目录

logpath = /logs/mongodb.log # 日志文件存放目录

port = 27017 # 端口

fork = true # 以守护程序的方式启用,即在后台运行

开启认证后,您将需要设置 MongoDB 账户并输入密码以进行远程访问。首次安装时,建议您先进行注释处理。

将bind_ip设置为0.0.0.0,即可实现远程访问。如需仅限本地访问,可注释此行或将其设为127.0.0.1。

6648177f5a44ec9f6cb5bbd633dc3d3b.jpeg

(5)启动MongoDB

执行以下命令,启动MongoDB

启动MongoDB,使用命令:`mongod -f /usr/local/mongodb/conf/mongodb.conf`

fb0fbe74f5cb84edd78ff0c1890515a7.jpeg

(6)验证

使用mongo交互工具,操作MongoDB数据库,如下所示:

a340182d10d2fbc4830af31ab4f52c7f.jpeg

验证帮助、退出等功能“help”、“show dbs”、“quit”进行交互。

1bf3d1366cdab751058aa0cb992000bf.jpegb67c1df4958ba399719b5cf82481821e.jpeg1dce08f14bc5171f820cf1e6d1761727.jpeg

(7)查看日志

# cat mongodb.log

023717377d03672eb2f1d466b32301fa.jpeg

完成兼容性适配测试。

2.2.2 Redis
2.2.2.1 Redis测试环境

麒麟V10镜像:

Kylin-Server-10-SP1,2020年12月2日发布,版本10.2500,适用于arm64架构。

硬件环境:cpu数量(128),可用内存(510G),磁盘(2T)

软件版本:redis-5.0.7

2.2.2.2 Redis适配步骤

(1)软件安装

请使用命令# rpm -ivh redis-5.0.7-1.ky10.aarch64.rpm进行安装。

2444c3e98811099a10a738d45a5050cd.jpeg

(2)检查版本

a.查看Redis版本。

# redis-server -v

系统会显示如下类似信息,表示redis的版本是5.0.7。

82163a149ed8be0f774699c1e1dc8bb6.jpeg

b.查看Redis的CLI版本。

# redis-cli -v

系统会显示如下类似信息,表示redis的CLI版本是5.0.7。

4b828ec44e7fb08eac4f2a61d46bf19e.jpeg

(3)启动服务

c.执行如下命令,启动redis-server。

# systemctl start redis.service

# systemctl status redis.service

50e64ca500fc3684940cd0d4879f9179.jpeg

(4)功能测试

# redis-cli

127.0.0.1:6379> set aa 1

OK

127.0.0.1:6379> get aa

"1"

f634155ecdeabab1b90cb001a91d833b.jpeg

完成兼容性适配测试。

2.2.3 Nginx
2.2.3.1 Nginx测试环境

麒麟V10镜像:

优化后:Kylin-Server-10-SP1-v10.2500-20201202-ARM64.iso。

硬件环境:cpu数量(128),可用内存(510G),磁盘(2T)

软件版本:nginx1.16组件

2.2.3.2 Nginx适配步骤

(1)配置软件源

编辑/etc/yum.repos.d/kylin_aarch64.repo文件,添加软件仓库源地址如下:

[ks10-adv-appstore]

Kylin Linux高级服务器10版现已上架AppStore,提供专业且高效的Linux服务解决方案。

访问升级平台:http://update.cs2c.com.cn:8080/NS/V10/V10SP1/os/adv/lic/appstore/$basearch/,为您带来最新资讯与服务。

gpgcheck = 0

enabled = 1

b.清除之前的缓存

# yum clean all

c.建立缓存

# yum makecache

(2)软件安装

a.执行如下命令安装

# dnf install -y nginx

013f6ab684422b7e215633feca3513fc.jpeg

b.查看软件版本

# nginx -v

449b7d6e45b954ef79324f700b939c8a.jpeg

c.查看nginx运行情况

执行命令开启nginx服务

# systemctl start nginx.service

b5c34c2b1245f425ce97140229d2b40f.jpeg

(3)运行测试

从浏览器访问本机ip显示“Welcome to nginx!”

a6d9cbc562b309ca88f643cad5425db6.jpeg

完成兼容性适配测试。

2.2.4 Tomcat
2.2.4.1 Tomcat测试环境

麒麟V10镜像:

Kylin-Server-10-SP1-Release-Build10-2500-20201202-arm64.iso:全新升级,稳定强大。

硬件环境:cpu数量(4),可用内存(8G),磁盘(300G)

软件版本:tomcat-8.5.0

2.2.4.2 Tomcat适配步骤

(1)配置软件源

编辑/etc/yum.repos.d/kylin_aarch64.repo文件,添加软件仓库源地址如下:

[ks10-adv-os]

Kylin Linux Advanced Server 10 - OS,高效稳定的企业级服务器操作系统。

请访问我们的升级站点:http://update.cs2c.com.cn:8080/NS/V10/V10SP1/os/adv/lic/base/$basearch/,开始您的体验之旅。我们提供最新、最安全的服务,期待您的光临!

gpgcheck = 0

enabled = 1

b.清除之前的缓存

# yum clean all

c.建立缓存

# yum makecache

(2)软件安装

# tar -zxvf apache-tomcat-8.5.0.tar.gz

51e6960f5165a76d08dd1beab1501d83.jpeg

(3)启动tomcat

# cd apache-tomcat-8.5.0

7e936569687295e84d4f88942fd0df8f.jpeg

# cd bin

fdea559f1ae2a6157e236da67bfc7721.jpeg

# ./startup.sh

eef77eaf670295bfd87db2f5dcab6c29.jpeg

tomcat已启动。

(4)设置防火墙

a.需要设置防火墙开放8080端口,命令为

使用firewall-cmd,将端口8080/tcp永久添加到公共区域。操作简洁,网络安全一键搞定,快来体验吧!

命令解析:

--zone #作用域

--add-port=8080/tcp #添加端口,格式为:端口/通讯协议

--permanent #永久生效,没有此参数设置,重启后会失效。

0cec72ba225f092b86bceb6daa211cd7.jpeg

b.重启防火墙

# firewall-cmd -reload

7dd29eb330862d2d3feb173a49a78429.jpeg

(5)功能验证

在浏览器中访问该系统ip的8080端口即可访问tomcat8.5.0。

a.查看系统ip

# ifconfig

2fc5844294153209b919be33de602270.jpeg

b.打开浏览器输入:172.17.30.109:8080

dccd90620e738d106ca59818696ae6ae.jpeg

完成兼容性适配测试。

三、运维实施过程中的难点及应对方案

本文深入剖析了我们近几年使用麒麟V10系统所遇到的挑战及应对策略,涵盖操作系统兼容性、漏洞、特性及激活四大领域。

3.1 系统兼容问题

3.1.1 国产服务器安装麒麟V10系统异常
3.1.1.1 场景说明

ea04f2191684ddb9b546b39ecb13939f.jpeg

3.1.1.2 分析及处置过程

在安装过程中遭遇错误,很可能源于磁盘问题。通常,通过初始化磁盘并重建磁盘阵列,问题可得到解决。首先进行本地盘的初始化,重启后错误依旧;其次,取消存储卷映射关系,重启并重新进入安装界面,错误未再出现。然而,点击“下一步”后,新的错误提示“未选择任何磁盘”浮出水面,即系统未能识别到磁盘。

110b5443151ecba3e510eb94dd28cf6e.jpeg

点进去确实没有发现磁盘。

b4f62f47811e1dd1f58782ee0289a33c.jpeg

识别不到盘一般和阵列卡驱动有关,需要安装对应驱动,下面开始安装阵列卡驱动:

a.将对应驱动做进系统镜像里,挂载镜像开始安装。

b.到安装界面,通过Ctrl+Alt+F2切换至命令行模式

c.挂载镜像:mount /dev/sr0 /mnt

安装驱动:轻点rpm -ivh kmod-megaraid_sas-07.720.04.00-1.ky10.x86_64.rpm -nodeps。让技术更便捷,让生活更美好。

d7b372f4fee535bf0acab741b3a13196.jpeg

驱动装载:执行命令'insmod /lib/modules/4.19.90-23.8.v2101.ky10.x86_64/extra/megaraid_sas/megaraid_sas.ko'。请确保路径准确无误,以便成功加载驱动。

f.重新扫描下磁盘,则识别到了磁盘。

360e93559edb386d7f1878eff67f84b0.jpeg

选中该磁盘,开始正常安装。

3.1.2 红帽7与麒麟V10的SSH会话会超时中断
3.1.2.1 场景说明
3.1.2.2 分析及解决方案

测试结果显示,红帽7与麒麟V10的SSH会话在同版本间正常运作。然而,当跨版本进行会话时,如红帽7至麒麟V10或麒麟V10至红帽7,均出现兼容性问题。初步推断,这是操作系统SSH的兼容难题。

查看两者SSH默认配置:

(1)麒麟V10SP1默认配置参数ClientAliveCountMax值为0;

优化后:红帽7.1默认未设定ClientAliveCountMax和ClientAliveInterval参数。

解决方案有以下三种,选其一即可:

(1)客户端远程连接服务器时,每60秒自动接收一次KeepAlive请求,确保超时空闲不会导致连接断开。

优化后:在红帽系统配置文件/etc/ssh/ssh_config中,添加参数ServerAliveInterval 60,以保持连接活跃。

b.重启ssh服务

# systemctl restart sshd

在红帽系统中,要发起SSH远程连接,请添加参数,例如:`ssh -o ServerAliveInterval 60 <用户名>@<IP地址> "脚本或执行命令"`。

(3) 作为服务端,每60秒发送KeepAlive请求至客户端,确保连接不因超时而中断。若连续三次失败,则认为客户端网络问题,中断SSH会话。

在麒麟V10中,请打开配置文件/etc/ssh/sshd_config(注意区分),添加参数ClientAliveCountMax 3和ClientAliveInterval 60。这样设置后,您的连接将更加稳定高效。

b.重启SSH服务

# systemctl restart sshd

3.2 操作系统漏洞

操作系统不可避免会有漏洞,需要迭代更新,国产服务器操作系统也不例外。

麒麟V10的主要漏洞为内存泄露,涉及诸如mate-indicators、audit审计、kylin-kms-daemo和gvfs-udisks2-volume-monitor等进程。应对内存泄漏,我们通常采用两种策略。

(1)优化措施:通常,我们可以通过禁用服务或终止进程来应对紧急情况。然而,某些服务存在依赖关系,当其他服务重新启动或其他场景下,这些服务可能会被激活,导致问题未得到彻底解决。例如,gvfs-udisks2-volume-monitor进程依赖于gdm服务,这种方法在这种情况下并不适用。

(2)解决措施:升级补丁,彻底修复。

3.2.1 mate-indicators进程内存泄漏
3.2.1.1 问题描述

现象揭秘:mate-indicators进程,图形界面的关键角色,却遭遇内存泄露困扰。程序运行过程中,申请的内存未能得到妥善释放。如上图,top命令揭示其内存使用率居高不下,超过80%。

277025848380cd9dc765fc1f58066cef.jpeg

优化后:
影响范围:Mate-Indicators软件包,版本低于20150918Kord0Ukui58-10.p07。

3.2.1.2 解决方案

(1)检查软件包版本

# rpm -qa | grep mate-indicators &nbsp;&nbsp;&nbsp;&nbsp;

优化后:2015年9月18日,Mate指标更新至kord0ukui58-10.p03.ky10版本,适用于aarch64架构。

该版本存在内存泄露问题,一般建议升级至最新稳定版本。

(2)升级补丁

通过yum源或rpm包方式进行软件包升级,如

# rpm -Uvh mate-indicators*

升级后检查版本信息

# rpm -qa | grep mate-indicators

"Mate Indicators 20150918Kord0UKUI58-10.P07.KY10.Aarch64 - 高效、精准的科技指标工具,为您的数据驱动决策提供强大支持。"

(3)重新加载配置

# systemctl restart lightdm

3.2.2 rpm进程出现CPU冲高
3.2.2.1 问题描述

现象:rpm进程持续运行不退出且cpu占用接近100%。

影响范围:libdb软件包版本低于5.3.28-37.p01.ky10

3.2.2.2 解决方案

通过yum源或rpm包方式进行软件包升级,如:

# rpm -Uvh libdb*

探索我们的三个软件包:libdb-help -5.3.28-37.p01.ky10.noarch.rpm、libdb-devel-5.3.28-37.p01.ky10.x86_64.rpm、libdb-5.3.28-37.p01.ky10.x86_64.rpm。它们将引领您进入技术的新领域,为您的工作和学习提供强大的支持。

3.2.3 rpmdb出现损坏
3.2.3.1 问题描述

影响范围:查看当前版本,rpm版本非p01,需要修复

# rpm -qa|grep -E '^rpm'

3.2.3.2 解决方案

将软件包(rpm-4.15.1-23.p01.ky10.aarch64.rpm、python3-rpm-4.15.1-23.p01.ky10.aarch64.rpm)统一放置于指定目录,进入后执行升级操作。

# yum localinstall ./*.rpm

(2)禁用dnf-makecache.timer定时器

# systemctl stop dnf-makecache.timer

# systemctl disable dnf-makecache.timer

3.2.4 其他漏洞问题

欲探索更多漏洞问题,欢迎访问麒麟软件知识库。目前,我们的知识库已涵盖浙江公开知识库(https://www.yuque.com/kylinos/zj)和麒麟软件公开知识库(http://wx.kylinos.cn/zsk)。让我们一起挖掘知识的宝藏,解锁无限可能!

3.3 操作系统特性

麒麟V10系统与红帽系统在日常应用上并无显著差异,尽管存在一些特殊属性可能影响运行。因此,建议在运维实施前进行充分规划,以提前应对可能出现的问题。

3.3.1 9090端口被占用
3.3.1.1 现象

查看端口使用情况,发现9090端口被占用。

# netstat -antp |grep 9090

58464aa0f91986b3b7f83894a54fd91c.jpeg

3.3.1.2 原因

9090端口已被Cockpit服务锁定,这款开源工具以Web界面管理Linux系统,提供丰富的功能,如文件管理、系统日志查看、用户管理、服务配置、网络设置及安全审计等。Cockpit,让Linux管理更便捷,更直观。

3.3.1.3 解决方案

禁用服务,释放端口。

请执行以下命令以查看Cockpit服务状态:# systemctl status cockpit.socket

0a68b5237c4a7b10bad4506ec0738be2.jpeg

"3. 关闭Cockpit服务:执行命令# systemctl disable cockpit.socket。"

(4)查看端口占用情况:# netstat -antp |grep 9090

44fc6044bea8298392fed001b6e19d5d.jpeg

3.3.2 系统重启后/tmp目录被清空
3.3.2.1 现象

# df -Th|grep /tmp

d91a2937e6e4fdd0e1a1beb8e9d053ab.jpeg

3.3.2.2 原因

/tmp目录是采用tmpfs文件系统类型,这是一种基于内存的、被称为临时文件系统的存储方式。由于其将文件存放在内存中,因此会占用内存资源,一旦系统重启,内存数据便会丢失。

请注意,tmp.mount是一项systemd服务,专为挂载临时文件系统设计。在启动时,此服务会自动运行,将高效的tmpfs文件系统挂载至/tmp目录,以实现临时文件的快速读写。为您的系统操作带来便捷体验。

3.3.2.3 优化建议(二选一)

(1)禁用tmp.mount服务,将/tmp恢复至/目录下

# systemctl mask tmp.mount

74d215fac3f01bf8c4aee9d046d083ba.jpeg

重启后生效:

4c3a861416af6aa069f0c013aa9f83bd.jpeg

(2)保留tmp.mount服务,为操作系统添加硬盘,构建一个独立逻辑卷并挂载在/tmp目录下。设置为独立文件系统并整合至/etc/fstab配置中。利用LVM技术,操作简洁高效。

e91b0d931ba61d1a45ee1e7fd1ab7d62.jpeg

3.3.3 普通用户无法执行crontab命令
3.3.3.1 现象

普通用户执行crontab报错,显示没有权限执行。

# crontab -e

07f860443caca4ef23641b1337e76a7e.jpeg

3.3.3.2 原因

"crontab"命令,让您定时执行任务。若被恶意利用,可能引发安全隐患。麒麟V10默认实施安全策略,仅允许root用户及/etc/cron.allow文件中的非root用户使用,确保您的系统安全无虞。

3.3.3.3 解决方案(二选一)

(1)临时添加白名单

在/etc/cron.allow中添加需执行crontab的用户,如monitor。若文件不存在,则进行创建。

b153d58549712e64f704a9ec035d9208.jpeg

不再报错:

fcc478ec9cc36004c95a0df8424ba88a.jpeg

(2)删除白名单,创建黑名单(放开所有用户)

# rm -f /etc/cron.allow

# touch /etc/cron.deny

c17f025d87253985d3a4cab47518dc1e.jpeg

3.3.4 root用户不能直接su到普通用户
3.3.4.1 现象

root用户su到普通用户提示需要输入密码。

df91fd6f2d5f6866f220661078c0dcf2.jpeg

3.3.4.2 原因

麒麟V10搭载了全新的kysec安全管理工具,特设uid(600)和uid(700)两个特性,专为三权分立用户设计。当root用户切换到这些uid用户时,系统将提示输入密码,确保信息安全。

"三权分立角色涵盖secadm安全管理员、auditadm审计管理员及root系统管理员,确保权限清晰、操作安全。"

3.3.4.3 解决方案

调整su操作的用户密码验证策略。

(1)编辑配置文件/etc/pam.d/su

# vi /etc/pam.d/su

5bde1dd521d52954b083922e61fc9cc4.jpeg

将/etc/pam.d/su文件的第一行注释掉,即第一行内容调整如下:

0848df4ad68546d0ea2cbd3ff80124c7.jpeg

(2)测试是否生效

# su - test

9e4778026028965fd84319047b180956.jpeg

3.3.5 开启内核参数tcp_tw_recycle报错
3.3.5.1 现象

在/etc/sysctl.conf配置文件中添加参数"net.ipv4.tcp_tw_recycle=1",然后执行命令启动。

# sysctl -p

5cf773452ad5c9e6f9c6c49a780e79ce.jpeg

报错如下:

6c40d67769f4459a895cad5fcd7d0d67.jpeg

3.3.5.2 原因

从内核版本4.10开始,每个数据包的时间戳生成机制进行了变革(TCP连接的时间戳偏移被随机化),这可能与tcp_tw_recycle参数产生交互影响,引发TCP连接异常。因此,在内核版本4.12中,我们彻底移除了tcp_tw_recycle参数。

注:麒麟V10SP1采用4.19内核版本,无需处理。

3.4 操作系统激活

麒麟V10的激活方式包括微信扫码、KMS批量及场地授权。我们将聚焦微信扫码与KMS批量激活流程的差异,而忽略无需操作的场地授权。

3.4.1 激活流程

激活流程:微信扫码绑定授权二维码,获取启动权限。系统读取授权文件并执行命令,生成二维码。扫描二维码,启动激活程序。完成激活,一切尽在掌握。

3.4.2 差异及建议

激活耗时:微信方式手工操作,大量激活需耗费时日;KMS方式待搭建完成服务器后,将显著减少工作量。尽管自动化程度有待提升,建议在KMS批量激活服务器搭建完成后,通过脚本或平台实现高效自动化激活。

麒麟V10不激活不影响系统运行,但商业版软件建议根据正版化要求进行激活使用。

四、总结

打造国产操作系统的完整生态链是推动创新信息操作系统的“关键步骤”。同时,一个健全的软硬件生态链也是企业在引入新操作系统时需要重点考虑的因素之一。麒麟V10已经成功建立了自己的生态链,在与常用软件的兼容性上已表现出色。然而,仍存在一些问题需要解决。生态链的持续优化和完善离不开企业在实际运维和业务场景中的问题反馈以及方案改进。在这场创新信息浪潮中,我们作为从业人员需积累技术、做好预备,以实现在遇到问题时能从容应对,心中有数。


-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

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

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

相关文章

深度学习中的FLOPs补充

学习了博主的介绍&#xff08;深度学习中的FLOPs介绍及计算(注意区分FLOPS)-CSDN博客&#xff09;后&#xff0c;对我不理解的内容做了一点补充。 链接放到下边啦 https://blog.csdn.net/qq_41834400/article/details/120283103 FLOPs&#xff1a;注意s小写&#xff0c;是floa…

AH3-3 10s AC220V时间继电器 面板安装 约瑟JOSEF

时间继电器 AH3-3 AH3-2 AH3-1 AH3系电子式时间继电器具有体积小、重量轻、延时精度高、延时范围宽、可靠性好、寿命长等特点&#xff0c;产品符合国际标准&#xff0c;最适合在各种高精度、高可靠性自动控制场合作延时控制之用. 型号&#xff1a;AH3-3 外型尺寸&#xff1a…

【Quart 框架——来源于Flask的强大且灵活的异步Web框架】

目录 前言一、Quart简介1-1、简介1-2、与flask的区别 二、快速开始2-1、安装2-2、基本用法 三、核心功能3-1、异步路由3-2、WebSockets 支持3-3、中间件3-4、蓝图 (Blueprints) 四、部署4-1、使用uvicorn部署4-2、使用hypercorn部署 五、案例分析总结 前言 Quart 是一个基于 Py…

​Chrome 插件: GoFullPage 一键搞定全网页截图

在互联网时代&#xff0c;网页截图已成为我们日常工作和生活中不可或缺的部分。无论是保存重要信息、制作教程&#xff0c;还是分享有趣的内容&#xff0c;截图功能都显得尤为重要。然而&#xff0c;常规的截图工具往往只能截取当前屏幕的内容&#xff0c;对于长网页则显得力不…

2024 辽宁省大学数学建模竞赛C 题 改性生物碳对水中洛克沙胂和砷离子的吸附 完整思路 代码结果分享(仅供学习)

目前全球水体砷污染问题严重&#xff0c;极大地危害了人类的健康。砷在水体中主要以砷离子[AS(V)]和洛克沙胂(ROX)两种形式存在。改性生物碳具有优秀的吸附性能&#xff0c;可用于砷污染的处理。改性生物碳表面的官能团可以通过静电吸引、配位作用或络合作用与 AS(V)和 ROX 结合…

离线下载linux mysql和mysql基本库

下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 选择数据库版本&#xff0c;系统&#xff0c;系统版本信息 下载需要的rpm包&#xff0c;传入服务器&#xff0c;使用yum install xxx.rpm安装即可 mysql-community下载地址 https://dev.mysql.com/downloads/my…

SpringCloud教程 | 第七篇: 使用Nacos管理服务

1、先开发了一个生产者&#xff0c;启动了一个服务&#xff0c; 代码参考&#xff1a;https://github.com/veminhe/nacos.git 2、然后复制了该生产者&#xff0c;改了一下端口&#xff0c;启动成了另外一个服务 3、然后开发了一个消费者&#xff0c;里面使用了feign调用生产者…

Windows安装mamba全流程(全网最稳定最成功)

windows系统下安装mamba会遇到各种各样的问题。博主试了好几天&#xff0c;把能踩的坑都踩了&#xff0c;总结出了在windows下安装mamba的一套方法&#xff0c;已经给实验室的windows服务器都装上了。只要跟着我的流程走下来&#xff0c;大概率不会出问题&#xff0c;如果遇到其…

初阶数据结构—排序

第一章&#xff1a;排序的概念及其运用 1.1 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有…

负载均衡-轮询-两种简易实现

1、描述 下游可用的服务器目前有5个&#xff08;node&#xff09;&#xff0c;设计一个方法&#xff0c;方法没有任何参数&#xff0c;采用轮询的方式返回其中一个node&#xff1b; 2、使用环形链表 每次取下一个node即可。注意&#xff1a;需要保证线程安全&#xff01; // …

Android焦点之SurfaceFlinger传递给InputFinger

接下来就到了SurfaceFlinger端&#xff0c;内调ISurfaceComposer的setTransactionState() SurfaceFlinger::setTransactionState:这里是一个BpBn操作&#xff0c;进程surfaceflinger的binder线程&#xff0c;主要是调用到SurfaceFlinger.cpp的setTransactionState()。 在每次…

Binder驱动中的流程详解

1.前言 作为安卓系统中重要的IPC通信机制&#xff0c;Binder通信使得组件之间的通信更加的高效和灵活。但在实现上&#xff0c;Binder通信横跨了整个Android系统架构&#xff0c;从应用层到frameworks&#xff0c;再到native&#xff0c;最后到底层kernel&#xff0c;这使得Bin…

深度学习工具和资源推荐:全面指南

今天我们来聊聊深度学习的工具和资源。要学好深度学习&#xff0c;除了理论知识&#xff0c;还需要掌握一些强大的工具和找到好的资源。以下是我在学习过程中发现的一些非常有用的工具和资源&#xff0c;希望对你们有帮助。 目录 工具推荐 1. Python编程语言 2. TensorFlow…

前端Vue组件化实践:打造灵活可维护的地址管理组件

随着前端技术的不断演进&#xff0c;复杂度和开发难度也随之上升。传统的一体化开发模式使得每次小小的修改或功能增加都可能牵一发而动全身&#xff0c;严重影响了开发效率和维护成本。组件化开发作为一种解决方案&#xff0c;通过模块化、独立化的开发方式&#xff0c;实现了…

zigbee开发工具:3、驱动安装与程序下载(更新中...)

zigbee开发工具前两篇讲解了IAR开发工具的安装与注册&#xff0c;还介绍了新建一个cc2530开发工程的建立与配置。在进行zigbee开发&#xff0c;代码编写编译好后还需要下载到zigbee节点设备上进行调试与验证&#xff0c;那么就需要安装SmartRF Flash Programmer软件 和仿真器等…

【Android面试八股文】谈谈你对Glide框架的缓存机制设计的理解

文章目录 一、引入缓存的目的二、Glide缓存流程2.1 Glide缓存的读取顺序2.2 Glide加载资源流程2.3 Glide 的缓存分层结构三、内存缓存原理四、存取原理4.1 取数据4.2 存数据4.3 为什么要引入软引用?五、磁盘缓存原理(DiskLruCache)5.1 磁盘缓存概述5.2 Glide磁盘缓存策略5.3…

昆明高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

昆明高校大学智能制造实验室的数字孪生可视化系统平台建设项目&#xff0c;正是在这样的背景下应运而生。项目自启动以来&#xff0c;便受到了校方的高度重视和大力支持。经过数月的紧张筹备和精心实施&#xff0c;项目团队克服了种种技术难题&#xff0c;成功完成了系统的开发…

华为模拟器防火墙配置实验(二)

一.实验拓扑 二.实验要求 1&#xff0c;DMZ区内的服务器&#xff0c;办公区仅能在办公时间内&#xff08;9&#xff1a;00 - 18&#xff1a;00&#xff09;可以访问&#xff0c;生产区的设备全天可以访问. 2&#xff0c;生产区不允许访问互联网&#xff0c;办公区和游客区允许…

AI绘画;盘点用stable diffusion 赚钱的10种方式!

前言 stable diffusion 是一种基于文本生成图像的深度学习模型&#xff0c;它可以根据任何文本输入生成逼真的图像。它利用了 CLIP ViT-L/14 文本编码器的文本嵌入和扩散模型的潜在变量&#xff0c;实现了高质量的图像合成。 stable diffusion 可以用于赚钱的10种方式及思路如…

论文精读(保姆级解析)——DiFaReli: Diffusion Face Relighting

前言 该论文发表在2023年ICCV上&#xff0c;主要针对人像重打光问题提出了一种新的方法&#xff0c;下面给出论文和项目链接&#xff1a; papergithub 摘要 提出了一种针对单张图像的重打光方法&#xff0c;作者提到针对非漫反射光照的处理比较困难&#xff0c;早期的工作主要…