维持最长的系统正常运行时间对随需应变计算的成功来说越来越重要。不幸的是,很多现成即用(off-the-shelf)的高可用性(high availability,HA)解决方案 价格昂贵,而且需要专门技术。本系列的 5 篇文章将提供一个使用公开可用软件获得 HA 服务的廉价替代方案。
本系列中的详尽步骤将展示如何在 Linux™ 上构建一个高可用性的 Apache Web 服务器、WebSphere® MQ 队列管理器、LoadLeveler 群集、WebSphere Application Server 群集和 DB2® Universal Database。 系统管理员可以投入最少的时间来学习如何使用和维护这个系统。本系列讲述的技术也适用于 Linux 上的很多服务。
为了最有效地利用本系列,您应该对 WebSphere MQ、WebSphere Application Server、IBM LoadLeveler、 DB2 Universal Database 以及高可用性群集有基本的了解。
简介
在业务关键型或任务关键型环境中使用任何软件产品,都需要考虑 可用性,这是对系统完成其应该完成的任务(甚至是在出现崩溃、设备故障和环境 灾难的情况下)的能力的度量。随着越来越多商业关键型应用程序转移到 Internet 上,提供高可用性服务 变得日趋重要。
本文将重点介绍实现 HA 解决方案时可能会遇到的一些实现问题。我们将回顾 HA 的概念、可用的 HA 软件、要使用的硬件, 以及关于 heartbeat(用于 Linux 的开源 HA 软件)的安装和配置细节,而且我们将查看如何通过 heartbeat 使 Web 服务器变得高度可用。
硬件要求
本系列中描述的测试场景需要以下硬件:
- 4 个装有以太网网络适配器的、支持 Linux 的系统。
- 一个共享的外部 SCSI 磁盘驱动器(双硬盘)。
- 一根 IBM 串口直连线缆(serial null modem cable)。
在我的设置中,我使用的是内存为 1 GB 的 IBM eServer™ xSeries® 335 机器。至于共享磁盘,我将 这些机器中的一台用作 NFS 服务器。完成安装所需要的软件如下所示,尽管对本文来说,只需安装 Red Hat Enterprise Linux 和 heartbeat 即可:
- Red Hat Enterprise Linux 3.0(2.4.21-15.EL)
- heartbeat 1.2.2
- IBM Java 2 SDK 1.4.2
- 安装了 Fix Pack 7 的 WebSphere MQ for Linux 5.3.0.2
- LoadLeveler for Linux 3.2
- 安装了 Cumulative Fix 1 的 WebSphere Base Edition 5.1.1 for Linux
- 安装了 Fixpack 1 的 WebSphere ND 5.1 for Linux
- DB2 Universal Database Enterprise Server Edition 8.1 Linux
下载后面 下载部分中列出的代码包,就可以得到该测试场景。表 1 描述了 hahbcode.tar.gz 中的目录。
表 1. 示例代码包中有哪些内容
toptoptoptoptoptoptop
目录 | 内容 |
heartbeat | heartbeat 的示例配置文件 |
www | 测试用于 Apache Web 服务器的 HA 的 HTML 文件 |
mq | 用于 WebSphere MQ HA 的脚本和代码:
|
loadl | 将 LoadLeveler 作为一项 Linux 服务来启动和停止的脚本 |
was | 用于 WebSphere 应用服务器 HA 的脚本和文件:
|
db2 | 检查数据库可用性、创建表、向表中插入行并从表中选择 行的脚本 |
高可用性的概念
高可用性 是在系统、组件或者应用程序发生故障时快速恢复基本服务的系统管理策略。其目的是最大程度地减少服务中断,而不是容错。用来解决关键商务操作的系统执行故障的最常见解决方案是,使用另一个系统来 等待并接管出故障的系统的负载,使商务操作继续进行下去。
术语“群集(cluster)”在不同的计算领域有着不同的含义。除非另外指明,否则本文中的 群集 都是指 heartbeat 群集,它是协作提供运行于群集内的高可用性服务的节点和资源(比如磁盘和网络)的一个集合。 如果这些机器中的一台出了故障,那么保持商业操作所需要的资源会转移到群集中另一台可用机器上。
两种主要的群集配置是:
- 备份(standby)配置:最基本的群集配置,在这种配置中,由一个节点执行任务,另一个节点只是作为备份。备份 节点不执行任务,被认为是 空闲的(idle);这种配置有时被称为 冷备份(cold standby)。 这样的配置需要高度的硬件冗余。 本系列文章关注的重点是冷备份配置。
- 接管(Takeover)配置:一种更高级的配置,在这种配置中,所有节点都执行同类任务,在某个节点出现故障时, 关键任务可以被接管。在 单边(one-sided)接管 配置中,备份节点执行一些附加的、不关键的、不可移动的任务。 在 相互接管(mutual takeover) 配置中,所有节点都执行高可用性(可移动的)任务。本系列文章没有介绍接管配置。
在建立一个高可用性群集时,必须为一些关键条目制定计划:
- 用于存储数据的硬盘必须通过私有互联结构(串行线缆)或者 LAN 连接到构成群集的服务器。
- 必须有自动检测出故障的资源的方法。这项任务由称为 心跳监控器(heartbeat monitor) 的软件组件来完成。
- 在出故障时,资源所有者必须能被自动转换为一个或更多正在工作的群集成员。
可用的 HA 软件
很多当前可用的软件都具备心跳监测和资源接管的功能。这里是可以用于不同操作系统的构建高可用性群集的软件列表 (请参阅 参考资料中的链接):
- heartbeat(Linux)
- High Availability Cluster Multiprocessing - HACMP(AIX)
- IBM Tivoli System Automation for Multiplatforms(AIX、Linux)
- Legato AAM 5.1(AIX、HP-UX、Solaris、Linux 和 Windows)
- SteelEye LifeKeeper(Linux、Windows)
- Veritas Cluster Server(AIX、HP-UX、Solaris、Linux 和 Windows)
本系列介绍的是开源 HA 软件 heartbeat。不过,您可以将在这学到的概念应用于上面的任意软件系统。
High-Availability Linux 项目和 heartbeat
名为 High-Availability Linux 的开源项目的目标是,通过社区开发努力提供一个提升 Linux 可靠性(reliability)、 可用性(availability)和可服务性(serviceability)(RAS)的群集解决方案。Linux-HA 项目得到了广泛的应用,是很多有 趣的高可用性解决方案的重要组成部分。
heartbeat 是可以从 Linux-HA 项目 Web 站点公开获得的软件包之一。它提供了所有 HA 系统所需要的基本功能,比如 启动和停止资源、监测群集中系统的可用性、在群集中的节点间转移共享 IP 地址的所有者等。它通过串行线、以太网接口 或者同时使用二者来监测特定服务(或多个服务)的健康状况。当前版本支持两节点配置,使用专门的 heartbeat“pings”来检查 服务的状态和可用性。heartbeat 为比本文中所描述的更复杂的情形提供了基础,比如 active/active 配置,该配置中 两个节点是并行工作的,负责完成负载平衡。
要获得更多关于将 heartbeat 和项目应用在什么地方的资料,请访问 Linux-HA 项目的 Web 站点 (请参阅 参考资料中的链接)。
群集配置
这些文章中测试使用的群集配置如图 1 所示。该设置包括一对构成群集服务器(ha1 和 ha2),两者都可以访问包含多个物理 磁盘的磁盘盒;服务器处于冷备份模式。应用程序数据需要位于两个节点都可访问的共享设备上。该设备可以是一个共享磁盘,或者网络 文件系统。为了防止数据被破坏,设备本身应该被镜像或者具有数据保护。这种配置经常被称作 共享磁盘群集,不过,实际 上,这是一个什么都不共享的体系结构,因为在同一时刻任何磁盘都只能被一个节点访问。
图 1. 产品环境中的 heartbeat 群集配置
在测试设置中,我使用的共享磁盘机制是 NFS,如图 2 所示,不过,我建议使用如图 1 所示的选项,尤其是在产品环境中时。 两个系统的串口之间的直连线缆用来在两个节点间传输 heartbeat。
图 2. 使用 NFS 作为共享文件系统的 heartbeat 群集配置
表 2 给出的是我所使用的两个节点的配置。在本例中,可以通过 DNS 或者两个节点上的 /etc/hosts 文件 得到主机名和 IP 地址。
表 2. 测试群集配置
toptoptoptoptoptop
角色 | 主机名 | IP 地址 |
共享(群集) | ha.haw2.ibm.com | 9.22.7.46 |
Node1(主) | ha1.haw2.ibm.com | 9.22.7.48 |
Node2(备份) | ha2.haw2.ibm.com | 9.22.7.49 |
Node 3(未知) | ha3.haw2.ibm.com | 9.23.7.50 |
NFS 服务器 | hanfs.haw2.ibm.com | 9.2.14.175 |
建立串行连接
通过两个节点的串口,使用一根直连线缆将它们连接起来。现在测试串行连接,如下所示:
在 ha1(接收者)上输入以下内容:
cat < /dev/ttyS0
在 ha2(发送者)上输入以下内容:
echo "Serial Connection test" > /dev/ttyS0
您应该会在接收者节点(ha1)上看到这些文本。如果成功,那么互换它们的角色,重新再试一次。
建立用作共享文件系统的 NFS
如前所述,在测试设置中,我使用 NFS 在节点间共享数据。
- 节点 nfsha.haw2.ibm.com 用作 NFS 服务器。
- 文件系统 /ha 是共享的。
要设置并运行 NFS,需要执行以下操作:
- 在 nfsha 节点上创建 /ha 目录。
- 编辑 /etc/exports 文件。文件包含一个条目列表;每一个条目都指明一个卷是否是共享的,以及它是如何共享的。 清单 1 展示了我的设置中 exports 文件的相关部分。
清单 1. exports 文件
... /ha 9.22.7.48(rw,no_root_squash) /ha 9.22.7.46(rw,no_root_squash) /ha 9.22.7.35(rw,no_root_squash) /ha 9.22.7.49(rw,no_root_squash) /ha 9.22.7.50(rw,no_root_squash) ...
- 启动 NFS 服务。如果 NFS 已经在运行,那么您应该运行
/usr/sbin/exportfs -ra
命令,让 nfsd 重新读取 /etc/exports 文件。 - 在两个 HA 节点(ha1 和 ha2)上,像添加本地文件系统那样将文件系统 /ha 添加到 /etc/fstab 文件中。清单 2 展示了在我的设置中 fstab 文件的相关部分:
清单 2. fstab 文件
... nfsha.haw2.ibm.com:/ha /ha nfs noauto,rw,hard 0 0 ...
稍后,我们将配置 heartbeat 来安装该文件系统。
- 使用清单 3 中所示的命令在该文件系统上对代码示例 hahdcode.tar.gz 进行解压缩。 (首先通过下面的 下载部分下载代码示例。)
清单 3. 解开示例代码
cd /ha tar xvfz hahbcode.tar.gz
下载并安装 heartbeat
通过 参考资料中的链接下载 heartbeat,然后输入清单 4 中的命令,在 ha1 和 ha2 这两台 机器上安装它(按照给出的顺序)。
清单 4. 安装 heartbeat 的命令
rpm -ivh heartbeat-pils-1.2.2-8.rh.el.3.0.i386.rpm rpm -ivh heartbeat-stonith-1.2.2-8.rh.el.3.0.i386.rpm rpm -ivh heartbeat-1.2.2-8.rh.el.3.0.i386.rpm
配置 heartbeat
要使用 heartbeat,必须配置三个文件:authkeys、ha.cf 和 haresources。我将给出实现中我使用的具体配置; 如果需要更多资料,请参阅 heartbeat Web 站点,并阅读它们的文档(请参阅 参考资料)。
1. 配置 /etc/ha.d/authkeys
该文件确定了为群集所使用的认证密钥;两个节点上的密钥必须相同。有三种认证模式可以选择:crc、md5 或 sha1。 如果您的 heartbeat 运行在一个安全的网络上,比如例子中的交叉线缆,那么应该使用 crc。从资源的角度看,该方法的花费最低。如果您的网络不够安全,但您不是特别多疑,或者不是很关心最小化 CPU 资源的使用,那么应该使用 md5。 最后,如果您想要得到最好的认证,而不考虑 CPU 资源的使用,那么请使用 sha1,因为它最难破解。
文件的格式如下:
auth <number>
<number> <authmethod> [<authkey>]
在测试设置中,我选择的是 crc 模式。清单 5 给出了 /etc/ha.d/authkeys 文件。要确保其许可是安全的, 比如 600。
清单 5. authkeys 文件
auth 2 2 crc
2. 配置 /etc/ha.d/ha.cf
这个文件将位于安装后创建的 /etc/ha.d 目录中。它告诉 heartbeat 使用哪些类型的媒体路径以及 如何配置它们。该文件还定义了群集中的节点,以及 heartbeat 用来确认系统是否在运行的接口。 清单 6 给出了我的设置中 /etc/ha.d/ha.cf 文件的相关部分。
清单 6. ha.cf 文件
... # File to write debug messages to debugfile /var/log/ha-debug # # # File to write other messages to # logfile /var/log/ha-log # # # Facility to use for syslog()/logger # logfacility local0 # # # keepalive: how long between heartbeats? # keepalive 2 # # deadtime: how long-to-declare-host-dead? # deadtime 60 # # warntime: how long before issuing "late heartbeat" warning? # warntime 10 # # # Very first dead time (initdead) # initdead 120 # ... # Baud rate for serial ports... # baud 19200 # # serial serialportname ... serial /dev/ttyS0 # auto_failback: determines whether a resource will # automatically fail back to its "primary" node, or remain # on whatever node is serving it until that node fails, or # an administrator intervenes. # auto_failback on # ... # # Tell what machines are in the cluster # node nodename ... -- must match uname -n node ha1.haw2.ibm.com node ha2.haw2.ibm.com # # Less common options... # # Treats 10.10.10.254 as a pseudo-cluster-member # Used together with ipfail below... # ping 9.22.7.1 # Processes started and stopped with heartbeat. Restarted unless # they exit with rc=100 # respawn hacluster /usr/lib/heartbeat/ipfail ...
3. 配置 /etc/ha.d/haresources
该文件描述的是 heartbeat 管理的资源。这些资源本质上只是一些 start/stop 脚本,非常类似于在 /etc/rc.d/init.d 中用来启动和停止资源的那些脚本。注意,heartbeat 会在 /etc/rc.d/init.d 和 /etc/ha.d/resource.d 中去寻找脚本。脚本文件 httpd 是 heartbeat 自带的。清单 7 给出了我的 /etc/ha.d/haresources 文件:
清单 7. haresources 文件
ha1.haw2.ibm.com 9.22.7.46 Filesystem::nfsha.haw2.ibm.com:/ha::/ha::nfs::rw,hard httpd
该文件在两个节点上必须相同。
这一行指出,在启动时,要实现以下操作:
- 令 ha1 为 IP 9.22.7.46 服务。
- 安装 NFS 共享文件系统 /ha。
- 启动 Apache Web 服务器。
在后面的文章中,我将向这个文件中添加更多的资源。 在关闭时,heartbeat 将执行以下操作:
- 停止 Apache 服务器。
- 卸载共享文件系统。
- 释放 IP。
这假定 uname -n
命令会显示 ha1.haw2.ibm.com;您的配置中可能只显示 ha1, 如果是那样的话,请使用 ha1。
配置 Apache HTTP 服务器的 HA
在这个步骤中,我将对 Apache Web 服务器的设置进行一些修改,使得它可以为共享系统上的文件提供服务,并为机器 ha1 和 ha2 的本地文件系统中的文件提供服务。index.html 文件(包含于代码示例中)将从共享的磁盘获得服务,而 hostname.html 文件 将从机器 ha1 和 ha2 上的本地文件系统获得服务。要实现 Apache Web 服务器的 HA,请执行以下操作:
- 以 root 身份登录。
- 在共享磁盘(/ha)上创建以下目录:
/ha/www
/ha/www/html - 在节点 ha1 上使用下面所示的命令为共享的目录设置适当的权限:
chmod 775 /ha/www
chmod 775 /ha/www/htmlLinux 上的高可用中间件,第 1 部分: heartbeat 与 Apache Web 服务器
- 在主节点机和备份节点机上,重命名 Apache Web 服务器的 html 目录:
mv /var/www/html /var/www/htmllocal - 在两台机器上使用下面的命令创建指向共享目录的符号连接:
ln -s /ha/www/html /var/www/html - 将 index.html 文件复制到节点 ha1 上的 /ha/www/html 目录:
cp /ha/hahbcode/www/index.html /var/www/html必须修改文件中的群集名称。
- 将 hostname.html 文件复制到两台机器上的 /ha/www/htmllocal 目录:
cp /ha/hahbcode/www/hostname.html /var/www/html修改这个文件中的群集名称和节点名称。
- 在两台机器上创建指向 hostname.html 文件的符号链接:
ln -s /var/www/htmllocal/hostname.html /ha/www/html/hostname.html
现在您就已经准备好测试 HA 实现了。
测试 Apaceh HTTP 服务器的 HA
要测试 Web 服务器的高可用性,请执行以下操作:
- 使用下面的命令启动主节点上的 heartbeat 服务,然后启动备份节点上的服务:
/etc/rc.d/init.d/heartbeat start如果该命令失败,那么去查看 /var/log/messages,以确定原因并进行改正。heartbeat 成功启动后,您应该看到一个新的网络接口,其 IP 地址是您在 ha.cf 文件中配置的那个 IP 地址。启动 heartbeat 之后,查看一下 主节点上的日志文件(默认是 /var/log/ha-log),确保它正在进行 IP 接管并启动 Apache Web 服务器。使用
ps
命令来确保 Web 服务器后台进程正在主节点上运行。heartbeat 将不会在备份 节点上启动任何 Web 服务进程。只是在主节点失败时才会在备份节点上启动 Web 服务进程。 - 将浏览器指向下面的 URL,以确认正确地为两个 Web 页提供了服务(如果使用了不同的主机名,那么 URL 应该有所不同):
http://ha.haw2.ibm.com/index.html
http://ha.haw2.ibm.com/hostname.html注意,在上面我使用的是群集地址,而不是主节点的地址。
对于第一个 URL,浏览器将显示下面的文本:
Hello!!! I am being served from a High Availability Cluster ha.haw2.ibm.com对于第二个 URL,浏览器将显示下面的文本:
Hello!!! I am being served from a node ha1.haw2.ibm.com in a High Availability Cluster ha.haw2.ibm.com - 在主节点上使用下面的命令仅仅停止 heartbeat 来模拟故障转移(failover):
/etc/rc.d/init.d/heartbeat stop您应该会看到,在一分钟之内,第二个节点上的所有 Web 服务器进程都会启动。如果不是那样,那么去查看 /var/log/messages 来确定问题所在并改正它。
- 将浏览器指向下面的 URL,以确认在 ha2 上正确提供了两个 Web 页的服务:
http://ha.haw2.ibm.com/index.html
http://ha.haw2.ibm.com/hostname.html对于第一个 URL,浏览器将显示下面的文本:
Hello!!! I am being served from a High Availability Cluster ha.haw2.ibm.com对于第二个 URL,浏览器将显示下面的文本:
Hello!!! I am being served from a node ha2.haw2.ibm.com in a High Availability Cluster ha.haw2.ibm.com注意,现在正在为该页提供服务的节点是 ha2。
- 重新启动主节点上的 heartbeat 服务。这样应该会停止第二节点上的 Apache 服务器进程,并在主节点上启动它们。 主节点应该同时接管群集 IP。
这样,通过将 Web 页放置在共享磁盘上,当主节点机器发生故障时,第二节点机器就可以向客户机提供其服务。故障转移 对访问 Web 页的客户机来说是透明的。该技术同样适用于提供 CGI 脚本服务。
结束语
我希望您尝试使用该技术,用廉价的硬件和立即可用的软件建立一个可用性非常高的 Web 服务器。在本系列的 下一篇文章中,您将看到如何使用 WebSphere MQ 来构建一个高可用性的消息队列服务器。
相关推荐
#### 三、Web服务器 - **Apache**: - 配置文件解析: 深入理解每个配置项的作用。 - 调优技巧: 包括模块优化、性能调整等。 - PHP集成: 了解Apache与PHP之间的交互机制。 - **Nginx**: - 反向代理配置: 通过...
在服务器领域,Linux支持各种常见的软件和硬件,包括大型数据库(如Oracle、DB2、Sybase)、中间件(如WebLogic、Websphere、JBoss)、Web服务器等,以及各种硬件设备,如磁带机、阵列卡、HBA卡等,确保了其在服务器...
12. **应用集群化**:许多企业级应用,如数据库(MySQL, PostgreSQL)、Web服务器(Apache, Nginx)、中间件(Tomcat, JBoss)等,都可以在集群环境中部署,以提高性能和可用性。 本书《Linux企业集群》可能涵盖了...
1、文件内容:qt5-qtmultimedia-5.9.7-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qtmultimedia-5.9.7-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:范例参考毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。VUE框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
Self-supervised Equivariant Attention Mechanismfor Weakly Supervised Semantic Segmentation,含有完整的代码和论文
本资源包含数据集有猫的三种声音-高音声、哈气声和喵呜声。 通过python、pytorch环境运行。 环境的安装可参考: https://blog.csdn.net/no_work/article/details/145416261 代码整体是非常简便的,总共三个py部分和一个数据集在data文件夹下。 运行python 01数据集文本生成制作.py 会在logs文件夹下生成2个txt文本,分别存放了wav音频的路径和对应的标签。 运行python 02train.py就会训练这个txt文本里面的数据,并将训练的模型与验证集里面的数据进行验证。 最后模型也是保存在logs文件夹下。 最后运行python 03pyqt.py即可加载训练好的模型,对输入的音频进行识别。
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
Global Context Networks,含有完整的代码和论文
1、文件内容:rhn-setup-gnome-2.0.2-24.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/rhn-setup-gnome-2.0.2-24.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
基于FAST与MATLAB Simulink联合仿真的风机变桨控制研究:独立与统一变桨在非线性风力发电机中的对比与应用分析,风机变桨控制基于FAST与MATLAB SIMULINK联合仿真模型非线性风力发电机的 PID独立变桨和统一变桨控制下仿真模型,对于5WM非线性风机风机进行控制 链接simulink的scope出转速对比,桨距角对比,叶片挥舞力矩,轮毂处偏航力矩,俯仰力矩等载荷数据对比图,在trubsim生成的3D湍流风环境下模拟 统一变桨反馈信号是转速,独立变桨反馈是叶根载荷 包含openfast与matlab simulink联合仿真的建模 NREL免费提供的5MW风机参数建模 可以提供参考文献 ,FAST模型; MATLAB SIMULINK联合仿真; 风机变桨控制; 非线性风力发电机; PID独立变桨控制; 统一变桨控制; 5WM风机; 仿真模型; 桨距角对比; 转速对比; 3D湍流风环境模拟; OpenFAST与MATLAB联合仿真建模; NREL 5MW风机参数建模。,基于OpenFAST与MATLAB/Simulink联合仿真模型的5MW风机变桨控制研究
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。VUE框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
1、文件内容:qt5-qtimageformats-doc-5.9.7-2.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qtimageformats-doc-5.9.7-2.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
基于Matlab Simulink的有源电力滤波器(APF)模型治理不控整流与三相不平衡电能质量问题仿真演示,有源电力滤波器(APF)模型 Matlab simulink 质量过硬 可用于治理不控整流和不平衡负载带来的电能质量问题:仿真总时长0.3s,0.1s时接入APF, 0.1-0.2s治理不控整流带来的谐波电流,0.2-0.3治理三相不平衡带来的不平衡电流。 ,核心关键词:有源电力滤波器(APF)模型; Matlab simulink; 质量过硬; 治理电能质量问题; 仿真; 不控整流; 不平衡负载; 谐波电流; 三相不平衡电流。,有源电力滤波器模型仿真:治理不控整流与三相不平衡的电能质量优化
1、文件内容:qt5-qtserialport-doc-5.9.7-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qtserialport-doc-5.9.7-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
通过 MATLAB 读取 N10 激光雷达 的数据,并进行 实时 3D 点云可视化。数据通过 串口 传输,并经过解析后转换为 三维坐标点,最终使用 pcplayer 进行动态渲染。
基于雨流计数法的源荷储双层协同优化配置:储能系统寿命评估与充放电策略研究,基于雨流计数法的源-荷-储双层协同优化配置 关键词:双层规划 雨流计算法 储能优化配置 参考文档:《储能系统容量优化配置及全寿命周期经济性评估方法研究》第三章 仿真平台:MATLAB CPLEX 主要内容:代码主要做的是一个源荷储优化配置的问题,采用双层优化,外层优化目标的求解依赖于内层优化的储能系统充放电曲线,基于储能系统充放电曲线,采用雨流计数法电池健康状态数学模型,对决策变量储能功率和容量的储能系统寿命年限进行评估;内层储能系统充放电曲线的优化受外层储能功率和容量决策变量的影响,不同的功率和容量下,储能装置的优化充放电功率曲线存在差异。 代码非常精品,注释保姆级,靠谱值得信赖。 ,双层规划;雨流计数法;储能优化配置;充放电曲线;电池健康状态。,基于雨流计数法的双层协同储能优化配置研究