一.heartbeat和ipvsadm简介

heartbeat简介:

heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。

可靠消息通信

Heartbeat通过插件技术实现了集群间的串口、多播、广播和组播通信,在配置的时候可以根据通信媒介选择采用的通信协议,heartbeat启动的时候检查这些媒介是否存在,如果存在则加载相应的通信模块。这样开发人员可以很方便地添加新的通信模块,比如添加红外线通信模块。

对于高可用集群系统,如果集群间的通信不可靠,那么很明显集群本身也不可靠。Heartbeat采用UDP协议和串口进行通信,它们本身是不可靠的,可靠性必须由上层应用来提供。那么怎样保证消息传递的可靠性呢?

Heartbeat通过冗余通信通道和消息重传机制来保证通信的可靠性。Heartbeat检测主通信链路工作状态的同时也检测备用通信链路状态,并把这一状态报告给系统管理员,这样可以大大减少因为多重失效引起的集群故障不能恢复。例如,某个工作人员不小心拨下了一个备份通信链路,一两个月以后主通信链路也失效了,系统就不能再进行通信了。通过报告备份通信链路的工作状态和主通信链路的状态,可以完全避免这种情况。因为这样在主通信链路失效以前,就可以检测到备份工作链路失效,从而在主通信链路失效前修复备份通信链路。

Heartbeat通过实现不同的通信子系统,从而避免了某一通信子系统失效而引起的通信失效。最典型的就是采用以太网和串口相结合的通信方式。这被认为是当前的最好实践,有几个理由可以使我们选择采用串口通信:

(1)IP通信子系统的失效不太可能影响到串口子系统。

(2)串口不需要复杂的外部设备和电源。

(3)串口设备简单,在实践中非常可靠。

(4)串口可以非常容易地专用于集群通信。

(5)串口的直连线因为偶然性掉线事件很少。

不管是采用串口还是以太网IP协议进行通信,heartbeat都实现了一套消息重传协议,保证消息包的可靠传递。实现消息包重传有两种协议,一种是发送者发起,另一种是接收者发起。

对于发送者发起协议,一般情况下接收者会发送一个消息包的确认。发送者维护一个计时器,并在计时器到时的时候重传那些还没有收到确认的消息包。这种方法容易引起发送者溢出,因为每一台机器的每一个消息包都需要确认,使得要发送的消息包成倍增长。这种现像被称为发送者(或者ACK)内爆(implosion)。

对于接收者发起协议,采用这种协议通信双方的接收者通过序列号负责进行错误检测。当检测到消息包丢失时,接收者请求发送者重传消息包。采用这种方法,如果消息包没有被送达任何一个接收者,那么发送者容易因NACK溢出,因为每个接收者都会向发送者发送一个重传请求,这会引起发送者的负载过高。这种现像被称为NACK内爆(implosion)。

Heartbeat实现的是接收者发起协议的一个变种,它采用计时器来限制过多的重传,在计时器时间内限制接收者请求重传消息包的次数,这样发送者重传消息包的次数也被相应的限制了,从而严格的限制了NACK内爆。

ipvs简介

IPVS的含义

IPVS基本上是一种高效的Layer-4交换机,它提供负载平衡的功能。当一个TCP连接的初始SYN报文到达时,IPVS就选择一台服务器,将报文转发给它。此后通过查发报文的IP和TCP报文头地址,保证此连接的后继报文被转发到相同的服务器。这样,IPVS无法检查到请求的内容再选择服务器,这就要求后端的服务器组是提供相同的服务,不管请求被送到哪一台服务器,返回结果都应该是一样的。但是在有一些应用中后端的服务器可能功能不一,有的是提供HTML文档的Web服务器,有的是提供图片的Web服务器,有的是提供CGI的Web服务器。这时,就需要基于内容请求分发 (Content-Based Request Distribution),同时基于内容请求分发可以提高后端服务器上访问的局部性。

IPVS的工作原理

(1)先说下LVS

提到IPVS就不得不提LVS(Linux Virtual Server),虚拟服务器是一个高度可扩展性和高可用性的服务器,建立在一个集群的服务器中。服务器集群的架构对用户是完全透明的,并且用户使用起来感觉它只有一个高性能虚拟服务器。

真正的服务器和负载平衡器之间通过高速局域网或地理上分散的广域网可以相互连接。负载平衡器可以将请求调度到不同的服务器并将并行的集群服务显示的像在一个单一的IP地址上的一个虚拟的服务,请求调度可以使用IP负载平衡技术或应用级负载平衡技术。系统的可扩展性是通过透明地添加或删除集群中的节点来实现的。通过检测节点或守护进程的失败和适当地重新配置系统提供高可用性。

(2)IPVS的原理

当一个TCP连接的初始SYN报文到达时,IPVS就选择一台服务器,将报文转发给它。此后通过查发报文的IP和TCP报文头地址,保证此连接的后继报文被转发到相同的服务器。这样,IPVS无法检查到请求的内容再选择服务器,这就要求后端的服务器组是提供相同的服务,不管请求被送到哪一台服务器,返回结果都应该是一样的。但是在有一些应用中后端>的服务器可能功能不一,有的是提供HTML文档的Web服务器,有的是提供图片的Web服务器,有的是提供CGI的Web服务器。这时,就需要基于内容请求分发 (Content-Based Request Distribution),同时基于内容请求分发可以提高后端服务器上访问的局部性。

上面已经说了IPVS是LVS的关键,因为LVS的IP负载平衡技术就是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时>在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达负载调度器,然>后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。

二.案例所用的拓扑图

三.配置dns,web服务器配置

3.1 配置server1的dns服务

1)配置server1的ip地址

2)重启server1的网络服务

[root@localhost ~]# service network restart

正在关闭接口 eth0:                                      [确定]

关闭环回接口:                                             [确定]

弹出环回接口:                                             [确定]

弹出界面 eth0:                                           [确定]

3)配置server1的本地yum服务器

[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

修改配置文件如下图所示

4)挂载光盘

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

mount: block device /dev/cdrom is write-protected, mounting read-only

5)安装dns所需要的软件包

[root@localhost ~]# yum install bind -y

[root@localhost ~]# yum install bind-chroot -y

[root@localhost ~]# yum install caching-nameserver -y

6)生成dns主配置文件

[root@localhost ~]# cd /var/named/chroot/etc

[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf

7)编辑主配置文件

[root@localhost etc]# vim named.conf

8) 声明bj.com区域

[root@localhost etc]# vim named.rfc1912.zones

9) 生成区域文件

[root@localhost etc]# cd ..

[root@localhost chroot]# cd var/named

[root@localhost named]# cp -p localhost.zone bj.com.zone

10) 编辑区域文件

[root@localhost named]# vim bj.com.zone

11) 修改dns指向

[root@localhost named]# vim /etc/resolv.conf

nameserver 192.168.20.133

12)修改主机名

[root@localhost named]# vim /etc/sysconfig/network

[root@localhost named]# hostname server1.bj.com

13)重启dns服务

[root@localhost ~]# service named start

启动 named:                                               [确定]

[root@localhost ~]# chkconfig named on

3.2 配置server1的web服务

×××lamp环境

1)lamp 搭建用到的软件

mysql-5.5.15-linux2.6-i686.tar.gz

php-5.3.7.tar.bz2

httpd-2.2.19.tar.bz

2)想要实现源码安装,所需要的软件组。

[root@localhost ~]# yum grouplist

Development Tools  //开发工具

Legacy Software Development    //传统软件开发工具

Development Libraries  //开发工具库

3)安装mysql

把mysql-5.5.15-linux2.6-i686.tar.gz拆解到/usr/local目录下

[root@server1 ~]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/

做软连接

[root@server1 ~]# cd /usr/local

[root@server1 local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql

查看mysql安装文件

[root@server1 mysql]# less INSTALL-BINARY

按照mysql的安装说明文件执行如下操作

创建mysql用户及用户组

[root@server1 mysql]# groupadd mysql

[root@server1 mysql]# useradd -r -g mysql -s /sbin/nologin -M mysql

[root@server1 mysql]# chown -R mysql .

[root@server1 mysql]# chgrp -R mysql .

[root@server1 mysql]# scripts/mysql_install_db --user=mysql

把所有者和所属组该为root

[root@server1 mysql]# chown   -R   root   .

把data的所有者改为mysql

[root@server1 mysql]# chown  -R  mysql  data

[root@server1 mysql]# bin/mysqld_safe      --user=mysql  &   //开启服务

4)设置用service来管理mysql

[root@server1 mysql]# cp support-files/mysql.server  /etc/init.d/mysqld

[root@server1 mysql]# cd /etc/ld.so.conf.d/

[root@server1 ld.so.conf.d]# vim mysql.conf

创建mysql.conf文件指定库文件目录

[root@server1 ld.so.conf.d]# ldconfig -v |grep mysql

/usr/local/mysql/lib:

libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0

[root@server1 ld.so.conf.d]# cd /usr/include/

[root@server1 include]# ln -s /usr/local/mysql/include/ mysql

[root@server1 include]# chkconfig --add mysqld

[root@server1 include]# chkconfig --list |grep mysql

mysqld          0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

[root@server1 rc3.d]# ll |grep mysql

lrwxrwxrwx 1 root root 16 09-11 01:23 S64mysqld -> ../init.d/mysqld

此时启动mysql

[root@server1 rc3.d]# service mysqld start

MySQL server PID file could not be found!                  [失败]

执行如下指令

[root@server1 Server]# pkill -9 mysqld

启动mysql

[root@server1 Server]# service mysqld start

Starting MySQL..                                      [确定]

4) 源码安装apache

拆解压缩文件

[root@server1 ~]# tar -jxvf httpd-2.2.19.tar.bz2 -C /usr/local/src

[root@server1 ~]# cd /usr/local/src

[root@server1 src]# ll

总计 4

drwxr-xr-x 11 xht xht 4096 2011-05-21 httpd-2.2.19

查看安装说明文件

[root@server1 httpd-2.2.19]# less INSTALL

检查预编译环境

[root@server1 httpd-2.2.19]# ./configure --prefix=/usr/local/apache  //安装目录

--sysconfdir=/etc/httpd   //配置文件目录

--enable-so           // 开启 dso 动态共享对象

--enable-ssl      //启用加密功能

--with-z         //使用 zlib

编译

[root@server1 httpd-2.2.19]# make

安装

[root@server1 httpd-2.2.19]# make install

启动httpd服务

[root@server1 httpd]# cd /usr/local/apache/

[root@server1 apache]# ./bin/apachectl start

加入开机启动

[root@server1 apache]# vim /etc/rc.d/rc.local

创建http.conf 文件并指定http库文件目录

[root@server1 apache]# cd /etc/ld.so.conf.d/

[root@server1 ld.so.conf.d]# vim httpd.conf

在/usr/include/下为apache头文件建立软连接

[root@server1 ld.so.conf.d]# cd /usr/include/

[root@server1 include]# ln -s /usr/local/apache/include apache

重启服务

[root@server1 apache]# apachectl stop

[root@server1 apache]# apachectl start

5)为server1安装php

拆解软件包到/usr/local/src目录下

[root@server1 ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src

[root@server1 src]# cd php-5.3.7/

查看安装说明文件

[root@server1 php-5.3.7]# less INSTALL

检测预编译环境

--prefix=/usr/local/php    //安装目录

将php编译成apache的模块,允许apache的apxx调用该模块

--with-apxs2=/usr/local/apache/bin/apxs

--with-mysql=/usr/local/mysql  指明mysql的安装位置

--with-mysqli=/usr/local/mysql/bin/mysql_config调用myql接口

支持宽字符

--enable-mbstring=all

[root@server1php-5.3.7]# ./configure

--prefix=/usr/local/php

--with-apxs2=/usr/local/apache/bin/apxs

--with-mysql=/usr/local/mysql

--with-mysqli=/usr/local/mysql/bin/mysql_config

--enable-mbstring=all

编译

[root@server1 php-5.3.7]# make

安装

[root@server1 php-5.3.7]# make install

查看网页文件如下图

修改配置文件使其支持php

[root@server1 htdocs]# vim /etc/httpd/httpd.conf

重启服务

[root@server1 htdocs]# /usr/local/apache/bin/apachectl stop

[root@server1 htdocs]# /usr/local/apache/bin/apachectl start

建立php网页文件

[root@server1 htdocs]# mv index.html index.php

6) 测试apache能否正常工作信息如下

7) 测试httpd能否调用php

[root@server1 htdocs]# vim index.php

测试php页面如下

8) 测试php调用mysql

[root@server1 htdocs]# vim index.php

测试页面如下

9) 测试mysql

利用mysql创建数据库

[root@server1 htdocs]# /usr/local/mysql/bin/mysql

3.3  配置server2的dns,web服务

Server2 的ip地址为192.168.20.134/28 主机名为server2.bj.com

1)server2的ip地址

2)配置主机名

[root@localhost ~]# vim /etc/sysconfig/network

3) 配置dns与server1的配置基本相同下面只将bj.com.zone的内容显示出来如图

[root@server2 ~]# cd /var/named/chroot/var/named

[root@server2 named]# vim bj.com.zone

搭建server2的lamp环境同搭建server1的lamp环境相同

只是将index.php改为:

<html><body><h1>It works!</h1></body></html>

<?

$link=mysql_connect(‘127.0.0.1’,‘root’,’’);

If($link)

Echo “connect is ok”;

Else

Echo “disconnect”

?>

四. 配置两台direct转发器

4.1 配置direct1的ipvsadm

1)配置direct1的ip地址

心跳网卡的地址

2)重启网络服务

3)配置direct1的yum服务器

[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

4)安装ipvs

[root@localhost ~]# yum install -y ipvsadm

5)创建ipvsadm的规则,rr表示轮询算法

[root@localhost ~]# ipvsadm -A -u 192.168.20.137:53 -s rr

[root@localhost ~]# ipvsadm -a -u 192.168.20.137:53 -r 192.168.20.133 -g

[root@localhost ~]# ipvsadm -a -u 192.168.20.137:53 -r 192.168.20.134 -g

[root@localhost ~]# ipvsadm -A -t 192.168.20.137:80 -s rr

[root@localhost ~]# ipvsadm -a -t 192.168.20.137:80 -r 192.168.20.133 -g

[root@localhost ~]# ipvsadm -a -t 192.168.20.137:80 -r 192.168.20.134 –g

6)查看规则

7)保存规则并重新启动

[root@localhost ~]# service ipvsadm save

Saving IPVS table to /etc/sysconfig/ipvsadm:               [确定]

4.2 配置Direct 2的ipvsadm

1)Director2服务器ip地址配置

心跳网卡的地址

2)重启网络服务

3)配置direct2的本地yum服务器

4)安装完ipvsadm后创建规则

5)保存规则

6)在direct2上查看规则

五. 利用heartbeat搭建direct转发器的高可用性群集

5.1 在direct1上配置heartbeat

1)编辑hosts文件

[root@n1 ~]# vim /etc/hosts

2)停止ipvsadm服务

3)修改主机名

4)利用yum安装heartbeat软件包

[root@n1 ~]# yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm --nogpgcheck

[root@n1~]#yum  localinstall

heartbeat-pils-2.1.4-10.el5.i386.rpm

heartbeat-stonith-2.1.4-10.el5.i386.rpm

libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm –nogpgcheck

5)切换到heartbeat的配置目录复制所需文件

[root@n1 ]# cd  /etc/ha.d

[root@n1 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/ha.cf ./

[root@n1 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/authkeys ./

[root@n1 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/haresources ./

[root@n1 ha.d]# cp /etc/init.d/ipvsadm resource.d/

6)在eth1上发送心跳信息并指明两台direct转发器

[root@n1 ha.d]# vim ha.cf

7)编辑资源配置文件

[root@n1 ha.d]# vim haresources

8)利用随机函数产生随机数并用MD5加密

9)编辑验证文件

[root@n1 ha.d]# vim authkeys

10)查看heartbeat的状态

11)启动heartbeat的服务

5.2 配置direct2的heartbeat

1)配置direct2的主机名并修改hosts文件

[root@localhost ~]# vim /etc/sysconfig/network

[root@n2 ~]# vim /etc/hosts

2)安装heartbeat软件包

[root@n2~]#yumlocalinstall  -y  heartbeat-2.1.4-9.el5.i386.rpm \

heartbeat-pils-2.1.4-10.el5.i386.rpm \

heartbeat-stonith-2.1.4-10.el5.i386.rpm\

libnet-1.1.4-3.el5.i386.rpm \

perl-MailTools-1.77-1.el5.noarch.rpm –nogpgcheck

3)在配置目录下复制所需文件

[root@n2 ~]# cd /etc/ha.d

[root@n2 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/ha

[root@n2 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/ha.cf ./

[root@n2 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/authkeys ./

[root@n2 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/haresources ./

[root@n2 ha.d]# cp /etc/init.d/ipvsadm resource.d/

4)在eth1在心跳探测并指明两台direct转发器

[root@n2 ha.d]# vim ha.cf

5)编辑资源配置文件

[root@n2 ha.d]# vim haresources

6)编辑验证文件密码要和direct1上的相同

[root@n2 ha.d]# vim authkeys

7)修改验证文件的权限

[root@n2 ha.d]# chmod 600 authkeys

8)重启heartbeat服务

9)停止ipvsadm服务

[root@n2 ha.d]# service ipvsadm stop

六. 两台server服务器配合前面的director完成负载均衡群集

6.1 配置serve2

1)配置server2的虚拟地址

2)解决关于arp的问题

[root@server2 ~]# vim /etc/sysctl.conf

3) 配置路由

[root@server2 ~]# route add -host 192.168.20.137 dev lo:0

6.2  配置Server1

1)配置虚拟地址

2)解决arp问题

[root@server1 ~]# echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

[root@server1 ~]# echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf

[root@server1 ~]#  echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf

[root@server1 ~]# echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf

[root@server1 ~]# sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 4294967295

kernel.shmall = 268435456

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.lo.arp_ignore = 1

3)创建路由并查看路由表

[root@server2 ~]# route add -host 192.168.20.137 dev lo:0

[root@server1 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.20.137  0.0.0.0         255.255.255.255 UH    0      0        0 lo

192.168.20.128  0.0.0.0         255.255.255.240 U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0

0.0.0.0         192.168.20.131  0.0.0.0         UG    0      0

7. 客户机测试

1)客户端地址配置

2)用虚拟地址访问网页

3)用域名访问网页

刷新一次结果如下因为用的算法轮询

4)在direct1上面查看ipvsadm的规则因为direct1是激活设备所以能看到

5)在direct2则看不到

6)模拟direct1失效

7)再次访问网页依然可以正常访问

刷新一次

8)此时direct2为激活设备能看到ipvsadm规则

9)模拟direct1恢复此时direct1再次成为激活设备

查看ipvsadm规则

10)测试完毕。

转载于:https://blog.51cto.com/xht35/1030089

linux下高可用性群集和负载均衡群集的实现相关推荐

  1. linux下一个apache+tomcat负载均衡和集群

    先说一下我的环境 一个ubuntu虚拟机, 一个apache2.2示例 两tomcat1.7示例 1.安装apacheserver sudo apt-get install apache2 假设要重新 ...

  2. Linux下的几种负载均衡技术小结

    前言 Linux系统的数据包处理能力相当强大,通过Netfilter框架或者策略路由系统,用户可以非常灵活的定义数据包的处理规则.因此在Linux下实现负载均衡自然也是非常简单.笔者在此总结了Linu ...

  3. Linux下Nginx+多Tomcat负载均衡实现详解

    一.简介 [Nginx] 大名鼎鼎,麻雀虽小五脏俱全,它拥有小而稳且高效的特性.为目前大多数中小企业所使用.nginx可以做以下几件事: 反向代理 负载均衡 动静分离 网页.图片缓存 [Tomcat] ...

  4. linux常见得几种负载均衡,Linux下的几种负载均衡技术小结

    bond是Linux内核自带的多网卡聚合功能.这个功能可以把多个网卡整合成一个虚拟网卡从而同时利用多块网卡传输数据.bond有多种不同的模式用以适应不同的情况.bond主要是从L2链路层考虑的,因此可 ...

  5. linux下keepalived+nginx的负载均衡搭建

    应用场景:集群搭建过程中nginx通常会代理多个tomcat,以达到高可用状态,但此时如果nginx所在的机器宕机,会影响线上使用,可以用keepalived+nginx来做nginx的ha 一.所需 ...

  6. linux ajp集群,Linux下apache tomcat ajp_proxy 负载均衡+集群+session 复制

    11.查看 netstat –ant tcp        0      0 ::ffff:192.168.15.124:4000  :::*                        LISTE ...

  7. linux 下实现负载均衡群集(NAT方式)

    高可用性群集:以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果.HA的工作方式包括双工.主从两种模式------双工即所有节点同时在线,主从则只有主节 ...

  8. linux加权_「学员笔记」LINUX随堂笔记(十一):LVS负载均衡群集

    第12章 LVS负载均衡群集 一.群集概述 1.1 群集的类型 无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机,根据群集所提 ...

  9. linux负载均衡技术的分类,LinuxLVS负载均衡群集

    Linux&&LVS负载均衡群集 概念 群集的类型 负载均衡的分层结构 负载均衡的工作模式 环境部署(NAT模式) 负载调度器部署 启动ip_vs模块 LVS的负载调度算法 使用ipv ...

  10. Linux LVS 负载均衡群集

    目录 Linux LVS 负载均衡群集 一.集群与分布式 集群的含义 LVS 模型 系统性能扩展方式 群集的三种类型 负载均衡群集 高可用群集 高性能运算群集 LVS 的负载调度算法 分布式系统 集群 ...

最新文章

  1. c语言字符串机考题,2016全国计算机二级《C语言》机考试题及答案
  2. 如何管理项目中外包开发人员、测试人员
  3. 固态器件理论(11)超导设备
  4. DCMTK:根据DICOM第11部分媒体存储应用程序配置文件制作DICOMDIR
  5. 1109. 航班预订统计
  6. windows2008强制卸载辅域和元数据
  7. numpy.linalg.eig() 计算方形矩阵的特征值和特征向量
  8. Bresenham 圆和椭圆的生成算法
  9. 英文java简历模板下载_java软件工程师英文简历模板下载
  10. 2. Ruby下载安装
  11. zabbix使用详解
  12. 使鼠标保持按住状态_让电脑也能听、会写、还会说!小米小爱鼠标抢先体验
  13. js复制方法navigator.clipboard兼容性处理,控制台直接执行报错 DOMException: Document is not focused
  14. Oracle简单操作总结
  15. 防劫持工具,介绍几款浏览器劫持修复工具
  16. ESB 企业服务总线基本内容概述
  17. 虚拟机Ubuntu18.04开机后一直卡在[OK] Started GNOME Display Manager处,进不去系统。
  18. 数据结构:(c实现)单向链表,单链表的头增,尾增,头删,尾删,任意位置的删除与插入。
  19. STM32H743,基于LL库实现adc采样(ADC+DMA+TIM)
  20. 4.TP6学习 - jwt + 微信小程序验证token

热门文章

  1. myeclipse使用步骤总结
  2. 闭包、作用域链、函数
  3. 【BZOJ】【2768】【JLOI2010】冠军调查
  4. HTML点击按钮弹出颜色选择器,css如何实现按钮点击与松开颜色不同?
  5. android平板电脑维修电路图,《图解windows10平板电脑电路原理和维修》大家可以读读看看...
  6. python url拼接_简单一文教你如何用python爬虫爬取扇贝单词
  7. Vue全家桶+koa2+MySql(sequelize)重构“零食商贩”项目
  8. 【Win 10应用开发】分阶段进行数据绑定
  9. 1.2 cacti安装
  10. debian-nagios3.2,linux+apache+mysql+php