兩種負載均衡的配置。
1.客戶端負載均衡
這種方法是在客戶端的tnsnames.ora中,新增load_balance=yes來實現的。
83 =
(description=
(load_balance=on)
(failover=on)
(address_list=
(address=(protocol=tcp)(host=168.1.0.83)(port=1521))
(address=(protocol=tcp)(host=168.1.0.84)(port=1521))
)
(connect_data=
(service_name=ncsb)
(failover_mode=
(type=select)
(method=basic)
)
)
)
這種配置的特點是:當客戶端與伺服器端欲建立連線時,會從配置的列表裡隨機選擇一個,而不是根據伺服器的負載情況進行分發。這種配置方法是8I時候的方法。
2.伺服器端負載均衡
顧名思義,這種配置方法,客戶端可以不做任何關於負載均衡的配置。由伺服器根據各個節點的負載情況去決定分發到那個例項。要實現這種功能,必須配置remote_listener引數。設定了這個引數後,監聽器就能依靠PMON程式的註冊來監控到各個例項的負載資訊,註冊的間隔從1分鐘~10分鐘不等,例項負載越大,註冊的會越頻繁。註冊的內容包括各個節點的程式數量,節點負載,例項負載等。而且PMON程式不僅會對本機註冊還會向其他例項註冊,註冊的目標是依據remote_listener的內容。remote_listener的設定是在伺服器端的tnsnames.ora裡。
如:兩節點remote_listener引數的值都設定為ncsb_si
可以在兩個節點的tnsnames.ora裡設定如下:
ncsb_si=
(address_list=
(ADDRESS = (PROTOCOL =TCP) (HOST = 168.1.0.83)(PORT = 1521)
(ADDRESS = (PROTOCOL =TCP) (HOST = 168.1.0.84)(PORT = 1521)
)
雖然伺服器端的負載均衡似乎跟客戶端的配置無關,即不管客戶端的tnsnames.ora配置的是單例項的內容,也就是隻配置了一個節點的連線條目,還是叢集的條目,最終都將有伺服器端來判斷將連線建立在哪個節點。可是我在實際工作中發現實現這種功能還有一個條件就是客戶端配置的必須是service_name而不能是sid,否則將不能實現這個功能。
例如如下的配置:
83 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 168.1.0.83)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(sid= ncsb1)
)
)
採取這種配置的話,即使設定了remote_listener,監聽也都會將連線傳送到168.1.0.83上。必須設定service_name才可以。
83 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 168.1.0.83)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ncsb)
)
)
從listener.log檔案裡,可以看到PMON的更新資訊:
08-JAN-2010 20:22:43 * service_update * ncsb1 * 0
08-JAN-2010 20:24:17 * service_update * ncsb2 * 0
08-JAN-2010 20:24:17 * service_update * ncsb2 * 0
08-JAN-2010 20:31:09 * service_update * ncsb2 * 0
08-JAN-2010 20:31:09 * service_update * ncsb2 * 0
08-JAN-2010 20:31:11 * service_update * ncsb1 * 0
08-JAN-2010 20:31:56 * service_update * ncsb1 * 0
[ 本帖最後由 wei-xh 於 2010-7-9 12:45 編輯 ]
這種方法是在客戶端的tnsnames.ora中,新增load_balance=yes來實現的。
83 =
(description=
(load_balance=on)
(failover=on)
(address_list=
(address=(protocol=tcp)(host=168.1.0.83)(port=1521))
(address=(protocol=tcp)(host=168.1.0.84)(port=1521))
)
(connect_data=
(service_name=ncsb)
(failover_mode=
(type=select)
(method=basic)
)
)
)
這種配置的特點是:當客戶端與伺服器端欲建立連線時,會從配置的列表裡隨機選擇一個,而不是根據伺服器的負載情況進行分發。這種配置方法是8I時候的方法。
2.伺服器端負載均衡
顧名思義,這種配置方法,客戶端可以不做任何關於負載均衡的配置。由伺服器根據各個節點的負載情況去決定分發到那個例項。要實現這種功能,必須配置remote_listener引數。設定了這個引數後,監聽器就能依靠PMON程式的註冊來監控到各個例項的負載資訊,註冊的間隔從1分鐘~10分鐘不等,例項負載越大,註冊的會越頻繁。註冊的內容包括各個節點的程式數量,節點負載,例項負載等。而且PMON程式不僅會對本機註冊還會向其他例項註冊,註冊的目標是依據remote_listener的內容。remote_listener的設定是在伺服器端的tnsnames.ora裡。
如:兩節點remote_listener引數的值都設定為ncsb_si
可以在兩個節點的tnsnames.ora裡設定如下:
ncsb_si=
(address_list=
(ADDRESS = (PROTOCOL =TCP) (HOST = 168.1.0.83)(PORT = 1521)
(ADDRESS = (PROTOCOL =TCP) (HOST = 168.1.0.84)(PORT = 1521)
)
雖然伺服器端的負載均衡似乎跟客戶端的配置無關,即不管客戶端的tnsnames.ora配置的是單例項的內容,也就是隻配置了一個節點的連線條目,還是叢集的條目,最終都將有伺服器端來判斷將連線建立在哪個節點。可是我在實際工作中發現實現這種功能還有一個條件就是客戶端配置的必須是service_name而不能是sid,否則將不能實現這個功能。
例如如下的配置:
83 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 168.1.0.83)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(sid= ncsb1)
)
)
採取這種配置的話,即使設定了remote_listener,監聽也都會將連線傳送到168.1.0.83上。必須設定service_name才可以。
83 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 168.1.0.83)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ncsb)
)
)
從listener.log檔案裡,可以看到PMON的更新資訊:
08-JAN-2010 20:22:43 * service_update * ncsb1 * 0
08-JAN-2010 20:24:17 * service_update * ncsb2 * 0
08-JAN-2010 20:24:17 * service_update * ncsb2 * 0
08-JAN-2010 20:31:09 * service_update * ncsb2 * 0
08-JAN-2010 20:31:09 * service_update * ncsb2 * 0
08-JAN-2010 20:31:11 * service_update * ncsb1 * 0
08-JAN-2010 20:31:56 * service_update * ncsb1 * 0
[ 本帖最後由 wei-xh 於 2010-7-9 12:45 編輯 ]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-667644/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Nginx 兩臺伺服器配置負載均衡!!!Nginx伺服器負載
- 負載均衡的種類負載
- nginx配置+uwsgi+負載均衡配置Nginx負載
- Nginx/Httpd負載均衡tomcat配置Nginxhttpd負載Tomcat
- 使用Nginx配置TCP負載均衡NginxTCP負載
- IdentityServer4 負載均衡配置IDEServer負載
- 做了反向代理和負載均衡的nginx配置檔案簡單示例(nginx.conf) HTTP負載均衡/TCP負載均衡負載NginxHTTPTCP
- 6種負載均衡演算法負載演算法
- Nginx多種負載均衡策略搭建Nginx負載
- nginx安裝及負載均衡配置Nginx負載
- LVS負載均衡配置與keepalive服務配置負載
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- 負載均衡負載
- Ribbon - 幾種自定義負載均衡策略負載
- nginx實現兩臺服務負載均衡Nginx負載
- Ribbon負載均衡策略與自定義配置負載
- Nginx 做負載均衡的幾種輪詢策略Nginx負載
- 六種實現負載均衡技術的方式負載
- 叢集,lvs負載均衡的四種工作模式負載模式
- gRPC的負載均衡RPC負載
- nignx 負載均衡的幾種演算法介紹負載演算法
- 伺服器負載均衡的幾種演算法伺服器負載演算法
- docker下nginx反向代理和負載均衡配置DockerNginx負載
- RHEL 7配置HAProxy實現Web負載均衡Web負載
- nginx配置web服務|反向代理|負載均衡NginxWeb負載
- 阿里雲負載均衡SSL證書配置(更新)阿里負載
- IP負載均衡負載
- WebSocket負載均衡Web負載
- nginx負載均衡Nginx負載
- NGINX 負載均衡Nginx負載
- 【Nginx】負載均衡Nginx負載
- 負載均衡---ribbon負載
- LoadBalancer負載均衡負載
- LVS 負載均衡負載
- Nginx專題(2):Nginx的負載均衡策略及其配置Nginx負載
- OceanBase 負載均衡的魅力負載
- 4.8 負載均衡的概念負載
- 負載均衡的那些事?負載