public abstract class Sncp
extends java.lang.Object
| 限定符和类型 | 方法和说明 |
|---|---|
static <T extends Service> |
createLocalService(java.lang.String name,
java.util.function.Consumer<java.lang.Runnable> executor,
ResourceFactory resourceFactory,
java.lang.Class<T> serviceClass,
java.net.InetSocketAddress clientAddress,
Transport sameGroupTransport,
java.util.Collection<Transport> diffGroupTransports)
创建本地模式Service实例
|
protected static <T extends Service> |
createLocalServiceClass(java.lang.String name,
java.lang.Class<T> serviceClass)
public class TestService implements Service{
public String findSomeThing(){
return "hello";
}
@MultiRun(selfrun = false)
public void createSomeThing(TestBean bean){
//do something
}
@MultiRun
public String updateSomeThing(String id){
return "hello" + id;
}
}
@Resource(name = "")
@SncpDyn(remote = false)
@ResourceType({TestService.class})
public final class _DynLocalTestService extends TestService{
@Resource
private BsonConvert _redkale_convert;
private Transport _redkale_sameGroupTransport;
private Transport[] _redkale_diffGroupTransports;
private SncpClient _redkale_client;
private String _redkale_selfstring;
@Override
public String toString() {
return _redkale_selfstring == null ?
|
static <T extends Service> |
createRemoteService(java.lang.String name,
java.util.function.Consumer<java.lang.Runnable> executor,
java.lang.Class<T> serviceClass,
java.net.InetSocketAddress clientAddress,
Transport transport)
@Resource(name = "")
@SncpDyn(remote = true)
@ResourceType({TestService.class})
public final class _DynRemoteTestService extends TestService{
@Resource
private BsonConvert _redkale_convert;
private Transport _redkale_transport;
private SncpClient _redkale_client;
private String _redkale_selfstring;
@Override
public String toString() {
return _redkale_selfstring == null ?
|
static Transport[] |
getDiffGroupTransports(Service service) |
static Transport |
getSameGroupTransport(Service service) |
static SncpClient |
getSncpClient(Service service) |
static DLong |
hash(java.lang.reflect.Method method) |
static DLong |
hash(java.lang.String name)
对类名或者name字符串进行hash。
|
static boolean |
isRemote(Service service) |
static long |
nodeid(java.net.InetSocketAddress ip) |
public static long nodeid(java.net.InetSocketAddress ip)
public static DLong hash(java.lang.reflect.Method method)
public static DLong hash(java.lang.String name)
name - Stringpublic static boolean isRemote(Service service)
public static SncpClient getSncpClient(Service service)
protected static <T extends Service> java.lang.Class<? extends T> createLocalServiceClass(java.lang.String name, java.lang.Class<T> serviceClass)
public class TestService implements Service{
public String findSomeThing(){
return "hello";
}
@MultiRun(selfrun = false)
public void createSomeThing(TestBean bean){
//do something
}
@MultiRun
public String updateSomeThing(String id){
return "hello" + id;
}
}
@Resource(name = "")
@SncpDyn(remote = false)
@ResourceType({TestService.class})
public final class _DynLocalTestService extends TestService{
@Resource
private BsonConvert _redkale_convert;
private Transport _redkale_sameGroupTransport;
private Transport[] _redkale_diffGroupTransports;
private SncpClient _redkale_client;
private String _redkale_selfstring;
@Override
public String toString() {
return _redkale_selfstring == null ? super.toString() : _redkale_selfstring;
}
@Override
public void createSomeThing(TestBean bean){
this._redkale_createSomeThing(false, true, true, bean);
}
@SncpDyn(remote = false, index = 0)
public void _redkale_createSomeThing(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, TestBean bean){
if(selfrunnable) super.createSomeThing(bean);
if (_redkale_client== null) return;
if (samerunnable) _redkale_client.remoteSameGroup(_redkale_convert, _sameGroupTransport, 0, true, false, false, bean);
if (diffrunnable) _redkale_client.remoteDiffGroup(_redkale_convert, _diffGroupTransports, 0, true, true, false, bean);
}
@Override
public String updateSomeThing(String id){
return this._redkale_updateSomeThing(true, true, true, id);
}
@SncpDyn(remote = false, index = 1)
public String _redkale_updateSomeThing(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, String id){
String rs = super.updateSomeThing(id);
if (_redkale_client== null) return;
if (samerunnable) _redkale_client.remoteSameGroup(_redkale_convert, _sameGroupTransport, 1, true, false, false, id);
if (diffrunnable) _redkale_client.remoteDiffGroup(_redkale_convert, _diffGroupTransports, 1, true, true, false, id);
return rs;
}
}
创建Service的本地模式ClassT - Service子类name - 资源名serviceClass - Service类public static <T extends Service> T createLocalService(java.lang.String name, java.util.function.Consumer<java.lang.Runnable> executor, ResourceFactory resourceFactory, java.lang.Class<T> serviceClass, java.net.InetSocketAddress clientAddress, Transport sameGroupTransport, java.util.Collection<Transport> diffGroupTransports)
T - Service泛型name - 资源名executor - 线程池resourceFactory - 资源容器serviceClass - Service类clientAddress - 本地IP地址sameGroupTransport - 同组的通信组件diffGroupTransports - 异组的通信组件列表public static <T extends Service> T createRemoteService(java.lang.String name, java.util.function.Consumer<java.lang.Runnable> executor, java.lang.Class<T> serviceClass, java.net.InetSocketAddress clientAddress, Transport transport)
@Resource(name = "")
@SncpDyn(remote = true)
@ResourceType({TestService.class})
public final class _DynRemoteTestService extends TestService{
@Resource
private BsonConvert _redkale_convert;
private Transport _redkale_transport;
private SncpClient _redkale_client;
private String _redkale_selfstring;
@Override
public String toString() {
return _redkale_selfstring == null ? super.toString() : _redkale_selfstring;
}
@SncpDyn(remote = false, index = 0)
public void _redkale_createSomeThing(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, TestBean bean){
_redkale_client.remote(_redkale_convert, _redkale_transport, 0, selfrunnable, samerunnable, diffrunnable, bean);
}
@SncpDyn(remote = false, index = 1)
public String _redkale_updateSomeThing(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, String id){
return _redkale_client.remote(_redkale_convert, _redkale_transport, 1, selfrunnable, samerunnable, diffrunnable, id);
}
@Override
public void createSomeThing(TestBean bean){
_redkale_client.remote(_redkale_convert, _redkale_transport, 2, bean);
}
@Override
public String findSomeThing(){
return _redkale_client.remote(_redkale_convert, _redkale_transport, 3);
}
@Override
public String updateSomeThing(String id){
return _redkale_client.remote(_redkale_convert, _redkale_transport, 4, id);
}
}
创建远程模式的Service实例T - Service泛型name - 资源名executor - 线程池serviceClass - Service类clientAddress - 本地IP地址transport - 通信组件