diff --git a/service.html b/service.html index 70eb48263..d7dfc47ab 100644 --- a/service.html +++ b/service.html @@ -128,7 +128,7 @@ boolean async() default true; //分布式运行是否采用异步模式 }
在动态生成的远程模式UserService时会根据不同参数生成相应的方法。若一个Service类没有含@MultiRun注解的方法,那么动态类只会重载public String name()和toString方法。当UserService服务仅需要部署一个进程,由于没有其他等同服务的进程因此在UserService实例化时_client会赋值为null。
-<resources>
+ <resources>
<group name="GROUP-A">
<node addr="192.168.10.111" port="7070"/>
<node addr="192.168.10.112" port="7070"/>
@@ -147,9 +147,9 @@
<!-- 配置UserService的节点组 --->
<service name="" value="org.redkale.demo.user.UserService" groups="GROUP-A;GROUP-B;GROUP-C"/>
-
+ 如上配置,若当前进程所在IP是192.168.10.111,则UserService采用本地模式加载。执行register方法时, 先本地执行超类的register,然后远程执行同组的进程(192.168.10.112、192.168.10.113),最后远程执行异组的进程(192.168.20.121、192.168.20.122、192.168.30.131、192.168.30.132)。若当前进程所在IP是192.168.10.100,则UserService采用远程模式加载。需要注意的一点是,每个IP所在的服务必须开通SNCP协议服务以便能接收远程的调用请求。
- +动态生成的远程模式UserService:
@Resource(name = "")
@@ -170,24 +170,29 @@
return _selfstring == null ? super.toString() : _selfstring;
}
- @Override
- public UserInfo findUserInfo(int userid) {
- return _client.remote(_convert, _transport, 0, userid);
+ @SncpDyn(remote = false, index = 0)
+ public void _register(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, UserInfo user) {
+ _client.remote(_convert, _transport, 0, selfrunnable, samerunnable, diffrunnable, user);
+ }
+
+ @SncpDyn(remote = false, index = 1)
+ public UserInfo _updateUsername(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, int userid, String username) {
+ return _client.remote(_convert, _transport, 1, selfrunnable, samerunnable, diffrunnable, userid, username);
}
@Override
- public RetResult<UserInfo> login(LoginBean bean) {
- return _client.remote(_convert, _transport, 1, bean);
+ public UserInfo findUserInfo(int userid) {
+ return _client.remote(_convert, _transport, 2, userid);
}
@Override
public void register(UserInfo user) {
- _client.remote(_convert, _transport, 2, user);
+ _client.remote(_convert, _transport, 3, user);
}
@Override
public UserInfo updateUsername(int userid, String username) {
- return _client.remote(_convert, _transport, 3, userid, username);
+ return _client.remote(_convert, _transport, 4, userid, username);
}
}