`
geeksun
  • 浏览: 952942 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Dubbo与Spring的配合使用

阅读更多

Dubbo是一个服务治理框架,对分布式服务的管理和治理、监控有较好的实现。

 

本案举例说明Dubbo与Spring的配合使用:

1.  Maven引入dubbo的配置

<dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.3</version>
</dependency>

 

2.  增加Spring的Dubbo provider配置文件 spring-dubbo-provider.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.alibabatech.com/schema/dubbo
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        ">
    <!-- 提供方应用名称信息,这个相当于起一个名字,在dubbo管理页面比较清晰是哪个应用暴露出来的 -->
    <dubbo:application name="user_provider"/>
    <!-- 使用zookeeper注册中心注册服务 -->
    <dubbo:registry address="${zookeeper.registry}"/>

    <dubbo:protocol port="${dubbo.provider.port}"/>

    <dubbo:monitor protocol="registry"/>
    <!-- 暴露的服务接口 -->
    <dubbo:service interface="com.test.api.UserService"
                   ref="userService" timeout="5000" retries="2" />

    <bean id="userService" class="com.test.service.UserServiceImpl" />

</beans>

 

3. 接口和实现类代码:

UserService接口:

public interface UserService {
   public String hello(String name);
}

 

UserServiceImpl类:

public interface UserServiceImpl implement UserService {
   public String hello(String name){
        return "hello"+name;
   }
}

 

4. 消费方的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.alibabatech.com/schema/dubbo
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        ">

    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="user_consumer" />

    <dubbo:registry address="${zookeeper.registry}"/>
    <dubbo:monitor protocol="registry"/>

    <!-- 注册中心配置 -->
    <dubbo:reference id="userPointsFacade" interface="com.dmall.points.api.UserPointsFacade" timeout="10000" check="false" />

</beans>

 

5. 测试类

public class UserPonitsTest {

    public static void main(String[] args) throws InterruptedException{
        start();
    }
    public void testApp() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"spring/dubbo-consumer.xml"});
        context.start();

        try {
            System.in.read();               //  为保证服务一直开着,利用输入流的阻塞来模拟
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

 

 

6. 使用dubbo-admin包可以对dubbo的服务进行管理和监控。

 

 

 

分享到:
评论
2 楼 菜鸟学生会 2018-03-28  
Spring与dubbo分布式REST服务开发实战
网盘地址:https://pan.baidu.com/s/1IW1d1QGFQPHi0DlUKQKk-A 密码: yypv
备用地址(腾讯微云):https://share.weiyun.com/5tGRxHz 密码:xgbjjn



课程学完以后能够达到的效果:


1.可以独立搭建分布式RESTful API开发框架

2.可以使用Spring Boot和Spring IO简化Spring项目的配置,提高开发速度。

3.可以使用Spring Data JPA操作关系型数据库,完全面向对象,零SQL的快速开发数据库持久层服务,掌握如何控制自动生成的SQL,确保整个数据库持久层的性能。

4.可以使用Spring MVC快速开发RESTful的API,并处理WEB层常见的问题。掌握异常的处理,文件上传下载,服务的伪造和文档的自动生成,使用异步方式处理Http请求以提高中间件吞吐量等技术。

5.可以使用Spring Security保护RESTful API的安全,通过JavaConfig的方式快速实现各种常见的认证授权需求。掌握‘记住我’,Session管理,第三方(QQ,微信,微博等)登录,单点登录等常见需求的实现方式。

6.理解分布式服务架构,使用Dubbo搭建分布式服务框架,并与Spring Boot和Spring framework结合,处理服务的日志、事务、消息、缓存、定时任务,多线程等问题。
1 楼 奔跑的码侬 2017-05-23  
基于 Spring + Dubbo 开发分布式REST服务实战:http://www.roncoo.com/article/detail/128252

相关推荐

Global site tag (gtag.js) - Google Analytics