集群部署

集团服务采用主从架构的集群架构,包含一个主节点(leader服务)和多个从节点(slave服务),slave服务会通过心跳定期向leader服务同步自身状态和用户数,leader服务负责协调与用户数汇总,并将汇总后的用户数同步给slave服务。

使用集群部署的好处:

  • 提升并发处理能力:通过增加服务器节点和负载均衡技术,显著提高集团服务在高并发访问下的处理能力。
  • 提升系统稳定性:实现服务的高可用性,确保在部分节点故障时,服务能够不中断或快速恢复。
  • 提高可扩展性:支持动态扩展节点,以应对用户量和并发量的持续增长。

13.1.0及以上版本的集团服务和扩展模块支持集群。具体内容请参见《比特授权云 集团服务集群部署说明.pdf》。

集团服务维护模式

集团服务升级时,为了尽可能减少对客户端的使用影响,集团服务支持维护模式。维护模式,是指当服务端进入维护模式后,客户端所有的Login操作全部报错,其它API正常。该功能对应到业务上就是:已经登录的客户端可以正常使用,未登录的客户端不允许登录。

使用须知

13.4.6及以上版本的集团服务支持集团服务设置维护模式。

操作指导

维护模式设置后永久生效,需要通过命令行或在页面中关闭。

Linux集团服务通过命令行方式设置,Windows集团服务通过界面方式设置。

  1. 通过命令行方式设置

设置维护模式:

./bit_service -runMode <maintenance | normal>
maintenance:维护模式
normal:正常

查看当前服务的状态:

./bit_service -s
  1. 通过界面方式设置

登录集团授权管理中心,在“配置管理”页的“维护”中进行设置。如图:

心跳回调与超时时间

客户端超时时间,也就是服务端的踢出时间,默认时间是2分钟,可设置最小时间是1分钟,最大是48小时。

服务端和客户端的心跳间隔,是所设置的客户端超时时间的1/2,例如:客户端超时时间设置为2分钟,那么服务端和客户端的心跳间隔就是一分钟,客户端和服务端2分钟没有心跳链接,服务端就会踢出该客户端并且回收license。如果调用了Bit_SetAttr()接口设置了回调函数,两分钟后客户端就会调用回调函数。(心跳间隔最大不超过10分钟,客户端的超时时间设置在20分钟以上的,心跳间隔都按照十分钟来处理)

使用须知

设置客户端超时时间功能需下载并安装最新版本的集团服务后实现。

操作指导

登录集团授权管理中心,在“配置管理”页的“通讯设置”中进行设置。如图:

BIT-ID

将集团授权存储在比特ID硬件中,以支持离线环境下授权的完全自由转移。

使用须知

如果比特授权云平台需要开通该功能,请联系比特安索。

比特ID集团授权功能需下载并安装最新版本的集团服务后方可实现。

操作指导

  1. 在比特授权云平台点击左侧“业务”,点击“新建业务”。
  2. 在业务类型中选择最终授权产生后所使用的平台,选择“比特ID集团授权”业务。
  1. 在产品和模版中关联该业务然后产生授权码。
  2. 在设备管理中给该授权码关联比特ID。
  1. 关联后将对应的比特ID插入到集团服务所在机器,然后在管理页面激活比特ID。

授权借出

允许将授权临时借出至客户端,以短期离线使用。

使用须知

如果比特授权云平台需要开通该功能,请联系比特安索。

授权借出功能需下载并安装最新版本的集团服务后方可实现。

13.4.8及以上版本的集团服务支持禁用某一feature后,其他feature仍可正常借出。(需配合13.4.8.0及以上版本的集团服务、集团扩展和客户端库)

授权码操作

比特授权云平台管理员在“授权”列表中创建授权码时,勾选授权信息中“允许授权借出”并保存,即可在集团授权管理中心中对该授权码进行借出操作。

对于已经创建的授权码,可以通过在“授权”列表中点击授权码,在“授权信息”页签勾选“允许授权借出”功能,保存后即可使用。

注意:允许授权码借出勾选后不可解除。

集团授权管理中心操作

集团授权管理中心授权码的借出选项显示“-”代表没有开通借出功能。参见 授权码操作开通后,在集团授权管理中心对授权码进行升级。

已经开通借出功能的授权码如图所示:

通过规则配置借出时间

  1. 登录集团授权管理中心,在“产品列表”页点击产品后面“设置”。
  2. 设置访问规则,规则设置以小时计算。如图:

注意:集团授权管理中心默认最大可借出时间是30天,超过30天需要在规则中进行设置。借出可设最大时长为180天。

借出API使用

Bit_CheckOutSn、Bit_CheckIn、Bit_CheckOutFeatures详细调用说明参见线上API文档。

授权分发

比特授权云的集团授权支持“授权分发”功能,该功能允许借出一个永久授权到客户端使用(即最长借出时间为365*100天),并且借出的授权不允许返还。

使用须知

如果比特授权云平台需要开通该功能,请联系比特安索。

授权分发功能需下载并安装最新版本的集团服务后方可实现。

授权码操作

比特授权云平台管理员在“授权”列表中创建授权码时,勾选授权信息中的“授权分发”并保存,即可在集团授权管理中心中对该授权码进行分发操作。

对于已经创建的授权码,可以通过在“授权”列表中点击授权码,在“授权信息”页签勾选“授权分发”功能,保存后即可使用。

注意:一般在只勾选了“授权分发”时,会默认自动勾选“允许授权借出”功能。允许授权借出和授权分发勾选后不可解除。

集团授权管理中心操作

在集团授权管理中心激活授权码后,在“授权列表”中可以看到开通了授权分发功能的授权码后有“借出”功能。点击“借出”即可进行离线授权分发操作。

授权分发

在集团授权管理中心中的对应授权码后点击“借出”后,即可进入授权分发界面。

用户在需要离线借出的机器上生成对应的离线请求文件,获取离线文件后导出,在该界面中上传,点击“借出/返还”按钮可以获得一个对应的借出升级文件,将这个文件导入到生成离线请求文件的机器上升级使用,即可完成授权分发操作。

分发API使用

在线:Bit_CheckOutSn、Bit_CheckIn、Bit_CheckOutFeatures

离线:Bit_GetBorrowRequest、Bit_ApplyBorrowInfo

详细调用说明参见线上API文档。

SN用量统计

要为集团授权的授权码增加“强制认证”和“用量统计”功能,操作如下。

使用须知

如果比特授权云平台需要开通该功能,请联系比特安索。

用量统计功能需下载并安装最新版本的集团服务后方可实现。

授权码操作

比特授权云平台管理员在“授权”列表中创建授权码时,勾选授权信息中的“强制认证”和“用量统计”并保存。当授权码激活后,客户端在每个强制认证周期内连接服务器认证时,必须将用量统计上传,否则无法继续使用授权。

对于已经创建的授权码,可以通过在“授权”列表中点击授权码,在“授权信息”页签勾选“用量统计”功能,保存后即可使用。

注意:用量统计勾选后不可解除。

集团授权管理中心操作

已经开通用量统计功能的授权码在激活后再次点击升级时,会弹出“请上传用量数据”的提示,点击“手动上传”,集团服务将会自动生成一个后缀为“.log”的加密日志文件,文件存储在所使用的浏览器的默认下载文件位置。

明天添加图片

用户授权中心操作

用户获得日志文件后,需要在比特云用户授权中心(user.bitanswer.cn)里上传,上传成功后方可进行升级操作。

使用需要激活的授权码登录用户授权中心,点击左侧“离线升级”。

在“选择文件”中选择对应log文件,点击上传,将文件上传至服务器,上传成功后即可返回集团授权管理中心完成升级,否则将无法升级该授权码。

查看SN用量统计

集团服务用户上传用量统计数据后,平台管理员可以通过授权码查看到客户上传的用量统计信息。

管理员点击已勾选用量统计的授权码进入“授权信息”页签,点击页面中的“使用记录”,即可看到用量统计上传的信息。

SN峰值自动上传

集团服务支持将SN和Feature的峰值上传到授权服务器,上传到服务器后,开发商可以通过调用backoffice接口获取到峰值数据。

使用须知

13.2.1及以上版本的集团服务支持将SN和Feature的峰值上传到授权服务器。

如果需要开通该功能,请联系比特安索。授权码的峰值上传功能一旦勾选不可解除。

操作指导

  1. 使用该功能前需在比特授权平台中勾选授权码的峰值上传的“用量统计”属性。
  1. 再在集团服务中激活具有峰值属性的授权码,点击授权码的空白处,点击上传按钮,即可将峰值数据上传。
  1. 调用backoffice接口获取到峰值数据,数据格式如下:
#type:userPeakLog sn:xxxxxx time:导出时间 sign:<下面是整个串的签名>
[
    {
        time: 2024-05-09
        feature: { <uid>:<peak>, <uid>:<peak> },
        sn: <peak>
    },
    {
        time: 2024-05-10
        feature: { <uid>:<peak>, <uid>:<peak> },
        sn: <peak>
    },
    {
        time: 2024-05-11 // 不传feature和SN 表示其数据为0
    }
]

客户端通过环境变量连接集团服务

客户端与集团服务之间的连接方式默认是通过调用比特授权云的授权接口,在本地配置IP地址和端口号实现,在12.1.0.19580及以上版本中,集团服务支持客户端通过配置环境变量连接。

环境变量的配置方式有两种,一种是使用默认环境变量名,一种是自定义环境变量名

使用须知

12.1.0.19580及以上版本的集团服务支持客户端通过配置环境变量连接。

默认配置

未自定义变量名时,变量名默认为BITANSWER,在环境变量中按以下方式设置后,即可生效:

设置服务器地址:

BITANSWER_URL=bit://192.168.1.10:8273

客户端配置环境变量



自定义环境变量

除使用默认设置外,比特授权云支持开发商自定义环境变量的方式,需要在程序中调用比特授权云的授权接口配合设置,设置后即可支持通过自定义环境变量连接。

例如:

XXXXX_URL=bit://192.168.1.10:8273

环境变量配置多个URL

当最终用户部署多个集团服务时,允许客户端的环境变量配置多个集团服务器的地址。当一台服务器挂死还有其他服务器可用,不会影响客户端授权,支持高可用场景。

  • 13.0.0及以上版本的客户端库支持使用环境变量配置多个集团服务器的地址。13.4.7及以上版本的客户端同时支持读取逗号和冒号分隔的环境变量。
  • 仅支持配置多个集团服务的地址,不支持与其他地址混用。
  • 客户端连接集团服务的连接顺序,按照配置顺序依次连接,找到第一个可用的ip地址进行连接。
  • 环境变量最多支持配置6个服务器地址,配置多个只有前6个生效。不同服务器地址之间以逗号或者冒号分隔,支持如下两种格式:
BITANSWER_URL= bit://192.168.1.1:8273:bit://192.168.1.2:8273
BITANSWER_URL= 8273@192.168.1.1:8273@192.168.1.2

其他说明

如果客户端集成时通过接口中设置了自定义环境变量,但是客户端设置环境变量时还是使用默认的BITANSWER_URL,默认环境变量也同样生效;如果环境变量同时设置了默认的BITANSWER_URL和自定义变量XXXXX_URL,XXXXX_URL优先级更高。

配置启用IPv6

集团服务支持IPv6可以解决客户端使用IPv6地址访问集团服务、弥补IPv4网络地址资源有限的问题。集团服务默认使用IPv4,在启用IPv6后,集团服务可以在双栈网络模式下运行,即集团服务可以拥有两个不同版本的IP地址:IPv4地址和IPv6地址,这两个IP地址都可以进行访问。

使用须知

请确保集团服务所在的操作系统已启用IPv6。

请确保集团服务版本支持IPv6功能,目前12.1.0.19580及以上版本的集团服务支持IPv6。

Windows集团服务开启IPv6功能

Windows集团服务支持使用配置文件开启IPv6功能。集团服务的配置文件存放于集团服务的安装目录下,文件名为bit_service.xml,可以用任何文本编辑工具打开,操作如下:

  1. 在系统桌面右下角的任务栏区域,单击集团服务的托盘程序。
  2. 设置完成后,在托盘程序中重启集团服务生效。
<?xml version="1.0"encoding="UTF-8"?>
<BitAnswerSrvConfig>
<Ipv6>only|disable|enable</Ipv6>//only:仅支持Ipv6,disable:不启用Ipv6,enable:启用兼容模式
</BitAnswerSrvConfig>

Linux集团服务开启IPv6功能

Linux集团服务支持使用配置文件和命令行开启IPv6功能,有两种方式:

配置文件开启IPv6

集团服务的默认安装路径为/opt/bitanswer/service,配置文件的文件名为bit_service.xml,可以用任何文本编辑工具打开,操作如下:

  • 打开集团服务安装目录下的bit_service.xml文件,将下面红色字体的代码复制到文件中,开发商根据需要选择一种进行设置:only-仅支持IPv6、disable-不启用IPv6。
  • enable-启用IPv4和IPv6兼容模式。
  • 设置完成后,重启集团服务生效。
<?xml version="1.0"encoding="UTF-8"?>
<BitAnswerSrvConfig>
<Ipv6>only|disable|enable</Ipv6>//only:仅支持Ipv6,disable:不启用Ipv6,enable:启用兼容模式
</BitAnswerSrvConfig>

命令行开启IPv6

在集团服务的Linux主机中执行以下命令,开启IPv6。

  • 输入“su”,以管理员身份登录。
  • 输入“cd /opt/bitanswer/service”,跳转到集团服务的默认安装路径/opt/bitanswer/service。
  • 输入“./bit_service -c -ipv6 only|disable|enable”,开发商根据需要选择一种进行设置:only-仅支持IPv6、disable-不启用IPv6、enable-启用IPv4和IPv6兼容模式。
  • 输入“./manager.sh stop”,停止集团服务。
  • 输入“./manager.sh start”,启动集团服务。

配置本地集团授权

集团授权支持设置本地访问,即只有部署集团服务的这台机器能够访问该集团授权。

使用须知

如果需要开通该功能,请联系比特安索。

操作指导

开发商登录比特授权云平台,在指定SN的“授权信息”页签勾选“仅限本机访问”,点击“保存”即可。

配置SSL

SSL(安全套接层,Secure Sockets Layer)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。

集团服务支持上传SSL证书,在使用HTTPS访问时,集团服务将SSL证书自动安装到服务器上,实现数据传输加密。服务器通过安装SSL证书可以实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性。

使用须知

必须保证当前系统支持SSL库,否则启动时会报错。

操作指导

  1. 新建文件ssl_key.pem,将数字证书和私钥拷贝进这个文件。如下图:
  1. 然后将ssl_key.pem存放在集团服务的根目录。
  2. 手动在bit_service.xml中添加SSL端口监听,如下图:
  1. 最后重启集团服务,通过https://xxx:8276即可访问。

配置二级代理

二级集团服务可以代理一级集团服务的部分用户数供客户端使用。

使用须知

11.0.0及以上版本的集团服务支持该功能。

操作指导

  1. 在比特授权云平台给SN设置代理属性:
  2. 目前二级代理仅支持通过RESTFUI接口设置

添加代理

  1. 请求类型:HTTP POST

  2. 请求URL:ip:port/rest/<pwd>/product/<pid>/addAgent

  3. 请求数据格式:text/plain;charset=utf-8

  4. 请求参数

    参数名称 参数说明
    fid 特征项ID
    featureName 特征项名称(与fid可二选一)
    featureUserNumber 特征项用户数
    mode 代理模式(increase:增加,share:共享)
  5. status:

    • code :INT 0标识成功,其它是错误码
    • errMsg :String 错误信息

释放代理

  1. 请求类型:HTTP POST

  2. 请求URL:ip:port/rest/<pwd>/product/<pid>/releaseAgent

  3. 请求数据格式:text/plain;charset=utf-8

  4. 请求参数

    参数名称 参数说明
    fid 特征项ID
    featureName 特征项名称(与fid可二选一)
    featureUserNumber 特征项用户数
    mode 代理模式(increase:增加,share:共享)
  5. status:

    • code :INT 0标识成功,其它是错误码
    • errMsg :String 错误信息

获取代理信息

  1. 请求类型:HTTP POST
  2. 请求URL:ip:port/rest/<pwd>/product/<pid>/getAgent
  3. 请求数据格式:text/plain;charset=utf-8
  4. status:
    • code :INT 0标识成功,其它是错误码
    • errMsg :String 错误信息

开启bit.access.log

开启bit.access.log后,任意到达集团服务的请求都会被记录在accesslog中。

开启方法:以linux集团服务为例

cd /opt/bitanswer/service/logs // 进入集团服务安装目录下的logs目录

touch bit.access.log // 创建bit.access.log表示开启accesslog

开启accesslog后,accesslog会被记录在/opt/bitanswer/service/logs下的以时间命名的文件中,每小时会产生一个新文件,如2024-10-14.17.access.log,该文件记录的是2024年10月14日下午五点所产生的accesslog。

删除bit.access.log则不再记录accesslog