- 浏览: 695627 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
环境准备
准备三台服务器
n 服务器A
Ip 172.16.17.56
端口 1185
n 服务器B
Ip 172.16.17.51
端口 1185
n 服务器C
Ip 172.16.17.52
端口 1185
服务部署
假设我们已经定义了业务组件test.A和test.B,分别实现接口test.ServiceInf。服务中定义了方法handle(),返回值为Object,方法代码如下:
public Object handle(){
return new Integer(1);
}
在A,B,C三台服务器上分别部署管理服务managerid,建立配置文件service-assemble.xml内容如下:
<manager-config>
<manager id="managerid" //管理服务id
singlable="true" //单列模式
>
<provider type="provider_a" //provider实现a
class="test.A" />
<provider type="provider_b" //provider实现b
class="test.B" />
<transactions>
<method name="handle" txtype="REQUIRED_TRANSACTION"/>
</transactions>
</manager>
<manager-config>
然后将service-assemble.xml导入到主配置文件manager-provider.xml文件:
<manager-config>
<managerimport file="com/chinacreator/spi/rpc/service-assemble.xml" />
</manager-config>
在主配置文件manager-provider.xml中添加以下配置,作为远程管理组件启用的控制开关:
<manager-config>
<properties>
<property name="cluster_enable" value="true"/> //启用远程管理组件
<property name="cluster_mbean_enable" value="true"/> //启用远程管理组件的mbean监控功能,目前未使用
<property name="cluster_name" value="Cluster"/> //远程管理组件名称
</properties>
<managerimport file="com/chinacreator/spi/rpc/service-assemble.xml" />
</manager-config>
配置服务器间通讯端口和组播地址
在远程管理组件的配置文件etc/META-INF/replSync-service-aop.xml
中修改bind_port属性:
bind_port="1185"
修改组播地址:
mcast_addr="228.10.10.178"
客服端程序编写
package com.chinacreator.spi.rpc;
import com.chinacreator.spi.BaseSPIManager;
import com.chinacreator.spi.SPIException;
public class Test {
public static void testMutirpcCall() {
try {
ServiceInf rpc = (test.ServiceInf)BaseSPIManager
.getProvider("(172.16.17.51:1185; 172.16.17.56:1185)/managerid");
// RPCTest rpc = (RPCTest)BaseSPIManager.getProvider("managerid");
// RPCTest rpc =
// (RPCTest)BaseSPIManager.getProvider("(_self)/managerid");
// RPCTest rpc1 = (RPCTest)BaseSPIManager.getProvider(
// "(172.16.17.52: 1185;172.16.17.56: 1185)/managerid ");
// RPCTest rpc2 =
// (RPCTest)BaseSPIManager.getProvider("(all)/managerid");
long s = System.currentTimeMillis();
Integer object = (Integer)rpc. handle();
System.out.println(BaseSPIManager.getRPCResult("172.16.17.51", "1185", object));
System.out.println(BaseSPIManager.getRPCResult("172.16.17.56", "1185", object));
long e = System.currentTimeMillis();
System.out.println((e - s) / 1000 + "秒");
} catch (SPIException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void testsinglerpcCall() {
try {
ServiceInf rpc = (test.ServiceInf)BaseSPIManager.getProvider("(172.16.17.56:1185)/managerid");
long s = System.currentTimeMillis();
Object object = rpc. handle();
System.out.println(object);
long e = System.currentTimeMillis();
System.out.println((e - s) / 1000 + "秒");
} catch (SPIException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void testAllrpcCall() {
try {
ServiceInf rpc = (test.ServiceInf)BaseSPIManager.getProvider("(all)/managerid");
long s = System.currentTimeMillis();
Object object = rpc .handle();
System.out.println(BaseSPIManager.getRPCResult("172.16.17.51", "1185", object));
System.out.println(BaseSPIManager.getRPCResult("172.16.17.52", "1185", object));
System.out.println(BaseSPIManager.getRPCResult("172.16.17.56", "1185", object));
long e = System.currentTimeMillis();
System.out.println((e - s) / 1000 + "秒");
} catch (SPIException e) {
e.printStackTrace();
}
}
}
启动服务器
分别在每台服务器上运行类com.chinacreator.remote.RunAop的主方法,既可以启动服务器。
注意,客服端不要启动服务器。
运行客服端
Test.testAllrpcCall();
Test.testMutirpcCall();
Test.testsinglerpcCall();
更详细的信息请参考章节【BaseSPIProvider组件介绍中.实现远程服务调用】
评论
发表评论
-
bboss ioc快速入门教程
2017-08-13 11:28 1276bboss是一个非常不错的ioc框架,功能类似于spr ... -
bboss ioc配置文件中使用外部属性文件介绍
2016-09-20 11:35 1145bboss ioc配置文件中使用外部属性文件介绍 与spri ... -
bboss与spring中配置和引用bboss数据源和bboss dao组件方法说明
2016-08-10 16:04 918首先在项目中导入bboss 持久层包: maven坐标 & ... -
bboss ioc提供的组件初始化工具类介绍
2016-03-18 16:17 738bboss ioc提供的组件初始化工具类介绍 bboss i ... -
扩展bboss ioc语法实现自定义的ioc依赖注入功能
2015-01-20 23:08 1331bboss ioc配置语法简洁而严谨,提供了强大的依赖注入功能 ... -
bboss序列化cglib代理对象方法介绍
2014-06-22 15:14 1162本文介绍bboss序列化cglib代理对象方法。经过cglib ... -
bboss自定义类对象序列化机制介绍
2014-05-26 23:32 1471bboss自定义类对象序列 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1657bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1091bboss发布apache cxf 2.7.6服务和定义客户端 ... -
bboss 发布和使用hessian服务方法介绍
2013-02-25 23:21 2114hessian是一款性能非常不错的RPC通讯组件,最近抽空将b ... -
bboss quartz组件全攻略
2013-01-27 13:31 2622bboss quartz组件全攻略 本 ... -
bboss aop拦截器使用简介
2012-11-29 23:20 1209bboss aop拦截器使用简介, ... -
bboss ioc容器之间组件引用方法简介
2012-08-04 15:09 1337bboss ioc容器之间组件引用方法简介。我们可以在ioc容 ... -
Rest协议框架-bboss rpc
2012-08-03 12:51 1356restful风格rpc服务协议rest,定义的语法如下: ... -
解决cxf+bboss发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题
2012-06-19 10:11 1793cxf+bboss发布webservice服务 ... -
开源工作流引擎activiti与bboss整合使用方法浅析
2012-05-01 11:35 5224本文介绍开源工作流引擎activiti与bboss ioc框架 ... -
bboss aop/ioc组件配置语法诠释
2012-03-01 18:38 2206这篇文章全面介绍bboss ioc 配置语法,希望对 ... -
bboss aop/ioc依赖注入功能介绍
2012-02-12 14:40 1769bboss aop 3.5及后续版本中改进的ioc依赖注入功能 ... -
Bboss和xstream序列化/反序列化性能对比
2011-10-13 00:18 1985Bboss和xstream序列化/反序列化性能对比 本报告分别 ... -
bboss 组件容器的使用方法浅析
2011-08-20 00:21 1666本文重点介绍bboss 中的4大组件容器的特点及使用方法 4 ...
相关推荐
【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...
官方版本,亲测可用
3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...
环境要求JDK要求:JDK 1.7+ Elasticsearch版本要求:1.X,2.X,5.X,6.X,7.x,+ Spring Booter 1.x,2.x,+从源代码构建首先从获取源代码然后转到目录bboss-elastic-tran下的cmd窗口并运行gradle build命令: ...
官方版本,亲测可用
**bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...
本bboss-datatran项目基于Java开发,包含591个文件,包括Java源代码、Markdown文档、GIT忽略文件、Gradle构建文件、Properties配置文件、Preferences配置文件、XML配置文件、GIT属性文件、LICENSE文件和PNG图片。...
springboot集成ElasticsearchBboss调用Elasticsearch的案例分享
Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿
bboss-datatran 由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能。 同时也是一个高性能Elasticsearch orm 客户端,100%兼容es各个版本 ...
官方版本,亲测可用
抄送和通知任务改造:...05-16 ServiceTask中express类型的服务也支持javadelegate和activitibehavier类型的表达式类运算2014-05-16 增加实例升级处理服务Create a new repository on the command linetouch
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
bboss hadoop集群搭建 hadoop集群搭建 hadoop集群搭建 hadoop集群搭建 hadoop集群搭建
4. **AOP(面向切面编程)**:BBoss MVCDemo支持AOP,可以实现如事务管理、日志记录、权限控制等功能,提高代码的复用性和可维护性。 5. **国际化与本地化**:框架内置了国际化和本地化支持,使得应用可以根据用户...
1. **初始化配置**:在过滤器实例化时,`init()`方法会被调用。在这里,我们可以配置过滤器的参数,如定义哪些URL需要进行安全认证,或者设置默认的登录页面等。 2. **过滤链执行**:`doFilter()`方法是过滤器的...
2. **bboss elasticsearch开发入门教程.wmv**: 通过实例演示,讲解如何使用BBoss进行索引操作、数据插入、查询和更新,帮助初学者快速上手。 **六、资料阅读** "说明.txt" 文件可能包含了关于这些教程的详细步骤和...
通用高性能Elasticsearch highlevel java rest client 客户端,兼容elasticsearch 1.x,2.x,5.x,6.x,7.x,8.x,兼容spring boot 1.x,2.x,开箱即用