实践背景:基于wildfly开发分布式服务,包括web服务,DAS(数据访问服务)服务及其它业务服务,全部使用分布式方式开发与部署。
实践1:分布式服务(服务端角色)配置
(转载请注明来源:cnblogs coder-fang)
- 此实践使用两台机器部署服务,一台部署web服务(客户端角色),一台为其它服务如DAS(服务端角色),TCP服务等。
- 两台机器全部使用wildfly9做为服务容器。
- web服务器:192.168.50.253(eclipse开发环境在此机器上) ,DAS服务器 192.168.50.123
- 在50.123机器上运行add-user.sh/add-user.bat,创建且Management User,账号jboss,密码123,此账号的目的是使得eclipse可以远程发布,再次运行add-user,创建Application User,这里设置的用户为ejbuser,密码为123,设置此账号目的是当远程客户端(web所在的wildefly)在访问此服务时需要提供连接的账号与密码,如果不使用分布式服务,所有服务在一台机器时可不增加此用户。
- 配置数据库,本例在50.123机器上安装mysql服务,并在数据库中添加测试数据库与数据表,本例使用的数据库如图所示:
- 配置50.123机器的standalone.xml,增加mysql数据库驱动与数据源:
- 在 <subsystem xmlns="urn:jboss:domain:datasources:3.0">中的<datasources>节点下,增加如下配置:
<datasource jta="true" jndi-name="java:/XboMdtDS" pool-name="XboMdtDS" enabled="true" use-ccm="true"> <connection-url>jdbc:mysql://192.168.50.123:3306/xbomdt</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver>mysql</driver> <pool> <min-pool-size>5</min-pool-size> <initial-pool-size>5</initial-pool-size> <max-pool-size>10</max-pool-size> </pool> <security> <user-name>mysql</user-name> <password>mysql</password> </security> <validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> <background-validation>true</background-validation> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> </validation> </datasource>
- 在<subsystem xmlns="urn:jboss:domain:datasources:3.0">中的<drivers>节点下增加如下配置:
<driver name="mysql" module="jdbc.mysql"> <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADatasource</xa-datasource-class> </driver>
- 查看机器50.123上的wildfly是否有mysql jdbc模块,目录地址为:wildfly9modulessystemlayersasejdbcmysqlmain
- 如果有此目录且目录下有module.xml与mysql-connector*.jar,则路过此步骤。
- 如果没有相关目录与文件,则创建此目录并在此目录中增加module.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.3" name="jdbc.mysql"> <resources> <resource-root path="mysql-connector-java-5.1.38.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
- 注明,上述配置中的 resource-root path 即为main目录中mysql-connector*.jar的文件名,我这里是
mysql-connector-java-5.1.38.jar。
- 在 <subsystem xmlns="urn:jboss:domain:datasources:3.0">中的<datasources>节点下,增加如下配置:
- 修改<interfaces>节点,配置如下:
<interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:0.0.0.0}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:0.0.0.0}"/> </interface> <interface name="unsecure"> <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/> </interface> </interfaces>
注:此配置目的是使用ip地址可访问服务,配置之前只能使用localhost或127.0.0.1访问。
- 运行wildfly/bin/目录下的 standalone.bat/standalone.sh,查看是否有错误输出,本示例中没有异常,且最后四行输出如为:
2016-12-13 14:43:06,894 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-3) WFLYDS0013: Started FileSystemDeploymentService for directory /home/pacs/wildfly/standalone/deployments 2016-12-13 14:43:07,133 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://0.0.0.0:9990/management 2016-12-13 14:43:07,134 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://0.0.0.0:9990 2016-12-13 14:43:07,134 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 9.0.2.Final (WildFly Core 1.0.2.Final) started in 4207ms - Started 209 of 385 services (210 services are lazy, passive or on-demand)
- 至此,50.123机器上的服务器配置完成。