如何在Ubuntu 14.04上利用Keepalived与Floating IP设置高可用性Web服务器

keepalived应用:漂移IP的实现 1.集群的介绍   每个服务器都叫做一个节点,集群节点之间是可以相互通信的,通信方式有两种:一种是基于RS232心跳线实现心跳监控,另一种用一块单独的网卡来跑心跳。心跳就是用来判断集群每个服务器之间网络、服务是否正常,判断方法就是用连接线,这个连接线可以是网卡,也可以是RS232,一般用网卡网线。   集群必须拥有这几个特性:1.服务实体的扩展功能,可以灵活的增加和剔除某个服务实体。2.当一个节点... 阅读详情

提供:ZStack云计算

内容简介

高可用性无疑是系统设计当中的关键性指标之一,其使得应用程序能够在遭遇故障时自动重新启动或者重新路由至其它系统当中。而着眼于服务器,我们需要运用多种不同技术以设置一套高可用系统。具体而言,其中需要一款能够对工作负载进行重新定向的组件,同时具备一套机制以监控故障并在检测到中断状况时进行系统转换。

立足于这样的场景,keepalived守护进程可用于监控服务或系统,同时在问题出现时自动实现故障转移。在今天的教程中,我们将演示如何利用keepalived设置一项高可用Web服务。我们还将配置一套 Floating IP地址,其能够在两台Web服务器之间顺畅往来。一旦主服务器发生故障,Floating IP将被自动迁移至副服务器,从而帮助服务恢复正常运行。

先决条件

为了完成这份教程,大家需要利用自己的DigitalOcean账户创建两套Ubuntu 14.04服务器。这两套服务器必须位于同一数据中心之内,同时启用专有网络功能。

在每台服务器上,我们还需要配置一个非root用户以实现sudo访问。大家可以参阅Ubuntu 14.04初始服务器设置指南一文以了解如何设置此类用户。

当大家准备就绪之后,即可利用自己的非root用户对服务器进行日志记录。

安装并配置Nginx

尽管keepalived常被用于执行监控及故障转移负载均衡器,从而降低日常运营复杂性,但我们在本教程中将使用Nginx作为简单Web服务器。

首先对每台服务器上的本地软件包索引进行更新。我们可以使用以下命令安装Nginx:

- sudo apt-get update   
- sudo apt-get install nginx

在多数情况下,为了构建高可用系统,我们可能需要确保两台服务器承载同样的内容。然而为了清晰起见,本教程中我们将利用Nginx指定特定时间段内由哪台服务器响应相关请求。为实现这一诉求,我们需要对每台主机上的默认index.html页面进行修改。现在打开该文件:

- sudo nano /usr/share/nginx/html/index.html

在第一台服务器上,利用以下内容替代该文件初始内容:

Primary server’s /usr/share/nginx/html/index.html

<h1>Primary</h1>

在第二台服务器上,利用以下内容替代该文件初始内容:

Secondary server’s /usr/share/nginx/html/index.html

<h1>Secondary</h1>

完成后保存并退出。

构建并安装Keepalived

接下来,我们需要在服务器上安装keepalived守护进程。Ubuntu的默认库中即直接提供keepalived,但其版本已经非常陈旧且存在多个bug,因此我们的配置将使用keepalived的最新版本。

在开始之前,我们应该需要提取构建该软件所必需的关联性。其中build-essential meta-package将提供我们需要的编译工具,而libssl-dev软件包则包含keepalived构建所必需的SSL库:

- sudo apt-get install build-essential libssl-dev

关联性就位后,我们可以下载keeaplived压缩包。参阅此页面以获取该软件的最新版本。右键点击其最新版本并复制链接地址。回到服务器,进入主目录并使用wget命令以使用刚刚复制的链接:

- cd ~
- wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz

使用tar命令以释放该归档文件,而后进入生成的目录:

- tar xzvf keepalived*

- cd keepalived*

输入以下命令以构建并安装该守护进程:

- ./configure

- make

- sudo make install

该守护进程现在已经被安装在系统当中。

创建一套Keepalived Upstart脚本

Keepalived安装包将把全部二进制与支持文件移动到我们的系统当中。不过其中还缺少一套用于Ubuntu 14.04系统的Upstart脚本。

我们可以创建一套非常简单的Upstart脚本以处理keepalived服务。首先打开/etc/init目录当中的keepalived.conf文件:

- sudo nano /etc/init/keepalived.conf

在这里,我们可以对keepalived提供的功能进行简单描述。在本教程中,我们将直接使用man页面中的描述。接下来,我们需要为服务的启动与停止设定运行级别。此服务需要在一切正常状态下保持活动(运行级别为2-5),并在其它运行级条件下(包括重启、断电或者单一用户模式初始化)停止:

/etc/init/keepalived.conf

description "load-balancing and high-availability service"

start on runlevel [2345]
stop on runlevel [!2345]

由于该服务属于确保Web服务活动的必要前提,因此我们需要在遭遇故障时对该服务进行重新启动。我们可以指定具体exec行以启动该服务。通过添加–dont-fork选项,此Upstart脚本将能够追踪正确的pid:

/etc/init/keepalived.conf

description "load-balancing and high-availability service"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

exec /usr/local/sbin/keepalived --dont-fork

完成后保存并退出。

创建Keepalived配置文件

Upstart脚本文件完成后,现在我们可以对keepalived进行配置了。

该服务会在/etc/keepalived目录中寻找其配置文件。现在在两台服务器上创建此目录:

- sudo mkdir -p /etc/keepalived
收集服务器的专有IP地址

在开始创建配置文件之前,我们还需要找出两台服务器的专有IP地址。在DigitalOcean服务器上,大家可以通过以下命令从metadata服务内获取专有IP地址:

- curl http://169.254.169.254/metadata/v1/interfaces/private/0/ipv4/address && echo

Output

10.132.7.107

大家也可以输入以下命令利用iproute2工具获取结果:

- ip -4 addr show dev eth1

大家将看到以下返回值:

Output

3: eth1: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 10.132.7.107/16 brd 10.132.255.255 scope global eth1
   valid_lft forever preferred_lft forever

复制两套系统的上述值,供我们接下来在配置文件中进行引用。

创建主服务器配置

接下来在主服务器上创建主keepalived配置文件。该守护程序会在/etc/keepalived目录当中寻找keepalived.conf文件:

- sudo nano /etc/keepalived/keepalived.conf

在此文件中,我们将开启vrrp_script block以定义Nginx服务运行状态检查。通过这种方式,keepalived能够监控我们的Web服务器故障情况,并在进程被中止时发出通知且执行恢复举措。

我们的检查机制非常简单——每两秒对名为nginx的进程进行检查以确定其是否仍在发布pid:

Primary server's /etc/keepalived/keepalived.conf

vrrp_script chk_nginx {
script "pidof nginx"
interval 2
}

接下来,我们将打开一个名为vrrp_insance的block。这部分正是配置的核心所在,用于定义keepalived实现高可用性的具体方式。

我们首先告知keepalived通过eth1(也就是我们的专有接口)同另一keepalived进程进行通信。由于我们正在配置主服务器,因此其状态配置可设置为“MASTER”。此将作为keepalived的初始值,直到该守护进程能够与另一keepalived进程通信并进行选定。

在选定过程中,priority选项用于决定选择哪个服务器成员。此决定完全取决于哪台服务器的设定数值更高。我们将主服务器的数值设定为“200”:

Primary server's /etc/keepalived/keepalived.conf

vrrp_script chk_nginx {
script "pidof nginx"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

}

接下来,我们将为该集群组分配一个ID,此ID将同两个节点进行共享。在本示例中,我们使用“33”作为ID。我们将unicast_src_ip设定为此前检索到的主服务器专有IP地址。而unicast_peer则为我们副服务器的专有IP地址:

Primary server's /etc/keepalived/keepalived.conf

vrrp_script chk_nginx {
script "pidof nginx"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

virtual_router_id 33
unicast_src_ip primary_private_IP
unicast_peer {
    secondary_private_IP
}

}

接下来我们可以为keepalived守护进程的通信机制设置一些简单的验证保护。这种基础性保护措施旨在确保服务器合法性。首先创建一个authentication子block,在其中设定auth_type以指定验证密码。而auth_pass参数则设定为两个节点共同使用的共享密码。遗憾的是,这里我们只能设定八位字符作为密码:

Primary server's /etc/keepalived/keepalived.conf

vrrp_script chk_nginx {
script "pidof nginx"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

virtual_router_id 33
unicast_src_ip primary_private_IP
unicast_peer {
    secondary_private_IP
}

authentication {
    auth_type PASS
    auth_pass password
}

}

现在我们将告知keepalived使用我们利用chk_nginx标签在文件中创建的路由以检测本地系统的运行状态。最后,我们设置一套notify_master脚本,其将在本节点成为“master”后加以执行。该脚本负责触发Floating IP地址分配。我们暂时将此脚本创建如下:

Primary server's /etc/keepalived/keepalived.conf

vrrp_script chk_nginx {
script "pidof nginx"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

virtual_router_id 33
unicast_src_ip primary_private_IP
unicast_peer {
    secondary_private_IP
}

authentication {
    auth_type PASS
    auth_pass password
}

track_script {
    chk_nginx
}

notify_master /etc/keepalived/master.sh
}

以上信息设置完成后,保存文件并退出。

创建副服务器配置

下面为副服务器创建活动脚本。在副服务器上打开/etc/keepalived/keepalived.conf文件:

- sudo nano /etc/keepalived/keepalived.conf

这里使用的脚本与主服务器脚本基本一致。其中需要变更的条目包括:

  • state: 将其变更为“BACKUP”,这样此节点将在选定开始之前被初始化为bakcup状态。
  • priority: 将其值设定为低于主服务器。在本教程中,我们选择“100”数值。
  • unicast_src_ip: 此处应为副服务器的专有IP地址。
  • unicast_peer: 此处应为主服务器的专有IP地址。

在上述值变更完成后,副服务器脚本内容将如下所示:

Secondary server's /etc/keepalived/keepalived.conf

vrrp_script chk_nginx {
script "pidof nginx"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
    primary_private_IP
}

authentication {
    auth_type PASS
    auth_pass password
}

track_script {
    chk_nginx
}

notify_master /etc/keepalived/master.sh
}

在完成了各项数值调整之后,保存文件并退出。

创建Floating IP转换脚本

接下来,我们需要创建两套脚本,负责在本地keepalived实例成为主服务器后为当前Droplet分配Floating IP地址。

下载Floating IP分配脚本

首先,我们需要下载一套通用型Python脚本(由一位DigitalOcean社区管理者) that can be used to reassign a floating IP address to a Droplet using the DigitalOcean API. We should download this file to the 编写而成,能够利用DigitalOcean API为Droplet分配Floating IP地址。我们需要将该文件下载至/usr/local/bin目录:

- cd /usr/local/bin

- sudo curl -LO http://do.co/assign-ip

此脚本允许我们通过运行以下命令对现有Floating IP进行重新分配:

- python /usr/local/bin/assign-ip floating_ipdroplet_ID

需要注意,只有我们在账户中将名为DO_TOKEN的环境变量设定为一条有效的DigitalOcean API令牌时,该脚本才能正常起效。

创建一条DigitalOcean API令牌

为了使用上述脚本,我们需要在账户中创建一条DIgitalOcean API令牌。

在控制面板当中,点击顶部的“API”链接。而后在API页面右侧点击“generate new token”:

在后续页面中,为我们的令牌选择一个名称并点击“Generate Token”按钮:

在API页面中,我们的新令牌将显示如下:

现在复制该令牌。出于安全考量,我们之后不应再显示该令牌内容。如果大家丢失了此令牌,则需要将其撤销并重新创建一条新令牌。

为基础设施配置一项Floating IP

接下来,我们将为服务器创建并分配一项Floating IP地址。

在DigitalOcean控制面板中,点击“Networking”标签并选定“Floating IPs”导航条目。从列表中选择我们分配为“primary”服务器的Droplet:

这时我们的账户中将新建一项Floating IP地址,并被分配至指定的Droplet,如下所示:

如果大家在浏览器中访问该Floating IP,则应看到“primary”服务器的index.html页面:

复制该Floating IP地址,我们之后需要在脚本中使用。

创建Wrapper脚本

现在,我们已经拥有了全部必要条目,接下来可以利用正确凭证创建伯劳per脚本以调用我们的/usr/local/bin/assign-ipscript了。

通过以下命令在两台服务器上创建该文件:

- sudo nano /etc/keepalived/master.sh

在文件内分配并导出名为DO_DOKEN的变量,其中包含我们刚刚创建的API令牌。下面我们再分配一个名为IP的变量,其中包含将要使用的Floating IP地址:

/etc/keepalived/master.sh

export DO_TOKEN='digitalocean_api_token'
IP='floating_ip_addr'

此后,我们将使用curl命令向metadata服务询问当前所在服务器的Droplet ID。结果会被分配至名为ID的变量。我们还需要查询当前Droplet是否拥有分配得到的Floating IP地址。相关查询结果将被保存在名为HAS_FLOATING_IP的变量当中:

/etc/keepalived/master.sh

export DO_TOKEN='digitalocean_api_token'
IP='floating_ip_addr'
ID=$(curl -s http://169.254.169.254/metadata/v1/id)
HAS_FLOATING_IP=$(curl -s http://169.254.169.254/metadata/v1/floating_ip/ipv4/active)

现在,我们可以使用以上各变量调用assign-ip脚本了。只有在Floating IP尚未被分配至当前Droplet时,我们才需要调用该脚本。这种方式能帮助我们尽量减少API调用次数,从而避免master状态在不同服务器间快速切换时可能造成的API请求冲突。

如果Floating IP已经存在于进程事件内,我们可以多次重试assign-ip脚本。下面我们连续运行十次该脚本,每次间隔3秒钟。一旦Floating IP移动成功,该循环将立刻中止:

/etc/keepalived/master.sh

export DO_TOKEN='digitalocean_api_token'
IP='floating_ip_addr'
ID=$(curl -s http://169.254.169.254/metadata/v1/id)
HAS_FLOATING_IP=$(curl -s http://169.254.169.254/metadata/v1/floating_ip/ipv4/active)

if [ $HAS_FLOATING_IP = "false" ]; then
n=0
while [ $n -lt 10 ]
do
    python /usr/local/bin/assign-ip $IP $ID && break
    n=$((n+1))
    sleep 3
done
fi

完成后保存文件并退出。

现在我们只需要为该脚本提供执行权限,即可保证keepalived对其正常调用:

- sudo chmod +x /etc/keepalived/master.sh

启动Keepalived服务并测试故障转移效果

到这里,keepalived守护进程及其全部相关脚本都已经配置完成。我们可以通过以下命令在两台服务器上启动该服务:

- sudo start keepalived

该服务应该在两台设备上正确启动并彼此通信,同时验证我们之前配置的共享密码。每个守护进程都将监控本地Nginx进程,并监听来自远程keepalived进程的信号。

当两台服务器皆处于正常运行状态时,如果大家通过浏览器访问Floating IP,则亦查看到主服务器的Nginx页面:

现在我们已经可以测试这套配置方案的故障转移效果了。

故障转移只会在以下两种状态之一出现时生效:

  • 当主服务器上的Nginx运行状态检查发现Nginx不再运行时。在这种情况下,主服务器的keepalived守护进程将进入“fault”状态。其将通知副服务器进行master状态转换,同时声明Floating IP。
  • 当副服务器与主服务器间的keepalived连接断开时。如果副服务器由于某种原因而无法与主服务器对接,其将直接转换为“master”状态并尝试声明Floating IP。

如果主服务器随后恢复正常,其将重新转换回master状态并再次声明Floating IP,这是因为其启动同时会初始化新的选定过程(且仍然拥有更高priority数值)。

测试Nginx故障

我们可以通过停止主服务器上的Nginx服务对第一种情况进行测试:

- sudo service nginx stop

如果大家刷新浏览器,那么即时响应可能表现为该页面不可用:

不过在几秒之后,再次刷新页面则会发现副服务器已经声明该Floating IP地址:

我们可以在主服务器上重启Nginx守护进程以实现故障恢复:

- sudo service nginx start

几秒钟之后,刷新页面即会显示主服务器再次声明对Floating IP的所有权:

测试服务器故障

我们需要测试的另一种场景是,一旦副服务器无法与主服务器相对接,其能否正确完成master状态转换。测试这一效果需要重启master服务器:

- sudo reboot

同样的,此时访问Floating IP地址会显示服务不可用:

几秒之后,副服务器将接手请求处理:

再过一会儿,主服务器重启完毕后将再次声明该IP地址:

至此,第二种故障场景验证完毕。

总结

在今天的教程中,我们利用keepalived、DigitalOcean PI以及Floating IP地址配置了一套高可用Web服务器环境。其实际基础设施结构非常简单,但已经足以证明其能够支持各类重视服务可用性与正常运行时间的基础设施场景。

本文来源自DigitalOcean Community。英文原文:How To Set Up Highly Available Web Servers with Keepalived and Floating IPs on Ubuntu 14.04 By Justin Ellingwood

翻译:diradw

【Keepalived】搭建三节点、抢占式的Keepalived主备集群 非抢占式,相对于抢占式,少了一次 VIP 的切换,这是非抢占式集群的优点。所以,从性价比来看,还是抢占式的集群,更适合在生产环境部署,即两个备用节点的资源配置可以减半,甚至更低,因为只要主节点能在可控的时间内恢复,VIP就会被主节点再次抢占。2)当MASTER 节点(即192.168.223.31)系统宕掉或者服务不可用,VIP会根据节点配置的优先级,被强行迁移(即抢占)到另外两台备用节点中优先级(priority)较高的节点,即192.168.223.32。 阅读详情

相关推荐

keepalived 主备都存在vip, keepalived主备跨网段配置;keepalived主备服务器不在同一个网段怎么配置

keepalived 主备都存在vip, keepalived主备跨网段配置;keepalived主备服务器不在同一个网段怎么配置

思念十年后 4103

教你掌握 LVS + Keepalived 高可用群集

目录 Keepalive Keepalive基础 vrrp技术 VRRP相关技术 keepalived介绍 Keepalived 架构 Keepalived 相关文件 配置组成 单播多播地址 通知脚本 日志功能 LVS+Keepalived 高可用群集的搭建 配置负载调度器(主:192.168.241.129) 配置负载调度器(备:192.168.241.129) 配置节点服务器 web1(192.168.241.133) 配置节点服务器 web2(192.168.2..

秃头改变生活 3729

Keepalived + 预留IP实现Web服务高可用故障转移

虚拟IP(VIP)是保障服务连续性的基础机制,其核心原理是通过健康检查动态控制IP地址的归属权。Keepalived作为轻量级VIP管理工具,依托VRRP协议实现毫秒级状态同步与自动接管,技术价值在于零业务侵入、低资源占用和强稳定性。典型应用场景包括Nginx/Apache静态站点、PHP应用及轻量Node.js服务的容灾部署,尤其适用于云平台环境下的双机热备架构。本文聚焦于Keepalived与云服务商Reserved IPs(浮动IP)协同工作的完整实践路径,涵盖健康检查脚本设计、API权限配置、状态切

weixin_30701575的博客 721

keepalived虚拟IP(vip)出现在了多台机器上

1、出现原因 网络不通畅,禁用了数据包,主备服务器没法通讯,造成备服务器认为主服务器不可用,绑定VIP,主服务器VIP不会释放。 2、解决方案 ①设置非抢占模式,然后通过priority权重来区分谁的优先级更高 ②单播(定向广播)的方式 (一些特定环境禁用了组播方式) ③时间不同步 服务器时间校时 2.1-非抢占模式 ①nopreempt 在主备服务器的配置文件,vrrp_instance段中 ②所有节点设置state工作模式为BACKUP 所有节点都启动后,默认都是BACKUP状态,双方在发送组播信息后

水奈濑结花的博客哦! 4938

Ubuntu高可用实战:Heartbeat+预留IP实现秒级故障转移

高可用(HA)是保障业务连续性的核心能力,其本质是通过冗余节点与自动故障检测机制,在主服务失效时快速接管流量。Heartbeat作为轻量级集群管理器,基于UDP心跳协议实现节点状态感知;Reserved IPs则是云平台提供的稳定IP资源,支持API级绑定/解绑,规避了传统浮动IP的网络冲突与DNS缓存问题。二者结合,可在Ubuntu等Linux系统上构建低成本、高可控的双机热备方案,适用于Web服务、API网关、数据库代理等关键中间件场景。本方案不依赖K8s或商业负载均衡,聚焦内核级IP切换与云基础设施协

weixin_30740581的博客 1229

【信息科学与工程学】【通信工程】计算机科学与自动化——第二百三十三篇 云NaaS服务 系列二02

字段内容类型​云网络自定义路由表(Custom Route Table):允许用户自定义 VPC 或子网的路由规则,控制流量走向,支持黑白名单、策略路由。端计算节点->边缘计算节点->边缘DC->中心云的网络情况及存储需求及配置情况列表​端计算节点为 VPC 内的云资源。边缘计算节点不适用。边缘 DC 和中心云为路由表管理平台。存储需求:路由条目存储于数据库。网络:路由表在虚拟路由器中执行。QoS:无。网络的端到端配置(从接入到汇聚到核心)​。

weixin_49199313的博客 331

如何利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置

如何利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置内容简介翻译:diradw 提供 ZStack社区Heartbeat是一款开源程序,负责将集群基础设施容量——包括集群成员与消息收发——交付至客户服务器。Hearbeat在高可用性服务器基础设施当中扮演着关键性角色。我们通常需要将Heartbeat与Pacemaker等集群资源管理器(简称CRM)相结合,

zstack_org的博客 4843

NVIDIA Jetson Orin系列 - 使用SDK Manager安装JetPack全流程解析

本文详细解析了使用NVIDIA官方SDK Manager为Jetson Orin系列开发板安装JetPack系统的完整流程。从环境准备、设备进入恢复模式,到SDK Manager图形化界面的分步操作指南,提供了新手友好的全流程解析,并分享了安装后的验证方法及常见问题解决方案,帮助开发者高效搭建稳定的边缘AI开发环境。

nn3456的博客 407

linux 配置keepalived多个IP

新手 linux 配置keepalived多个ip 大家有建议也可以提

qq_43003827的博客 3174

【obj To 3DTiles 进阶实战】 从零配置地理坐标系与扩展属性元数据

本文详细解析了如何将OBJ模型转换为3DTiles格式,重点介绍了地理坐标系配置与属性元数据扩展的实战技巧。通过obj23dtiles工具,开发者可以精准定位模型经纬高坐标,并添加结构化属性表,实现城市规划模型在数字孪生平台的高效应用。

weixin_27215337的博客 368

HRNet 【demo 复现过程】

Deep High-Resolution Representation Learning for Human Pose Estimation

qq_45257495的博客 5560

架构设计 - 高可用集群虚拟ip(ip自动漂移)

集群 双机冗余 高可用 vip 虚拟ip 浮动ip ip漂移 ip自动漂移 ip自动切换 keepalived

itas109的专栏 2813

数学概念 | 旋转矩阵、欧拉角、四元数

旋转矩阵、欧拉角、四元数概念及相关运算;

NapoleonCoder的博客 772

如何给两台机器集群设置VIP(虚拟IP)

出现这种问题是因为路由交换层禁用了ARP的广播限制,造成Keepalive主备协议无法通过广播的方式进行通信,造成主备两台服务器都强占HAVIP地址,出现同时两台服务器都有VIP地址的情况出现,必须通过配置来指定IP的两台服务器间进行通讯。我是在openstack上搭建的集群,建议大家将需要用到的IP都固定到端口上,不要绑定浮动的IP,以免会出现网络跳动,导致IP配置失败。如果不加入以上配置,可能在两台机器上可以同时看到VIP,这样就失去了我们设置集群VIP的意义。可以看到这时候,VIP绑定在了主节点上。

qq_42720845的博客 2131

【PLC】三菱plc控件安装 component Movedata had the following error ... Error Number:-119

Windows 10 专业版/企业版本版本号:22H2操作系统内部版本:19045.3448。

少莫千华 8006

STM32F407 FreeRTOS+LVGL移植实战:从驱动适配到性能优化

本文详细介绍了在STM32F407开发板上移植FreeRTOS和LVGL的实战经验,涵盖硬件准备、驱动适配、性能优化等关键步骤。通过TFTLCD屏幕驱动优化、DMA加速和任务优先级调整,显著提升界面流畅度,为嵌入式GUI开发提供实用解决方案。

weixin_29190651的博客 636

redis集群-keepalived+redis

redis主安装在公网IP为x.x.x.x,内网为x1.x1.x1.x1的服务器上。redis从安装在公网IP为y.y.y.y,内网为y1.y1.y1.y1的服务器上。虚拟IP为z.z.z.z

weixin_43268590的博客 1847

Xshell 连接 VMware虚拟机操作 截图和使用

vmwareVMware总部位于美国加州帕洛阿尔托(Palo Alto),是全球云基础架构和移动商务解决方案厂商,提供基于VMware的解决方案,企业通过数据中心改造和公有云整合业务,借助企业安全转型维系客户信任,实现任意云端和设备上运行、管理、连接及保护任意应用Xshell(安全终端模拟软件)Xshell [1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。

小 tom的博客 803

Keepalive高可用的实现

Keepalived是一款非常强大的工具,可以用来构建高度可靠的网络服务。通过合理的配置,可以显著提高服务的可用性和稳定性。在企业环境中,通常会根据具体的业务需求和网络环境来定制Keepalived的配置。

K1487994142的博客 1181

基于ZYNQ PL的AD7606数据采集与FFT实时频谱分析:从硬件到创新实现

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKnmpgJm-1750295287594)(https://example.com/fft_plot.png)]本文涉及代码已在Xilinx ZCU102开发板与AD7606评估板上验证通过,采样率支持200KSPS@8通道,FFT计算延迟<1ms。传统MCU+DSP方案难以兼顾速度与功耗,而ZYNQ的PL+PS架构为这一问题提供了完美解决方案。本文实现的ZYNQ PL方案突破了传统处理器的性能瓶颈,通过。

QQ_778132974的博客 340

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

nginx高可用实践简记

在配置高可用前,我们首先需要立即一下虚拟ip的概念,如下图,我们会在128这台服务器上安装keepavlived,然后对其配个虚拟ip。后面我们再使用本机去ping虚拟ip130,如果收到响应则说明我们的keepalived配置成功。首先安装keepalived配置!#全局配置#邮件通知信息#定义收件人}#定义发件人#SMTP服务器地址#路由器标识,一般不用改,也可以写成每个主机自己的主机名}#一个vrrp_instance就是定义一个虚拟路由器的,实例名称启动。............

禅与计算机程序设计的艺术 3586

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

keepalived+ haproxy的简单使用及配置

主备服务器ha01 ha02(如果没有两块网卡可以用一块,也可以虚拟机添加一块网卡.)两台机器上编写的检查脚本是一样的.(ha01,ha02)ha02 haproxy文件配置。主节点ha01修改配置文件。配置haproxy配置文件。

crontab_e的博客 1077

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

关于如何创建floating-ip

STEP1 云主机所在网段 需要有路由器存在(例如192.168.22.0/24) STEP2 路由器子网需要与云主机在同一网段下(192.168.22.0/24) 路由器需要关联外网 然后我们可以分配floatingIP  让VM直接访问外网 IPsec(相当于一种通道,需要关联两台路由器)

qq_37533911的博客 513

Keepalived的VIP单播配置

默认keepalived主机之间利用多播相互通告消息,会造成网络拥塞,可以替换成单播,减少网络流量。注意:启用 vrrp_strict 时,不能启用单播。1、master主机配置。2、backup主机配置。3、抓包查看单播效果。

ouqisheng的博客 977

Keepalived跨网段设置 -- KeepAlived on different subnets

notify_script的具体内容取决于你想要实现的功能,但是一般来说,它应该是一个可执行的文件,接受三个参数:$1是keepalived的实例名称,$2是keepalived的状态(MASTER,BACKUP或FAULT),$3是keepalived的类型(INSTANCE或GROUP)。check_haproxy.sh是一个脚本,用于检查haproxy服务的状态,如果haproxy服务正常运行,就返回0,否则返回1。

5040
上一篇: ZStack 修改云主机模板
下一篇: 使用uWSGI Web服务器和Nginx部署Python WSGI应用
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值