This commit is contained in:
25
service.html
25
service.html
@@ -128,7 +128,7 @@
|
||||
<span class="kt">boolean</span> <span class="nf">async</span><span class="o">()</span> <span class="k">default</span> <span class="kc">true</span><span class="o">;</span> <span class="c1">//分布式运行是否采用异步模式</span>
|
||||
<span class="o">}</span> </pre></div>
|
||||
<p> 在动态生成的远程模式UserService时会根据不同参数生成相应的方法。若一个Service类没有含@MultiRun注解的方法,那么动态类只会重载public String name()和toString方法。当UserService服务仅需要部署一个进程,由于没有其他等同服务的进程因此在UserService实例化时_client会赋值为null。</p>
|
||||
<div class="highlight"><pre><span class="nt"><resources></span>
|
||||
<div class="highlight"><pre><span class="nt"><resources></span>
|
||||
<span class="nt"><group</span> <span class="na">name=</span><span class="s">"GROUP-A"</span><span class="nt">></span>
|
||||
<span class="nt"><node</span> <span class="na">addr=</span><span class="s">"192.168.10.111"</span> <span class="na">port=</span><span class="s">"7070"</span><span class="nt">/></span>
|
||||
<span class="nt"><node</span> <span class="na">addr=</span><span class="s">"192.168.10.112"</span> <span class="na">port=</span><span class="s">"7070"</span><span class="nt">/></span>
|
||||
@@ -147,9 +147,9 @@
|
||||
|
||||
<span class="c"><!-- 配置UserService的节点组 ---></span>
|
||||
<span class="nt"><service</span> <span class="na">name=</span><span class="s">""</span> <span class="na">value=</span><span class="s">"org.redkale.demo.user.UserService"</span> <span class="na">groups=</span><span class="s">"GROUP-A;GROUP-B;GROUP-C"</span><span class="nt">/></span>
|
||||
</pre></div>
|
||||
</pre></div>
|
||||
<p> 如上配置,若当前进程所在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协议服务以便能接收远程的调用请求。</p>
|
||||
|
||||
|
||||
<h3><a id="service_remote" class="anchor" href="#" aria-hidden="true"><span class="octicon octicon-link"></span></a>Service 远程模式</h3>
|
||||
<p> 动态生成的远程模式UserService:</p>
|
||||
<div class="highlight"><pre><span class="nd">@Resource</span><span class="o">(</span><span class="n">name</span> <span class="o">=</span> <span class="s">""</span><span class="o">)</span>
|
||||
@@ -170,24 +170,29 @@
|
||||
<span class="k">return</span> <span class="n">_selfstring</span> <span class="o">==</span> <span class="kc">null</span> <span class="o">?</span> <span class="kd">super</span><span class="o">.</span><span class="na">toString</span><span class="o">()</span> <span class="o">:</span> <span class="n">_selfstring</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="n">UserInfo</span> <span class="nf">findUserInfo</span><span class="o">(</span><span class="kt">int</span> <span class="n">userid</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="n">userid</span><span class="o">);</span>
|
||||
<span class="nd">@SncpDyn</span><span class="o">(</span><span class="n">remote</span> <span class="o">=</span> <span class="kc">false</span><span class="o">,</span> <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span><span class="o">)</span>
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">_register</span><span class="o">(</span><span class="kt">boolean</span> <span class="n">selfrunnable</span><span class="o">,</span> <span class="kt">boolean</span> <span class="n">samerunnable</span><span class="o">,</span> <span class="kt">boolean</span> <span class="n">diffrunnable</span><span class="o">,</span> <span class="n">UserInfo</span> <span class="n">user</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="n">selfrunnable</span><span class="o">,</span> <span class="n">samerunnable</span><span class="o">,</span> <span class="n">diffrunnable</span><span class="o">,</span> <span class="n">user</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@SncpDyn</span><span class="o">(</span><span class="n">remote</span> <span class="o">=</span> <span class="kc">false</span><span class="o">,</span> <span class="n">index</span> <span class="o">=</span> <span class="mi">1</span><span class="o">)</span>
|
||||
<span class="kd">public</span> <span class="n">UserInfo</span> <span class="nf">_updateUsername</span><span class="o">(</span><span class="kt">boolean</span> <span class="n">selfrunnable</span><span class="o">,</span> <span class="kt">boolean</span> <span class="n">samerunnable</span><span class="o">,</span> <span class="kt">boolean</span> <span class="n">diffrunnable</span><span class="o">,</span> <span class="kt">int</span> <span class="n">userid</span><span class="o">,</span> <span class="n">String</span> <span class="n">username</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">selfrunnable</span><span class="o">,</span> <span class="n">samerunnable</span><span class="o">,</span> <span class="n">diffrunnable</span><span class="o">,</span> <span class="n">userid</span><span class="o">,</span> <span class="n">username</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="n">RetResult</span><span class="o"><</span><span class="n">UserInfo</span><span class="o">></span> <span class="nf">login</span><span class="o">(</span><span class="n">LoginBean</span> <span class="n">bean</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">bean</span><span class="o">);</span>
|
||||
<span class="kd">public</span> <span class="n">UserInfo</span> <span class="nf">findUserInfo</span><span class="o">(</span><span class="kt">int</span> <span class="n">userid</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">2</span><span class="o">,</span> <span class="n">userid</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">register</span><span class="o">(</span><span class="n">UserInfo</span> <span class="n">user</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">2</span><span class="o">,</span> <span class="n">user</span><span class="o">);</span>
|
||||
<span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">3</span><span class="o">,</span> <span class="n">user</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="n">UserInfo</span> <span class="nf">updateUsername</span><span class="o">(</span><span class="kt">int</span> <span class="n">userid</span><span class="o">,</span> <span class="n">String</span> <span class="n">username</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">3</span><span class="o">,</span> <span class="n">userid</span><span class="o">,</span> <span class="n">username</span><span class="o">);</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">4</span><span class="o">,</span> <span class="n">userid</span><span class="o">,</span> <span class="n">username</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
<span class="o">}</span>
|
||||
</pre></div>
|
||||
|
||||
Reference in New Issue
Block a user