Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
其核心部分包含:
- 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
- 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
- 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。
Dubbo能做什么?
- 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
- 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
- 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
Spring配置本地bean时
<bean id=“xxxService” class=“com.xxx.XxxServiceImpl” /> <bean id=“xxxAction” class=“com.xxx.XxxAction”> <property name=“xxxService” ref=“xxxService” /> </bean>
远程服务配置时,需要增加在提供方增加暴露服务配置<dubbo:service>,在消费方增加引用服务配置<dubbo:reference>
服务方配置
<!-- 和本地服务一样实现远程服务 --> <bean id=“xxxService” class=“com.xxx.XxxServiceImpl” /> <!-- 增加暴露远程服务配置 --> <dubbo:service interface=“com.xxx.XxxService” ref=“xxxService” />
消费方配置
<!-- 增加引用远程服务配置 --> <dubbo:reference id=“xxxService” interface=“com.xxx.XxxService” /> <!-- 和本地服务一样使用远程服务 --> <bean id=“xxxAction” class=“com.xxx.XxxAction”> <property name=“xxxService” ref=“xxxService” /> </bean>
来个栗子,接口
public interface DemoService { String sayHello(String name); }
实现
public class DemoServiceImpl implements DemoService { public String sayHello(String name) { return "Hello " + name; } }
服务方配置
<!-- 声明需要暴露的服务接口 --> <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" /> <!-- 和本地bean一样实现服务 --> <bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl" />
消费方配置
<!-- 生成远程服务代理,可以和本地bean一样使用demoService --> <dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" />
bubbo用户指南
http://dubbo.io/User+Guide-zh.htm
相关推荐
本篇文章将深入探讨如何在Maven环境下,配置和使用Dubbo作为服务消费者和服务提供者。 首先,让我们了解Dubbo的核心概念。服务提供者(Provider)是提供服务的实体,而服务消费者(Consumer)则是调用这些服务的...
接着,服务消费者在启动时会从Zookeeper中订阅所需的服务,获取到服务提供者的地址列表。然后,Dubbo会处理服务的调用,包括选择合适的服务器进行负载均衡,处理可能出现的网络异常,保证服务的高可用性。Spring在这...
在这个"Mavan+dubbo+spring+zookeeper"的项目实践中,我们将深入理解这些技术如何协同工作,以解决初学者可能遇到的问题。 1. Maven:Maven是一个项目管理和综合工具,它简化了Java项目的构建过程。通过定义项目的...
【标题】"dubbo+zookeeper+spring+springMVC+mybatis" 描述了一个基于这些技术构建的服务消费方与服务提供方的项目架构。在这个架构中,`Dubbo`是核心的服务框架,它负责服务的注册与发现;`Zookeeper`作为注册中心...
在本项目中,dubbo用于构建服务提供者(DubboProvider)和服务消费者(DubboConsumer)之间的通信桥梁,使得服务消费者能远程调用服务提供者的方法,实现服务的解耦和高可用性。 接下来,spring是一个开源的Java...
在Dubbo+Spring的整合中,我们可以通过Spring的XML配置或注解来声明服务提供者和服务消费者。Spring的ApplicationContext加载这些配置后,会自动完成服务的暴露和引用。 【四】Demo源码解析 1. **服务提供者**: ...
在 `Dubbo+Spring` 的实例中,`Spring` 负责配置管理,`Dubbo` 则负责服务的暴露和引用。服务提供者通过 `Spring` 配置将服务暴露给 `Dubbo`,服务消费者同样通过 `Spring` 配置引用服务。这样,服务提供者和消费者...
1.SpringBoot聚合工程整合Dubbo,实现服务提供者与服务消费者的数据调用, 2.该项目提高了自己对Spring Boot整合Dubbo的理解,并深刻的认识到了服务者与消费者之间的调用及流程 4. Dubbo配置全部采用yml文件配置,...
dubbo服务层(含所需jar包) 步骤: 1、配置本项目的applicationConsumer.xml的zookeeper路径 2、运行Main即可访问服务层的实现类 服务端请移步到:http://download.csdn.net/detail/tiantang_1986/9716561 注意...
本项目"spring+dubbo+mybatis+springMVC"就是一个典型的例子,它整合了四个非常重要的Java技术栈组件,旨在为开发者提供一套完整的后端服务开发解决方案。 首先,Spring框架是Java企业级应用开发的基石,它提供了...
本项目"springBoot+dubbo+zookeeper分布式微服务"充分利用了这三个组件的优势,构建了一个高效、可扩展且易于维护的服务网络。以下是对这些技术及其整合应用的详细说明: **SpringBoot** SpringBoot是Spring框架的...
ZooKeeper+dubbo+springMvc+Mybatis+Mysql实例,项目是由maven搭建的 整合Dubbo\spring\springMvc\Mybatis,整个压缩包中有两个项目分别是提供者和消费,启动方式是打成WAR形式放到tomcat中启动。
压缩包中的" Dubbo+Zookeeper+Spring所需jar包(全)"应该包含了这些必要的库。 3. **服务提供者配置**:创建服务提供者(Provider)的Java类,使用`@Service`注解标记服务接口的实现类。在Spring的配置文件中,定义`...
这个“springcloudalibaba微服务dubbo+sentinel+gateway+zookeeper+nacos的demo”压缩包文件,显然是一个实战示例,旨在帮助开发者理解并实践这些关键组件的集成与使用。下面将详细解析这些组件以及它们在微服务架构...
这个“dubbo+zookeeper+spring -demo”是一个实际应用了这三者的分布式系统演示项目。 1. **Dubbo服务框架**: Dubbo的核心设计理念是面向接口的编程,它允许服务提供者暴露服务,而服务消费者透明地调用。服务...
【标题】"zk+dubbo+spring本地工程"指的是一个整合了Zookeeper、Dubbo和Spring框架的本地开发环境。这个项目可能是一个分布式服务治理的示例或者开发模板,旨在帮助开发者快速搭建具备服务注册与发现、远程调用等...
在"zookpeer+dubbo+spring"的场景中,我们通常会看到以下的应用架构: 1. **服务提供者(Provider)**:服务提供者通过Spring的配置或注解将服务暴露出来,并在启动时将服务信息注册到Zookeeper上。 2. **服务消费...
不同服务之间或者多服务之间调用接口的场景实际中会经常遇到,目前市面上解决该问题比较流行的两大框架为dubbo和springcloud, 这里是一个简单的dubbo入门的案例,分为两个小案例一个和spring和结合案例,另一个是和...
总的来说,`dubbo+spring+zookeeper`的组合使得开发者能够轻松地构建分布式的微服务架构,提高了系统的可扩展性和稳定性。在实际项目中,还需要注意网络通信、容错策略、负载均衡等方面的配置,以确保服务的稳定和...
2. **配置Dubbo**:定义服务提供者和服务消费者的接口,以及相应的实现类。在配置文件中配置Dubbo的相关参数,如服务端口、协议类型、服务版本等。 3. **注册服务**:服务提供者启动时,会向Zookeeper注册自己的服务...