国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Web架構(gòu) - 預(yù)防高并發(fā)的服務(wù)架構(gòu)

happyhuangjinjin / 395人閱讀

摘要:靜態(tài)資源負(fù)載均衡反向代理主從配置監(jiān)聽集群主從配置介紹業(yè)務(wù)從發(fā)展的初期到逐漸成熟,服務(wù)器架構(gòu)也是從相對(duì)單一到集群,再到分布式,技術(shù)迭代的速度非常快,導(dǎo)致我們不斷的學(xué)習(xí)。。。一配置介紹是為俄羅斯訪問量第二站點(diǎn)開發(fā)的一款高性能和反向代理服務(wù)器。

CDN(靜態(tài)資源) + Nginx(負(fù)載均衡&反向代理)+ Redis(主從配置&Sentinel監(jiān)聽集群)+ Mysql(主從配置)

介紹:業(yè)務(wù)從發(fā)展的初期到逐漸成熟,服務(wù)器架構(gòu)也是從相對(duì)單一到集群,再到分布式,技術(shù)迭代的速度非常快,導(dǎo)致我們不斷的學(xué)習(xí)。。。
一個(gè)可以支持高并發(fā)的服務(wù)少不了好的服務(wù)器架構(gòu),需要有負(fù)載均衡,主從集群的數(shù)據(jù)庫,主從集群的緩存,靜態(tài)文件上傳cdn,比如 七牛云 等,這些都是讓業(yè)務(wù)程序流暢運(yùn)行的強(qiáng)大后盾。

閑話不多說,下面簡(jiǎn)單介紹搭建Windows服務(wù)器架構(gòu)。

一、配置Nginx

介紹:Nginx是 Igor Sysoev 為俄羅斯訪問量第二 Rambler.ru 站點(diǎn)開發(fā)的一款高性能HTTP和反向代理服務(wù)器。

那么有些人不明白反向代理與正向代理有什么不同?

正向代理就像是 因?yàn)镚WF,國(guó)內(nèi)需要使用代理訪問Google,但是Google不知道真實(shí)的客戶端是誰,代理隱藏了真實(shí)的客戶端請(qǐng)求,客戶端請(qǐng)求的服務(wù)都被代理服務(wù)器代替。

www.baidu.com 是我們的反向代理服務(wù)器,反向代理服務(wù)器會(huì)幫我們把請(qǐng)求轉(zhuǎn)發(fā)到真實(shí)的服務(wù)器那里去。

1、下載 Nginx-Windows & Tomcat7

1:重新加載配置 2:關(guān)閉 3:開啟(或者nginx -c conf/nginx.conf

附錄:Nginx工作原理

2、修改配置文件

修改Tomcatconfserver.xml (三個(gè)端口)& ginx-1.11.6conf ginx.conf

#user  nobody;#用戶名
worker_processes  1;#工作進(jìn)程(與CPU個(gè)數(shù)一比一)

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;#單個(gè)進(jìn)程最大連接數(shù)(worker_processes*worker_connections/4小于系統(tǒng)進(jìn)程打開的文件總數(shù))
}


http {
      upstream tomcat  { #反向代理 
                server localhost:8082 weight=2;#weight權(quán)重(機(jī)器性能好weight就設(shè)大些)
                server localhost:8083 weight=3;  
        } 
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "
    #                  "$status $body_bytes_sent "$http_referer" "
    #                  ""$http_user_agent" "$http_x_forwarded_for"";#轉(zhuǎn)發(fā)真實(shí)ip

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;#默認(rèn)80端口
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {#配置靜態(tài)文件等
            root   html;
            index  index.html index.htm;
            proxy_pass http://tomcat;#反向代理(上面upstream tomcat)
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}
3、測(cè)試

如何知道集群服務(wù)器配置好了呢?

我們修改項(xiàng)目頁面,將body內(nèi)容改為aaa...和bbb...,打包分別放到上面的Tomcat中,重新啟動(dòng)Tomcat和Nginx。


根據(jù)上圖,Nginx會(huì)將請(qǐng)求分發(fā)到不同的Tomcat中。

介紹:Nginx是采用master-worker多進(jìn)程的方式,master負(fù)責(zé)請(qǐng)求轉(zhuǎn)發(fā),worker的數(shù)量為CPU數(shù),所有worker進(jìn)程的listenfd會(huì)在新連接到來時(shí)變得可讀,為保證只有一個(gè)進(jìn)程處理該連接,所有worker進(jìn)程在注冊(cè)listenfd讀事件前搶accept_mutex,搶到互斥鎖的那個(gè)進(jìn)程注冊(cè)listenfd讀事件,在讀事件里調(diào)用accept接受該連接。

4、防預(yù)CC攻擊

使用 NGINX 流控和 fail2ban 防止 CC 攻擊

在http模塊中添加

limit_req_zone $binary_remote_addr zone=sym:10m rate=5r/s;   #限制發(fā)起的請(qǐng)求頻率,每秒5次
limit_conn_zone $binary_remote_addr zone=conn_sym:10m;       #限制發(fā)起的連接數(shù)

在location中添加

limit_req zone=sym burst=5;
limit_conn conn_sym 10;

配置好后Nginx重啟。模擬多線程并發(fā)請(qǐng)求,結(jié)果顯示成功和異常:

查詢Nginx/conf/error.log,顯示如下:

二、配置Redis&Sentinel 1、下載 Redis3.0

解壓redis(主)再復(fù)制三份,文件夾名稱分別改為redis-slave(從)、redis-slave2(從)、redis-sentinel(哨兵)這些文件夾都能復(fù)制多次
(*.conf文件的名字可能不同!sentinel.conf需要新建!)

2、修改配置文件

修改redis(主)文件夾下的redis.windows.conf:

port 6380                          #端口(不能重復(fù)) 
logfile "E:/redis.log"             #日志(防止宕機(jī)后可查)
slave-read-only no                 #默認(rèn)為yes,改為no用于主從復(fù)制
requirepass "XXX"                  #密碼(主從密碼需相同)

修改redis-slave(從)下的redis.windows.conf:

port 6381
logfile "E:/redis_slave1.log"        
slaveof 127.0.0.1 6380              #master     
slave-read-only no
masterauth "XXX"                    #主密碼
requirepass "XXX"

在redis-sentinel(哨兵)下創(chuàng)建sentinel.conf文件,內(nèi)容為:

port 26379
sentinel monitor mymaster 127.0.0.1 6380 1          #主配置,數(shù)字1代表有1個(gè)Sentinel監(jiān)聽有問題就進(jìn)行主從復(fù)制并切換
sentinel down-after-milliseconds mymaster 6000
sentinel failover-timeout mymaster 900000
sentinel auth-pass mymaster Alex                    #密碼

下面為演示:
(1)運(yùn)行主從Redis:


(2)運(yùn)行Sentinel:

介紹:監(jiān)聽Redis的哨兵,具體看附錄
附錄:Sentinel


運(yùn)行Sentinel后,.conf中配置內(nèi)容就會(huì)刷新成:


為防止Sentinel宕掉。可復(fù)制多份sentinel并修改端口,分別啟動(dòng)。

(3)檢測(cè)主從切換

當(dāng)master宕機(jī)后,防止整個(gè)資源掛掉,將采用Sentinel實(shí)時(shí)監(jiān)控Redis,情況發(fā)生后會(huì)立即主從復(fù)制并切換,這樣系統(tǒng)崩潰的概率大大降低。


監(jiān)聽的主端口變?yōu)?381,非之前的6380,子監(jiān)聽的主也自動(dòng)切換了。

三、配置Mysql集群 1、配置master主服務(wù)器

(1)在Master MySQL上創(chuàng)建用戶,允許其他Slave服務(wù)器可以通過遠(yuǎn)程訪問Master,通過該用戶讀取二進(jìn)制日志,實(shí)現(xiàn)數(shù)據(jù)同步。

創(chuàng)建的用戶必須具有REPLICATION SLAVE權(quán)限,除此之外沒必要添加不必要的權(quán)限,密碼為"XXX"。192.168.94.%是指明用戶所在服務(wù)器,%是通配符,表示192.168.94.0/255的Server都可以登陸主服務(wù)器。

(2)修改my.Ini文件。啟動(dòng)二進(jìn)制日志log-bin。

在[mysqld]下面增加:

server-id=1                       #給數(shù)據(jù)庫服務(wù)的唯一標(biāo)識(shí),一般為大家設(shè)置服務(wù)器Ip的末尾號(hào)
log-bin=master-bin
log-bin-index=master-bin.index

(3)重啟Mysql服務(wù),查看日志

2、配置slaver從服務(wù)器

(1)修改my.ini文件,在[mysqld]下面增加

log_bin           = mysql-bin
server_id         = 2
relay_log         = mysql-relay-bin
log_slave_updates = 1
read_only         = 1

重啟Mysql

(2)連接Master

change master to master_host="192.168.XXX.XXX", 
master_port=3306,
master_user="alexnevsky",
master_password="XXXX", 
master_log_file="master-bin.000001",
master_log_pos=0;

(3)啟動(dòng)Slave

start slave;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/39452.html

相關(guān)文章

  • QQ億級(jí)日活躍業(yè)務(wù)后臺(tái)核心技術(shù)揭秘

    摘要:本篇文章來自于騰訊和共同舉辦的技術(shù)開放日后臺(tái)專場(chǎng)出品人傅鴻城的分享,由壹佰案例整理編輯。對(duì)于騰訊而言,后臺(tái)服務(wù)可用性都是四個(gè)九,四個(gè)九轉(zhuǎn)化為時(shí)間就要求一年內(nèi)的故障時(shí)間不能超過分鐘。 showImg(https://segmentfault.com/img/bVvL5f); 本篇文章來自于騰訊SNG和msup共同舉辦的技術(shù)開放日后臺(tái)專場(chǎng)出品人傅鴻城的分享,由壹佰案例整理編輯。原文發(fā)布在壹...

    Taste 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<