CSF是一个远程服务管理平台,其平台搭建过程如下。

用户创建

需要创建两个用户:zkchaapp

1
2
3
4
5
6
7
#如果已经创建了组,可以省略
groupadd ngboss
useradd -d /home/zk -g ngboss zk
useradd -d /home/chaapp -g ngboss chaapp
#创建密码
echo '1q1w1e1r' | passwd --stdin chaapp

zk的安装前面已经学习过,这里略过。

CSF相关的东西放到chaapp目录下。

如图上传这两个文件,解压。

解压后的目录如下图:

服务器配置修改

AIConfig.xml
1
2
3
vi /home/chaapp/config/AIConfig.xml
106 <ConfigItem name="DATABASE_DIALECT" remarks="数据的方言(如果没有,采用OracleDialectImpl)" >com.ai.appframe2.bo.dialect.OracleDialectImpl</ConfigItem>
csf.xml
1
2
3
4
5
6
vi /home/chaapp/config/csf/csf.xml
#163行
<Item name="zk.server.list">
<value>127.0.0.1:2181</value>
<description>多个地址用逗号(,)隔开 </description>
</Item>
defaults.xml
1
2
3
4
5
6
7
8
vi /home/chaapp/config/system/service/defaults.xml
<pool name="base" primary="true">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@10.13.3.13:1521:shxicrm" />
<property name="username" value="UCR_PSWD" />
<property name="password" value="UCR_PSWD" />
...
启动服务端
1
2
3
4
5
6
[chaapp@centos7-node01 ~]$ ls
bin config configext lib libext logs sbin soa_web sql support
[chaapp@centos7-node01 ~]$ cd sbin/
[chaapp@centos7-node01 sbin]$ ls
start_app_21.sh start_app_22.sh start_app_23.sh start_app_24.sh start_app.sh statistic.sh stop_app.sh taillog.sh
[chaapp@centos7-node01 sbin]$ ./start_app_21.sh

tomcat配置

进入此目录中

1
2
3
4
5
[chaapp@centos7-node01 webapps]$ pwd
/home/chaapp/soa_web/apache-tomcat-7.0.68/webapps
[chaapp@centos7-node01 webapps]$ ls
csf_web csf_web.war docs examples host-manager manager ROOT zkweb zkweb.war
[chaapp@centos7-node01 webapps]$

这里有两个目录需要配置:csf_webzkweb

csf_web目录下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[chaapp@centos7-node01 classes]$ pwd
/home/chaapp/soa_web/apache-tomcat-7.0.68/webapps/csf_web/WEB-INF/classes
[chaapp@centos7-node01 classes]$ ls
AIConfig.xml AIRootConfig.xml config.properties log4j.properties SrvFrameConfig.xml TaskConfig.xml
AiLog.properties com csf.properties menu.xml system
[chaapp@centos7-node01 classes]$ vi AIConfig.xml
#104行修改成Oracle方言
[chaapp@centos7-node01 classes]$ vi csf.properties
#修改zk地址 config.properties也一样修改
zk.server.list=192.168.71.137:2181
#进入此目录中
[chaapp@centos7-node01 service]$ pwd
/home/chaapp/soa_web/apache-tomcat-7.0.68/webapps/csf_web/WEB-INF/classes/system/service
[chaapp@centos7-node01 service]$ vi defaults.xml
...
51 <pool name="base" primary="true">
52 <property name="driverClassName" value="oracle.jdbc.OracleDriver" />
53 <property name="url" value="jdbc:oracle:thin:@10.13.3.13:1521:shxicrm" />
54 <property name="username" value="UCR_PSWD" />
55 <property name="password" value="UCR_PSWD" />
...
zk_web目录下
1
2
3
4
5
[chaapp@centos7-node01 classes]$ pwd
/home/chaapp/soa_web/apache-tomcat-7.0.68/webapps/zkweb/WEB-INF/classes
[chaapp@centos7-node01 classes]$ ls
c3p0.properties com log4j.xml spring zk.properties
#修改zk.properties的zk地址。貌似不用改也阔以
启动tomcat

在tomcat的bin目录下

1
[chaapp@centos7-node01 bin]$ ./startup.sh

浏览器上输入:http://192.168.71.137:8080/csf_web/common/index.jsp

如图:

本地Java工程

Java工程的目录如下:

例如:我在AddMoneyCSVImpl.java中写了一个方法

1
2
3
4
5
6
7
8
9
10
11
12
13
public class AddMoneyCSVImpl implements IAddMoneyCSV {
public String getMoney(Userman userman) {
return userman.getMoney();
}
public String getId(String name) {
return name+"调用成功";
}
//这个方法
public String getLvshen(String name){
return "Hello I'm" + name;
}
}

TestService.java中的内容如下:

1
2
3
4
5
6
7
8
9
public class TestService {
public static void main(String[] args) throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put("name", "Lvshen");
//这里括号中的命名规则为:中心明_类名_方法名
IClientSV sv = CsfServiceFactory.getService("order_IAddMoneyCSV_getLvshen");
System.out.println("********************"+sv.service(map));
}
}

然后打开注册工具,把服务注册进入数据库和zk,操作如下图:

点击View→Setting,在config界面中进行相关的设置(上图有数据库的配置),项目配置和ClassPath的配置如下图:

配置好之后,软件界面上就会有java工程的相关目录了如下:

输入中心名,选择方法,右键注册即可。

这样前端界面就可以看到新添加的服务。

之后就可以对服务进行相关的操作了。

把Java工程打包成jar包放入服务器的/home/chaapp/lib目录下。运行Java工程,项目就可以远程调用服务跑起来了。