記事ディレクトリ
Haproxy + MyaqLは、4層の負荷分散の基本的な知識を実現します
1.
Haproxy基本ソフトウェア:haproxy-主にロードバランシングの第7層用で、第4層のロードバランシングも実行できます。apacheは第7層のロードバランシングも実行
できますが、非常に面倒です。誰も実際の仕事でそれを使用しません。
負荷分散は、OSIプロトコルに対応する
7層の負荷分散です。7層のhttpプロトコルが使用され、
4層の負荷分散:tcpプロトコルとポート番号が負荷分散に使用されます。
ha-proxyの概要
ha-proxyは、高性能の負荷分散ソフトウェアです。ロードバランシングに重点を置いているため、nginxよりもロードバランシングの方が優れており、プロフェッショナルです。
ha-proxyの機能(優れた監視ページがあります)
ha-proxyは、現在人気のある負荷分散ソフトウェアとして、その優れた側面を備えている必要があります。以下に、LVS、Nginx、およびその他の負荷分散ソフトウェアに対するha-proxyの利点を紹介します
。
•tcp / http 2プロトコルレイヤーのロードバランシングをサポートし、ロードバランシング機能を非常に豊富にします。
•8種類の負荷分散アルゴリズムをサポートします。特にhttpモードでは、さまざまなニーズに適した非常に現実的な負荷分散アルゴリズムが多数あります。
•パフォーマンスは非常に優れています。イベント駆動型リンク処理モードとシングルプロセス処理モード(Nginxと同様)により、パフォーマンスが優れています。
•システムの現在のステータスをリアルタイムで理解するための優れた監視ページを用意します。
•強力なACLサポートにより、ユーザーは非常に便利です。
2.Haproxyアルゴリズム1.Roundrobin
は、重みに基づいてポーリングを実行します。これは、サーバーの処理時間が均等に分散されている場合に最もバランスの取れた公平なアルゴリズムです。このアルゴリズムは動的であるため、実行時に重みを調整できます。ただし、設計では、各バックエンドサーバーは最大4128の接続しか受け入れることができません。2。static
-rr
は、ラウンドロビンと同様に重みに基づいてポーリングしますが、静的な方法であり、実行時にサーバーの重みを調整しても効果はありません。バックエンドサーバー接続の数に制限はありません
。3。Leastconnの
新しい接続要求は、接続数が最も少ないバックエンドサーバーにディスパッチされます。
两台haproxy配置文件:
[root@ha-proxy-master ~]# cat /etc/haproxy/haproxy.cfg
Haproxy L4
=================================================================================
global
log 127.0.0.1 local2
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
nbproc 1
defaults
mode http
log global
option redispatch
retries 3
maxconn 4000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen stats
bind *:80
stats enable
stats uri /haproxy
stats auth qianfeng:123
frontend web
mode http
bind *:80
option httplog
default_backend httpservers
backend httpservers
balance roundrobin
server http1 192.168.246.162:80 maxconn 2000 weight 1 check inter 1s rise 2 fall 2
server http2 192.168.246.163:80 maxconn 2000 weight 1 check inter 1s rise 2 fall 2
listen mysql
bind *:3306
mode tcp
balance roundrobin
server mysql1 192.168.246.163:3306 weight 1 check inter 1s rise 2 fall 2
server mysql2 192.168.246.162:3306 weight 1 check inter 1s rise 2 fall 2
找一台机器做为客户端去测试,在测试的时候注意mysql的远程登录权限
Haproxy + MyaqLは4層の負荷分散実験操作を実現します
1. 2つのデータベースが用意され、区別しやすいように異なるデータベースが作成されます
yum -y install mariadb mariadb-server
systemctl start mariadb
mysql
creata database db1;
create database db2;
grant all on *.* to 'root'@'%' identified by '123';
flush privileges;
2.Haproxy構成
[root@haproxy-slave ~]# vim /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
nbproc 1
defaults
mode http
log global
option redispatch
retries 3
maxconn 4000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen stats
bind *:80
stats enable
stats uri /haproxy
stats auth qianfeng:123
listen mysql
bind *:3306
mode tcp
balance roundrobin
server mysql1 192.168.138.132:3306 weight 1 check inter 1s rise 2 fall 2
server mysql2 192.168.138.135:3306 weight 1 check inter 1s rise 2 fall 2
[root@haproxy-slave ~]# systemctl status haproxy
3.クライアントアクセスの検証
[root@haproxy-slave ~]# mysql -u root -p123 -h 192.168.138.131