bboss aop 远程服务介绍-点对点远程服务调用和组播服务调用的区别

简介: bboss 项目下载地址: https://sourceforge.net/project/showfiles.php?group_id=238653 点对点远程服务调用和组播服务调用的区别主要在于 1.      方法有返回值时其返回值不同。

bboss 项目下载地址:

https://sourceforge.net/project/showfiles.php?group_id=238653

点对点远程服务调用和组播服务调用的区别主要在于

1.      方法有返回值时其返回值不同。

在实例中我们看到组件方法:

public  Object handle(){

    return new Integer(1);

}

的返回值类型是Object,实际上返回的是一个Integer类型的对象。在点对点远程服务调用的测试方法中,我们直接将服务方法的返回值直接转换为Integer类型:

ServiceInf rpc = (test.ServiceInf)BaseSPIManager

                .getProvider("(172.16.17.51:1185; 172.16.17.56:1185)/managerid");

    Integer object = (Integer)rpc. handle();

但是在组播调用远程服务的测试方法中,不能这样处理,原因是发出请求的每台服务器都会有一个返回值,因此rpc. handle()调用的结果将是一个返回值的集合,如果需要获取特定服务器的返回值,必须通过以下方法来获取:

BaseSPIManager.getRPCResult(serverip, port, object);

Serverip参数对应服务器的ipport参数对应服务器的端口,object参数为所有服务器的返回值的集合。

例如:

ServiceInf rpc = (test.ServiceInf)BaseSPIManager.getProvider("(172.16.17.51:1185; 172.16.17.56:1185)/managerid");

 Object object = rpc .handle();

Integer value = (Integer)BaseSPIManager.getRPCResult("172.16.17.56", "1185", object);

Integer value1 = (Integer)BaseSPIManager.getRPCResult("172.16.17.51", "1185", object);

2.         配置远程组件时,对组播地址的配置要求不一样

在远程管理组件的配置文件etc/META-INF/replSync-service-aop.xml,我们需要配置两个属性:

组播地址 mcast_addr="228.10.10.178"

绑定端口 bind_port="1185"

 

每个服务器都可以配置自己的组播地址和绑定端口,如果两台服务器之间发出的所有远程服务请求都是点对点的方式发出的,那么组播地址 mcast_addr就可以配置成不相同的地址,当然相同的地址也可以(尽量不要配置成相同的组播地址);如果服务器之间发出的远程服务请求只要有同时发出对多台服务器调用的情况时,就需要将组播地址mcast_addr配置成相同的地址。

目录
相关文章
|
Java 编译器 Spring
Spring系列八:Spring AOP 和 AspectJ AOP 区别
该文章收录专栏: 叶秋学长的Spring系列专栏 博主传送门: 叶秋学长 Spring AOP 和 AspectJ AOP 区别? 今天由叶秋学长带领大家学习Spring AOP和AspectJ AOP 的区别~~ Spring AOP Spring AOP 属于运行时增强,主要具有如下特点: 1. 基于动态代理来实现,默认如果使用接口的,用 JDK 提供的动态代理实现,如果是方法则使用 CGLIB 实现 2. Spring AOP 需要依赖 IOC 容器来管理,并且只能作用于 Spring 容器,使用纯 Java 代码实现 3. 在性能上,由于 Spring AOP 是基于
261 1
Spring系列八:Spring AOP 和 AspectJ AOP 区别
|
设计模式 缓存 安全
面试官问 Spring AOP 中两种代理模式的区别,我懵逼了
基本介绍 代理模式是一种结构性设计模式。为对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,并允许在将请求提交给对象前后进行一些处理。 被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。 代理模式主要有三种不同的形式: 静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的 .class 文件就已经存在了 动态代理(JDK 代理、接口代理):在程序运行时运用反射机制动态创建而成,动态就是在程序运行时生成的,而不是编译时。 cglib 代理(可以在内存动态的创建对象,而不是实现接口,属于动态代理的范畴)
|
设计模式 Java 编译器
Spring AOP【AOP的基本实现与动态代理JDK Proxy 和 CGLIB区别】
Spring AOP【AOP的基本实现与动态代理JDK Proxy 和 CGLIB区别】
Spring AOP【AOP的基本实现与动态代理JDK Proxy 和 CGLIB区别】
|
Java 调度 Spring
【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「SpringAOP 整合篇」
【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「SpringAOP 整合篇」
367 0
【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「SpringAOP 整合篇」
|
存储 安全 Java
【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「Logback-MDC篇」
【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「Logback-MDC篇」
699 0
【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「Logback-MDC篇」
|
安全 Java 容器
SpringMVC - Filter、Interceptor、AOP 区别
SpringMVC - Filter、Interceptor、AOP 区别
228 0
SpringMVC - Filter、Interceptor、AOP 区别
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(下)
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(下)
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(下)
|
算法 安全 JavaScript
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(上)
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(上)
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(上)
|
XML Dubbo Java
SpringBoot使用AOP导致dubbo服务不注册
在搭建SpringBoot项目的时候,原本已经集成了Dubbo并且测试也没问题,在加AOP的时候,发现Dubbo的provider不注册了。说明一下,本着极简原则,Dubbo的provider在这里用@Service注解来发布服务,并没有使用xml配置的方式。 这时用的springboot和dubbo的版本为:
|
缓存 中间件 API
从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存
代码已上传Github+Gitee,文末有地址   上回《从壹开始前后端分离【 .NET Core2.0 Api + Vue 2.0 + AOP + 分布式】框架之九 || 依赖注入IoC学习 + AOP界面编程初探》咱们说到了依赖注入Autofac的使用,不知道大家对IoC的使用用怎样的感觉,我个人表示还是比较可行的,至少不用自己再关心一个个复杂的实例化服务对象了,直接通过接口就满足需求,当然还有其他的一些功能,我还没有说到,抛砖引玉嘛,大家如果有好的想法,欢迎留言,也可以来群里,大家一起学习讨论。
1490 0