- 浏览: 695189 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (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配置文件编写和加载方法介绍
restful风格rpc服务协议rest,定义的语法如下:
(rest::a/b/c/d)/rpc.test
协议头:rest
节点路由组:a/b/c/d,以/分割的服务器路由节点列表,执行顺序由左到右
服务id:rpc.test,配置在aop框架中的一般业务组件
Rest协议服务调用示意图如下:
系统将逐步解析a/b/c这三个节点的地址:
a,b,c分别代表远程服务器地址
系统根据a,b,c的顺序来路由远程服务调用,首先将远程请求发送到a服务器,然后由a路由到b服务器,再由b路由到c服务器
当c处理完请求后再将结果返回给b,b再返回给a。这样就完成了一层restful风格的远程服务调用过程。
a,b,c分别代表服务器的标识符,这个标识符可以对应于一个真正的物理服务器地址,他们之间的映射关系可以在一个注册中心中维护
每个服务器都会有这样一个注册中心用来存放在本机注册的标识符和物理服务器地址的映射关系。
aop框架提供了一个接口来获取映射关系:
org.frameworkset.spi.remote.restful.RestfulServiceConvertor
接口方法为:
public String convert(String restfuluddi,String serviceid);
其中参数restfuluddi对应于服务器标识符a,b,c,参数serviceid为请求的远程服务id
经过该方法转换的地址:可以为以下格式:
"(" + protocol + "::" + uri + ")/" + serviceid + "?user=" + user + "&password=" + password;
其中的protocol,uri,user,password就是根据服务器标识符从注册中心中查询出的信息。
以下是一个简单的接口实现:
RestfulServiceConvertor接口的实现类被配置在manager-rpc-service.xml文件中:
开发人员可以实现自己的地址转换器,直接替换rpc.restful.convertor配置即可。
再看看一个简单restful风格的服务调用示例:
补充说明:
框架在解析rest风格的地址时,能够自动识别节点对应的地址是否是本地地址,假设存在以下地址:
(rest::a/b/c)/rpc.test
如果框架在解析地址时,发现a是本地地址,将继续解析下一个地址b,直到碰到一个远程地址时才执行远程服务调用,如果全部是本地地址,那么整个rest风格的远程服务调用就是一个本地调用。
rest风格地址中节点对应的物理地址的协议可以是aop框架目前提供的协议中的任何一种:jms,webservice,mina,jgroups
rest风格地址后面带的认证参数将被忽略。
Rest协议只支持单播调用,不支持多播调用。
(rest::a/b/c/d)/rpc.test
协议头:rest
节点路由组:a/b/c/d,以/分割的服务器路由节点列表,执行顺序由左到右
服务id:rpc.test,配置在aop框架中的一般业务组件
Rest协议服务调用示意图如下:
系统将逐步解析a/b/c这三个节点的地址:
a,b,c分别代表远程服务器地址
系统根据a,b,c的顺序来路由远程服务调用,首先将远程请求发送到a服务器,然后由a路由到b服务器,再由b路由到c服务器
当c处理完请求后再将结果返回给b,b再返回给a。这样就完成了一层restful风格的远程服务调用过程。
a,b,c分别代表服务器的标识符,这个标识符可以对应于一个真正的物理服务器地址,他们之间的映射关系可以在一个注册中心中维护
每个服务器都会有这样一个注册中心用来存放在本机注册的标识符和物理服务器地址的映射关系。
aop框架提供了一个接口来获取映射关系:
org.frameworkset.spi.remote.restful.RestfulServiceConvertor
接口方法为:
public String convert(String restfuluddi,String serviceid);
其中参数restfuluddi对应于服务器标识符a,b,c,参数serviceid为请求的远程服务id
经过该方法转换的地址:可以为以下格式:
"(" + protocol + "::" + uri + ")/" + serviceid + "?user=" + user + "&password=" + password;
其中的protocol,uri,user,password就是根据服务器标识符从注册中心中查询出的信息。
以下是一个简单的接口实现:
public class RestfulServiceConvertorImplTest implements RestfulServiceConvertor { public String convert(String restfuluddi, String serviceid) { if(restfuluddi.equals("a")) { String uri = "172.16.17.216:1187"; String user = "admin"; String password = "123456"; String protocol = "mina"; String returl = "(" + protocol + "::" + uri + ")/" + serviceid + "?user=" + user + "&password=" + password; return returl; } else if(restfuluddi.equals("b")) { String uri = "172.16.17.216:1187"; String user = "admin"; String password = "123456"; String protocol = "mina"; String returl = "(" + protocol + "::" + uri + ")/" + serviceid + "?user=" + user + "&password=" + password; return returl; } else if(restfuluddi.equals("c")) { String uri = "172.16.17.216:1187"; String user = "admin"; String password = "123456"; String protocol = "mina"; String returl = "(" + protocol + "::" + uri + ")/" + serviceid + "?user=" + user + "&password=" + password; return returl; } else if(restfuluddi.equals("d")) { String uri = "172.16.17.216:1187"; String user = "admin"; String password = "123456"; String protocol = "mina"; String returl = "(" + protocol + "::" + uri + ")/" + serviceid + "?user=" + user + "&password=" + password; return returl; } else { String uri = "172.16.17.216:1187"; String user = "admin"; String password = "123456"; String protocol = "jgroup"; String returl = "(" + protocol + "::" + uri + ")/" + serviceid + "?user=" + user + "&password=" + password; return returl; } } }
RestfulServiceConvertor接口的实现类被配置在manager-rpc-service.xml文件中:
<!-- restful风格地址转换器 --> <property name="rpc.restful.convertor" singlable="true" class="org.frameworkset.spi.serviceid.RestfulServiceConvertorImplTest"/>
开发人员可以实现自己的地址转换器,直接替换rpc.restful.convertor配置即可。
再看看一个简单restful风格的服务调用示例:
RPCTestInf testInf = (RPCTestInf)BaseSPIManager.getBeanObject("(rest::a/b/c/d)/rpc.test"); //循环执行10次服务调用 for(int i = 0; i < 10; i ++) { try { System.out.println("testInf.getCount():" + i + " = "+testInf.getCount()); } catch(Exception e) { e.printStackTrace(); } }
补充说明:
框架在解析rest风格的地址时,能够自动识别节点对应的地址是否是本地地址,假设存在以下地址:
(rest::a/b/c)/rpc.test
如果框架在解析地址时,发现a是本地地址,将继续解析下一个地址b,直到碰到一个远程地址时才执行远程服务调用,如果全部是本地地址,那么整个rest风格的远程服务调用就是一个本地调用。
rest风格地址中节点对应的物理地址的协议可以是aop框架目前提供的协议中的任何一种:jms,webservice,mina,jgroups
rest风格地址后面带的认证参数将被忽略。
Rest协议只支持单播调用,不支持多播调用。
发表评论
-
bboss ioc快速入门教程
2017-08-13 11:28 1276bboss是一个非常不错的ioc框架,功能类似于spr ... -
bboss ioc配置文件中使用外部属性文件介绍
2016-09-20 11:35 1144bboss ioc配置文件中使用外部属性文件介绍 与spri ... -
bboss与spring中配置和引用bboss数据源和bboss dao组件方法说明
2016-08-10 16:04 916首先在项目中导入bboss 持久层包: maven坐标 & ... -
bboss ioc提供的组件初始化工具类介绍
2016-03-18 16:17 738bboss ioc提供的组件初始化工具类介绍 bboss i ... -
扩展bboss ioc语法实现自定义的ioc依赖注入功能
2015-01-20 23:08 1329bboss ioc配置语法简洁而严谨,提供了强大的依赖注入功能 ... -
bboss webservice引擎使用方法
2014-11-16 11:23 923bboss webservice引擎使用方法,请参考文档:bb ... -
bboss序列化cglib代理对象方法介绍
2014-06-22 15:14 1160本文介绍bboss序列化cglib代理对象方法。经过cglib ... -
bboss自定义类对象序列化机制介绍
2014-05-26 23:32 1471bboss自定义类对象序列 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1654bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1088bboss发布apache cxf 2.7.6服务和定义客户端 ... -
bboss 发布和使用hessian服务方法介绍
2013-02-25 23:21 2113hessian是一款性能非常不错的RPC通讯组件,最近抽空将b ... -
bboss quartz组件全攻略
2013-01-27 13:31 2621bboss quartz组件全攻略 本 ... -
bboss aop拦截器使用简介
2012-11-29 23:20 1207bboss aop拦截器使用简介, ... -
bboss ioc容器之间组件引用方法简介
2012-08-04 15:09 1337bboss ioc容器之间组件引用方法简介。我们可以在ioc容 ... -
解决cxf+bboss发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题
2012-06-19 10:11 1792cxf+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 rpc使用介绍
2011-10-29 23:37 1642bboss 3.4及后续版本在原有的rpc功能基础上做了非常大 ... -
Bboss和xstream序列化/反序列化性能对比
2011-10-13 00:18 1983Bboss和xstream序列化/反序列化性能对比 本报告分别 ...
相关推荐
2018年Elastic中国开发者大会闪电演讲材料-Bboss ES简介
整合springboot+bboss+elasticsearch,实现java对es的操作 需要修改的配置 application.yml文件: basePath:对应mapper.xml文件存放的位置 indexs:es的全部索引,以逗号分隔 es: basePath: esmapper indexs: ...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
然后切换到bboss-elasticsearch目录下的cmd窗口,运行gradle build命令: gradle publishToMavenLocal 从源代码指南构建: 如何使用 Elasticsearch BBoss。 首先将BBoss的maven依赖添加到你的pom.xml中: < ...
Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿
BBoss框架的最新版本bbossgroups-bboss-389b83a可能包含了对原有功能的优化、新特性的添加以及bug修复。开发者在使用时,应详细阅读官方文档,了解其具体变更,以便更好地利用这一强大的工具进行企业级应用的开发。 ...
环境要求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命令: ...
3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...
【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...
- Maven坐标中需引入bboss-elasticsearch-rest-hbase和对应版本的hbase-shaded-client依赖库。 3. **HBase-Elasticsearch同步示例** - Bboss提供了不同类型的示例,如`HBase2ESScrollTimestampDemo223`是针对...
bboss框架集成了AOP/iOC、MVC、持久化标签库、RPC、事件处理、Bean-XML序列化等多种功能。本项目基于bboss框架构建了数据采集ETL工具、流批一体化Stream工具、Elasticsearch客户端工具和WebSession共享框架等应用。
**bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...
BBoss MVCDemo 是一个基于Java的企业级应用框架,它主要为开发者提供了一种高效、灵活的MVC(Model-View-Controller)开发模式。这个框架的目的是简化企业级Web应用的开发流程,提高开发效率,并且具备良好的可扩展...
BBoss(Business Boss)是基于Elasticsearch的一个强大且灵活的开发框架,它简化了Elasticsearch在企业级应用中的集成和开发工作。 **一、Elasticsearch简介** Elasticsearch 以其分布式、RESTful 风格的 API 而...
bboss是一个j2ee开源框架,为企业级应用开发提供一站式解决方案,并能有效地支撑移动应用开发。bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布...
bboss集团网站: bboss组项目博客: bboss版本重建方法 gradle安装 开发工程生成方法: dle蚀 Gradle的想法 亦可以直接通过idea或eclipse gradle插件将下载的...bboss rpc原始码 github托管地址 svn下载地址 b
bboss-datatran 由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能。 同时也是一个高性能Elasticsearch orm 客户端,100%兼容es各个版本 ...
官方版本,亲测可用