# SatLB

SatLB是配合SatRDA使用的高效的负载均衡服务器,通过SatLB可以实现客户端外网访问多个没有外网ip的satserver,也可以将多个 SatRDA的服务SatServer连接到一起组成高可用的集群。

# 服务器端运行环境

  • WindowsXP及以上
  • Linux

# 下载地址:

  • QQ群:345559891
  • Delphi开发群:374683171

# 使用场景

# 外网访问无固定IP的服务端

SatLB部署在有固定ip的公网(云服务器),SatServer部署在没有公网IP的内网,内网的SatServer连接到公网的SatLB,在外网的客户端可以访问公网的SatLB,SatLB会把连接转到内网的SatServer上,实现访问没有公网IP的内网服务。

1

# 使用案例

实际使用中可以在云服务器部署一个SatLB,各个门店(或客户)的数据库在门店的本地机器中,门店的机器不需要有固定外网IP,在门店的机器上部署SatServer并配置连接到SatLB,其中各个门店Service名称不同。然后客户端可以通过SatLB访问到指定的门店数据

# 负载均衡

SatLB与多个SatServer部署在同一个局域网,多个SatServer连接到SatLB形成集群,客户端访问时指定SatLB的地址,SatLB会把连接均匀分配到SatServer上,实现负载均衡
2

# 使用案例

实际使用中如果客户对高可用要求较高,可以购买2台以上云主机,其中一台有外网带宽的部署SatLB,其它机器部署SatServer并配置连接到SatLB,客户端访问指定的SatLB的地址。

# 配置说明

# SatLB配置

路径server/config/lb.cfg 用notepad++打开后,配置如下:

{
	"Port": 6060,
	"Log": 1
}

"Port": 6060 表示设置启动端口号为6060
"Log": 1 表示日志打开,如果为0则日志关掉,日志在调试时打开,生产环境时请关闭日志,避免卡住的风险

# SatServer配置

路径server/config/config 用notepad++打开后,配置如下:

{
	"TAG": "QQ:9091178",
	"Port": 5555,
	"Https":false,
	"Log": 1,
	"SecrectKey":"",
	"LBAddr":"127.0.0.1:6060",
	"Service":"satrda"
}

其中LBAddr,Service参数和负载均衡相关,其它参数见SatRDA后台配置 "LBAddr":"127.0.0.1:6060" 表示SatLB的地址为127.0.0.1:6060,这里127.0.0.1表示本机IP,请换成实际IP。6060和前面配置的SatLB端口号一致 "Service":"satrda" 表示当前服务名为satrda,(这里satrda可以修改为自己指定的名称)。多个satserver可以定义相同的Service,相同Service的服务端组成一个集群,客户端通过SatLB访问指定的Service如satrda时,会连接到一个Service为satrda的SatServer上。

建议通过SatRDA后台配置的基础配置进行配置

# 示例

  1. 按配置说明配置好配置文件

  2. 双击运行Server\SatLB.exe

  3. 双击运行Server\SatServer.exe
    连接成功显示:

satlb connected
  1. 本机模拟运行另一个satserver实际生产时,放在另一台机器。拷贝Server目录到另一个目录,并修改config文件的端口号为6666,双击运行SatServer.exe

  2. 修改示例连接字符串ls_server指向SatLB地址ls_server = "127.0.0.1:6060" 连接串加上Service=satrda 表示访问名称为satrda的服务
    PB连接串如下:

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='driver=Smart ODBC Driver;Server=" + ls_server +&
	";DB_NAME=" + ls_db + ";HTTPS=0;code=12345;TrimSpaces=1;Service=satrda',PBMaxBlobSize='0'"
  1. 运行示例,点击连接。