DUBBO功能使用说明
1) 消费方项目引入服务提供方的api jar包 2)在dubbo服务引用配置文件中添加对应的标签 <dubbo:reference id="accountService" interface="com.ibm.netbank.store.service.IAccountService"> </dubbo:reference> 3)在CustomerService实现类中添加成员变量,并添加@AutoWired注解让spring自动完成该service的注入。 @Autowired public IAccountService accountService; 4)代码中调用 accountService.getAccount(name) 【DUBBO功能使用说明】 DUBBO是一个由阿里巴巴开源的高性能、轻量级的Java分布式服务框架,它主要提供RPC(远程过程调用)服务和SOA(面向服务架构)服务治理方案。其核心特性包括透明化的远程方法调用、软负载均衡、容错机制和服务注册与发现。 1. **透明化的远程方法调用**: DUBBO允许开发者像调用本地方法一样调用远程服务,无需关注底层的网络通信细节。这得益于它的接口驱动设计,只需要简单的配置,即可实现服务调用,对现有代码几乎没有侵入性。 2. **软负载均衡与容错机制**: DUBBO内置了多种负载均衡策略,如轮询、随机、最少活跃调用数等,可以在服务消费者调用服务提供者时动态分配请求,减少单点故障。同时,DUBBO还提供了失败重试、降级、隔离等容错机制,保证服务的高可用性。 3. **服务自动注册与发现**: 当服务提供者启动时,会自动向注册中心注册自己的服务接口和地址,而服务消费者则可以通过接口名查询到提供者的IP地址,实现服务的动态发现。这种机制使得服务的增删可以平滑进行,无需修改消费者的代码。 ### **服务间调用** 服务间的调用是DUBBO的核心功能之一,通常包括以下几个步骤: 1. **引入服务提供方的API**: 消费者项目需要引入服务提供方的API jar包,这样就可以在消费者代码中使用服务提供方的接口。 2. **配置服务引用**: 在消费者的dubbo配置文件中,添加`<dubbo:reference>`标签,指定要引用的服务接口和ID,例如: ```xml <dubbo:reference id="accountService" interface="com.ibm.netbank.store.service.IAccountService"/> ``` 3. **服务注入**: 在消费者服务的实现类中,使用Spring的`@Autowired`注解,让Spring自动完成服务的注入,例如: ```java @Autowired public IAccountService accountService; ``` 4. **调用服务**: 然后在业务逻辑中直接调用注入的服务,如`accountService.getAccount(name)`。 ### **服务异步调用** DUBBO还支持服务的异步调用,这在处理并行任务或非阻塞调用时非常有用。以下是如何实现服务异步调用的步骤: 1. **模拟耗时操作**: 在服务提供方定义两个模拟耗时的操作,如`calcuDollarBenifit()`和`calcuRmbBenifit()`。 2. **暴露服务**: 在服务提供方的配置文件中,将服务暴露出去,指定服务接口和实现类。 3. **消费者引用服务**: 在消费者方的配置文件中,引用服务并设置异步调用和超时时间,例如: ```xml <dubbo:reference id="accountService" interface="com.ibm.netbank.multiservices.service.IAccountService" url="dubbo://127.0.0.1:20888"> <dubbo:method name="calcuDollarBenifit" async="true" timeout="10000"/> ... </dubbo:reference> ``` 通过这些配置,消费者可以并行调用服务,提高系统整体的并发处理能力。 在实际应用中,需要注意服务治理的最佳实践,比如将核心服务下沉,避免服务中心间的直接调用,使用专门的服务治理工具来管理服务依赖关系和启动顺序,以及通过配置文件分离服务提供与消费的配置等。这些措施能确保系统的稳定性和可扩展性。
剩余16页未读,继续阅读
- dfdfdsfasdfasd2016-04-07好好学习一哈
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助