部署拓扑模式 - noradle/noradle-dispatcher GitHub Wiki

1)每个 db instance 本机部署只服务于其自己的 noradle-dispatcher

 noradle-dispatcher1 <--- db-bill(primary)(instance1)
 noradle-dispatcher2 <--- db-bill(primary)(instance2)
   ...
 noradle-dispatchern <--- db-bill(standbyn)(instancen)

这种模式下,oracle 配置访问 localhost 下的 noradle-dispatcher, oracle 服务进程和 noradle-dispatcher 的通信性能达到最大, 原来传统的 oracle 客户端连接默认的 1521 oracle 监听端口, 现在对应的 noradle 客户端连接相同服务器地址的 noradle—dispatcher 监听端口。

本模式需要专门为每个 dispatcher 开通防火墙端口,网管开销最大。

2)相同 LAN/SAN 的 oracle db instance 只提供一个(或尽量少) 的 noradle-dispatcher

in a LAN/SAN
                               /---------  db instance 1
unique noradle-dispatcher   <------------  db instance 2
                              \                  ...
                               \---------  db instance n

好处明显,如果一个 LAN/SAN 上有一组 oracle db instance,那么 noradle-dispatcher 就相当于一个db群访问网关, 显然建立多个这样的网关从管理上比较麻烦,一个 LAN/SAN上只有一个 dispatcher足够。对外部也只需要开放一个端口。

在这种模式下,建议也在部署 noradle-dispatcher 的db网关服务器上,安装 oracle listener 或 oracle cman(connection manager),然后器 LAN/SAN 上的各个 oracle instance 也向该 listener 注册,这样 LAN/SAN 对外只需要开通2个服务端口就够了,网管简化到极致。

3)为每个第三方合作者提供接入服务

为每一个外部合作者应用,在 DMZ 区域建立专有 noradle-dispatcher, 需要给它访问的 db instance 该 noradle-dispatcher 注册, 并且在 db 内配置安全规则,严格显示其能访问的 dbu和存储成名名称模式。

本模式可以严格的控制每个合作者在各个db instance上能够使用的并发服务进程数,很好的控制资源。

4) 为所有的第三方合作者提供单一的统一的接入服务

和上面的模式基本相同,区别在于DMZ区域只设定单一的一个 dispatcher服务为所有外部合作者提供接入db的服务。

控制方式为对每个 client 认证,并控制虚拟化的并发数,所有外部应用共享一组服务器进程。

一般为了省事,这么做,核心网部分只需要关心给外部应用的总资源量就可以了。