BFT的IPV6部署

重要:
使用 ifconfig | grep ip -C 5 查询出本机ipv4和ipv6

server部署

1.1 修改bft-server-config.xml中的部分配置

<httpconfig>
    <name>your_server_name</name>
    <host>your_server_machine_ipv6</host>
    <port>6311</port>
</httpconfig>
<nettyconfig>
    <ip>your_server_machine_ipv6</ip>
    <port>9091</port>
    <commit>100</commit>
    <reConnectTime>5</reConnectTime>
</nettyconfig>

1.2 修改bft-server-config.xml中的部分配置

<dbconfig>
    <dbtype>Mysql</dbtype>
    <driver>com.mysql.jdbc.Driver</driver>
    <connectionurl>jdbc:mysql://address=(protocol=tcp)(host=your_mysql_ipv6)(port=3306)/database</connectionurl>
    <user>root</user>
    <password>root</password>
</dbconfig>

agent部署

修改bft-agent-config.xml中的配置

<agent>
  <name>your_agent_name</name>
  <password>your_agent_pass, default: 000000</password>
  <ip>your_agent_machine_ipv6</ip>
  <!-- file transfer port-->
  <receiveport>7082</receiveport>
  <!-- Agent Http internet port -->
  <httpPort>8184</httpPort>
</agent>
<servers>
  <server>your_server_machine_ipv6:9091</server>
  <reConnectTime>60</reConnectTime>
</servers>

console部署

3.1 修改 startBFTConsole.sh

删除脚本中的 -Djava.net.preferIPv4Stack=true

if [ "$1" = "-debug" ]
then
    export JAVA_OPTS="${JAVA_OPTS} -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787"
fi
echo ON
nohup "${JAVA_HOME}/bin/java" -Dname=BFTConsole -Dlog4j2.formatMsgNoLookups=true -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true ${JAVA_OPTS} -Dloader.path=./conf,./libs,./webapps -jar ./bftconsole.jar > /dev/null 2>&1 &

3.2 修改/conf/application.properties的数据库连接信息, 格式如下

spring.datasource.url=jdbc:mysql://address=(protocol=tcp)(host=your_mysql_ipv6)(port=3306)/database

比如: jdbc:mysql://address=(protocol=tcp)(host=fe80::495:f6e8:5c9e:3fdb)(port=3306)/ipv6test

4.logcenter部署

4.1 修改startup.sh

删除脚本中的 -Djava.net.preferIPv4Stack=true

export JAVA_OPTS="$JAVA_OPTS -Dapp.home=$BFT_HOME -DAPP_NAME=$APP_NAME -Dlogging.file=$LOG_FOLDER/${APP_NAME}.log"

export JAVA_OPTS="$JAVA_OPTS -server -Djava.net.preferIPv4Stack=true -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8"
export JAVA_OPTS="$JAVA_OPTS $BFT_MEM_OPTS"
export JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
export JAVA_OPTS="$JAVA_OPTS -Dloader.path=${BFT_HOME}/lib"

4.2 修改/config/application.properties

spring.datasource.url=jdbc:mysql://address=(protocol=tcp)(host=your_mysql_ipv6)(port=3306)/database

注意事项

  1. 对于服务器部署在linux环境下,配置数据库时,需要在IPv6地址后加上网卡标识。

i2

2.使用ftp上传下载时,在Governor的“服务器管理 > FTP服务器”界面,需要在IPv6地址后加上网卡标识。

i3

IPV6连接数据库总结

以oracle数据库为例

win环境

在win环境上配置ipv6数据库时,如果是IPV6的单播本地链接地址,数据库的url应为
①jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[fe80::495:f6e8:5c9e:3fdb%9])(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl))) 或者②jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[3fff::3])(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=orcl)))
其中%后面的9是win的Scope-id,可通过命令ipconfig查看。

Linux环境

在Linux环境上配置ipv6数据库时,如果是IPV6的单播本地链接地址,数据库的url应为

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[fe80::495:f6e8:5c9e:3fdb%eno16777984])(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))

或者

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[3fff::3])(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=orcl)))

其中%后面的eno16777984是linux的网卡标识,可通过命令ifconfig查看。

注意:要使得②可以连接数据库成功,本机需要配置IPV6的手动IP,配置方式如下:

  1. 双击图中的框起来的IPV6协议

    i4

  2. 输入可自定义IPV6地址,配置如下图所示,然后点击确定

    i5

  3. 通过ipconfig可查看是否配置正确。

3.用DbVisualizer工具连接IPV6 1.打开工具之后点击下图按钮

i6

2.下一步选择‘Use Wizard’

i7

3.输入连接的名称,点击下一步

i8

  1. 选择要连接的数据库类型,下一步

    i9

  2. 输入连接信息如图所示,点击Finish即连接成功

    i10

  3. 如果要执行sql语句,选中操作的数据库,点击工具栏的SQL Commander下的第一个

    i11

其他数据库的连接信息如下表所示
数据库类型 IPV6地址 JDBC URL
Oracle11g fe80::495:f6e8:5c9e:3fdb jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS= (PROTOCOL=tcp)(HOST=[fe80::495:f6e8:5c9e:3fdb]) (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))
Oracle11g 3fff::3 jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS= (PROTOCOL=tcp)(HOST=[3fff::3])(PORT=1522)) (CONNECT_DATA=(SERVICE_NAME=orcl)))
SQLServer2008 fe80::495:f6e8:5c9e:3fdb jdbc:sqlserver://;serverName=[fe80::495:f6e8:5c9e:3fdb]; port=1433;databaseName=v6test
SQLServer2008 3fff::3 jdbc:sqlserver://;serverName=[3fff::3];port=1433; databaseName=v6test
Mysql5.5.40 fe80::495:f6e8:5c9e:3fdb jdbc:mysql://address=(protocol=tcp) (host=fe80::495:f6e8:5c9e:3fdb)(port=3306)/ipv6test
Mysql5.5.40 fe80::495:f6e8:5c9e:3fdb jdbc:mysql://address=(protocol=tcp)(host=3fff::3) (port=3306)/ipv6test

results matching ""

    No results matching ""