From 5e3fd7b499d7277943a9886caff23620b6e5b4ac Mon Sep 17 00:00:00 2001 From: wentch <22250530@qq.com> Date: Wed, 6 Jan 2016 10:09:59 +0800 Subject: [PATCH] --- service.html | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) 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协议服务以便能接收远程的调用请求。

- +

Service 远程模式

      动态生成的远程模式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);
     }
 }