本文目錄一覽:
- 1、java 負載均衡 synchronized是否有效
- 2、Java web項目,怎麼做負載均衡啊?
- 3、Java 連接多個 mongodb 負載均衡
- 4、關於java負載均衡的概念
- 5、java負載均衡有哪些框架
java 負載均衡 synchronized是否有效
負載是針對於請求來說的
你的sync是針對線程來說的
兩個機子的負載由於你的配置 session是共享的 但內部變數不是
所以 要看你的sync是對什麼加的鎖,目的是什麼
如果說 你用一個數字去記錄登錄的人數 每次有請求+1
我們假設有兩個節點 A,B 兩個是互不干涉的, 也就是 可能A到了10 B還是1
如果說 你只是針對某一操作防止其線程衝突
那麼 你可以認為 A,B完全是兩個不相干的程序
如果是針對session做的限制類的sync 由於一個session普遍情況下只會針對一個節點發送,sync在單個節點內會有效,多個節點無效。。
純手打 望採納
Java web項目,怎麼做負載均衡啊?
HAProxy是一款反向代理伺服器工具,通過它,可以實現負載均衡。它支持雙機熱備支持虛擬主機,但其配置簡單,擁有非常不錯的伺服器健康檢查功能,當其代理的後端伺服器出現故障, HAProxy會自動將該伺服器摘除,故障恢復後再自動將該伺服器加入。新的1.3引入了frontend,backend,frontend根據任意HTTP請求頭內容做規則匹配,然後把請求定向到相關的backend.
利用HAPorxy實現負載均衡
1. 利用HAProxy實現負載均衡
192.168.169.137 (haproxy)———負載均衡———-(192.168.169.117;192.168.169.118)
安裝配置HAproxy
cd /usr/local/
wget
tar zxvf haproxy-1.3.14.2.tar.gz
mv haproxy-1.3.14.2 haproxy
cd haproxy
make TARGET=linux26
2. 創建配置文件
# vi haproxy.cfg
global
maxconn 5120
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 2 #通過nbproc多設置幾個haproxy並發進程,這樣每個進程的task_queue相對就會短很多,性能自然就能提高不少
#pidfile /var/run/haproxy-private.pid
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local3
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webfarm 0.0.0.0:80
mode http
stats uri /haproxy-stats #監控haproxy狀態
stats realm Haproxy\ statistics
stats auth netseek:52netseek #設置狀態監控的用戶名為netseek密碼為52netseek
balance roundrobin #負載均衡演算法
cookie SERVERID insert indirect
option httpclose #
option forwardfor #apache日誌轉發功能
option httpchk HEAD /check.txt HTTP/1.0 #健康檢測
server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5
syslog.conf里加一行
local3.* /var/log/haproxy.log
# touch /var/log/haproxy.log
# chown haproxy:haproxy /var/log/haproxy.log
# chmod u+x /var/log/haproxy.log
# tail –f /var/log/harpoxy.log 監控日誌
# ./haproxy -f haproxy.cfg 啟動服務.
監控狀態圖示 ,輸入用戶名密碼查看狀態。
後端apache日誌處理
配置httpd.conf
LogFormat 「%{X-Forwarded-For}i %l %u %t \」%r\」 %s %b 」 combined
CustomLog /var/log/httpd/access_log combined
虛擬主機不記錄檢測日誌:
SetEnvIf Request_URI 「^/check\.txt$」 dontlog
LogLevel warn
ErrorLog /var/log/httpd/vhost_error.log
CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog
相關介紹
#./haproxy –help //haproxy相關命令參數介紹.
haproxy -f 配置文件 [-n 最大並發連接總數] [-N 每個偵聽的最大並發數] [-d] [-D] [-q] [-V] [-c] [-p pid文件] [-s] [-l] [-dk]
[-ds] [-de] [-dp] [-db] [-m 內存限制M] [{-sf|-st} pidlist…]
-d 前台,debug模式
-D daemon模式啟動
-q 安靜模式,不輸出信息
-V 詳細模式
-c 對配置文件進行語法檢查
-s 顯示統計數據
-l 顯示詳細統計數據
-dk 不使用kqueue
-ds 不使用speculative epoll
-de 不使用epoll
-dp 不使用poll
-db 禁用後台模式,程序跑在前台
-sf pidlist
程序啟動後向pidlist里的進程發送FINISH信號,這個參數放在命令行的最後
-st pidlist
程序啟動後向pidlist里的進程發送TERMINATE信號,這個參數放在命令行的最後
Java 連接多個 mongodb 負載均衡
輸入java和javac都會有相關的一大堆東西輸出說明配置正確,否則就是配置錯誤。
如果輸入java命令出現如下的情況:
bash: /usr/lib/jvm/java-7-sun/bin/java: 沒有那個文件或目錄
關於java負載均衡的概念
分主機跑,有兩種情況,一種是分散式系統,前端,服務端,資料庫分別跑在不同的主機上,分擔了壓力。一種是集群,每一台上跑的都是一樣的程序,一樣的配置。同樣的訪問請求被分發到了不同的機器上響應,這才是負載均衡所追求的。
分散式和集群可以獨立使用,也可以混合使用。
java負載均衡有哪些框架
負載均衡是在伺服器上通過配置或軟體來實現的,不是在代碼層面處理的,自然不存在基於語言的負載均衡框架
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/158318.html