SpringBoot整合Dubbo学习(初)

@TOC

dubbo

核心

  • 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
  • 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
  • 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

Dubbo服务接口

Dubbo官方开发建议,创建一个接口项目,该项目只定义接口和model类,它是个Java 的maven项目即可
打成jar包给服务提供者使用
在这里插入图片描述

Dubbo服务提供者

是web项目
项目中与数据库交互的代码也在此项目中写

  1. 配置pom.xml文件的依赖

    <!-- 添加dubbo依赖 -->
    <dependency>
    	<groupId>com.alibaba.spring.boot</groupId>
    	<artifactId>dubbo-spring-boot-starter</artifactId>
    	<version>2.0.0</version>
    </dependency>
    <!-- dubbo需要把服务注册到zookeeper上, 添加zookeeper依赖 -->
    <dependency>
    	<groupId>com.101tec</groupId>
    	<artifactId>zkclient</artifactId>
    	<version>0.10</version>
    	<!-- 排除某些不需要的依赖 -->
    	<exclusions>
    		<exclusion>
    			<groupId>org.sl4j</groupId>
    			<artifactId>sl4j-log4j12</artifactId>
    		</exclusion>
    		<exclusion>
    			<groupId>log4j</groupId>
    			<artifactId>log4j</artifactId>
    		</exclusion>
    	</exclusions>
    </dependency>
    <!-- 添加自定义的Dubbo服务接口依赖 -->
    <dependency>
    	<groupId>com.springBoot.dubbo</groupId>
    	<artifactId>springBoot-dubbo-interface</artifactId>
    	<version>1.0.0</version>
    </dependency>
    
  2. 配置application.properties文件

    #项目服务名通常是创建的工程名
    spring.application.name=springBoot-dubbo-interface
    #dubbo应用名(可以没有)
    spring.dubbo.appname=springBoot-dubbo-interface
    #dubbo注册中心(这里用的zookeeper)
    spring.dubbo.registry=zookeeper://127.0.0.1:2181
    
  3. 实现自定义服务接口
    在实现的service类上需加上@service(spring的)和@service(dubbo的@com.alibaba.dubbo.config.annotation.service)两个注解

    @service//(spring的)
    @com.alibaba.dubbo.config.annotation.Service//(dubbo的)
    public class ServiceImpl implements Service{
    
    }
    
  4. 在启动入口加上dubbo自动化配置支持开启的注解

    @SpringBootApplication
    @EnableDubboConfiguration
    public class Application{
    		........
    }
    

Dubbo服务消费者

是web项目

  1. 配置pom.xml文件的依赖

    <!-- 添加dubbo依赖 -->
    <dependency>
    	<groupId>com.alibaba.spring.boot</groupId>
    	<artifactId>dubbo-spring-boot-starter</artifactId>
    	<version>2.0.0</version>
    </dependency>
    <!-- dubbo需要把服务注册到zookeeper上, 添加zookeeper依赖 -->
    <dependency>
    	<groupId>com.101tec</groupId>
    	<artifactId>zkclient</artifactId>
    	<version>0.10</version>
    	<!-- 排除某些不需要的依赖 springboot默认的是logback日志-->
    	<exclusions>
    		<exclusion>
    			<groupId>org.sl4j</groupId>
    			<artifactId>sl4j-log4j12</artifactId>
    		</exclusion>
    		<exclusion>
    			<groupId>log4j</groupId>
    			<artifactId>log4j</artifactId>
    		</exclusion>
    	</exclusions>
    </dependency>
    <!-- 添加自定义的Dubbo服务接口依赖 -->
    <dependency>
    	<groupId>com.springBoot.dubbo</groupId>
    	<artifactId>springBoot-dubbo-interface</artifactId>
    	<version>1.0.0</version>
    </dependency>
    
  2. 配置application.properties文件

    #项目服务名通常是创建的工程名
    spring.application.name=springBoot-dubbo-customer
    #dubbo应用名(可以没有)
    spring.dubbo.appname=springBoot-dubbo-customer
    #dubbo注册中心(这里用的zookeeper)
    spring.dubbo.registry=zookeeper://127.0.0.1:2181
    
  3. 写controller
    调用service时使用@Reference注解

    @RestController
    public class Controller{
    
    	//阿里的包
    	//引用远程dubbo服务
    	@Reference
    	private Service service;
    }
    
  4. 在启动入口加上dubbo自动化配置支持开启的注解

    @SpringBootApplication
    @EnableDubboConfiguration
    public class Application{
    		........
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值