一、包引入

1、父模块pom.xml中加入依赖:

      <!-- dubbo -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>

我这里还引入了SpringBoot和一些常用组件

    <!--Add Spring boot Parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent> <dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
<!--SpringBoot核心模块,包括自动配置支持、日志和YAML-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--测试模块,包括JUnit、Hamcrest、Mockito-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency> <!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
</dependency>
<!-- JPA操作数据库 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<!--Web模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
</dependencies>

2、服务提供者子模块的application.properties中加入下列配置

server.port=
spring.application.name=dubbo-provider-users
dubbo.application.name=dubbo-provider-users
dubbo.registry.protocol=zookeeper
dubbo.registry.address=172.16.4.132:|172.16.4.131:|172.16.4.133:
dubbo.protocol.name=dubbo
dubbo.protocol.port=
dubbo.scan.base-packages=com.test.usersservice
dubbo.consumer.timeout=
dubbo.provider.timeout=
dubbo.registry.timeout=
dubbo.consumer.retries=
dubbo.provider.retries=
dubbo.consumer.callbacks=
dubbo.provider.callbacks=
dubbo.consumer.check=false
dubbo.registry.check=false
dubbo.application.qos-enable=false

发部服务,可以这样:

import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.List; @Service(version = "1.0.0")
@RestController
public class UserProvider implements IUserProvider { @Resource
private TenantBusiness tenantBusiness; @Override
public FuncResultBo<UserVo> createUser(UserVo user, ApiKeyVo api_info) {
return tenantBusiness.createUser(user, api_info);
}
}

3、服务提供者SpringBoot启动类中加入:@EnableDubbo属性标记,例如我的:

package com.test.usersservice;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @Configuration
@SpringBootApplication()
@ComponentScan({"com.test"})
@EnableJpaRepositories(basePackages = {"com.test.repository"})
@EnableAutoConfiguration
@EntityScan("com.test.domain.po")
@EnableDubbo
public class UsersProviderApplication { public static void main(String[] args) {
SpringApplication.run(UsersProviderApplication.class, args);
}
}

4、消费者的application.properties中加入:

spring.application.name=dubbo-consumer-backendsync
dubbo.application.name=dubbo-consumer-backendsync
dubbo.registry.protocol=zookeeper
dubbo.registry.address=172.16.4.131:|172.16.4.132:|172.16.4.133:
dubbo.scan.base-packages=com.test.syncbackend
dubbo.protocol.name=dubbo
dubbo.protocol.port=
dubbo.consumer.timeout=
dubbo.provider.timeout=
dubbo.registry.timeout=
dubbo.consumer.retries=
dubbo.provider.retries=
dubbo.consumer.callbacks=
dubbo.provider.callbacks=
dubbo.consumer.check=true
dubbo.registry.check=false
dubbo.application.qos-enable=false

5、在消费者启动类中,可以加入EnableDubbo属性标记

@SpringBootApplication
@EnableAutoConfiguration
@EntityScan("com.test.domain.po")
@ComponentScan("com.test")
@PropertySource({"classpath:schedule.properties"})
@EnableJpaRepositories(basePackages = "com.test.repository")
@EnableScheduling
@EnableDubbo
public class BackendApplicationServer {
public static void main(String[] args) {
SpringApplicationBuilder springApplicationBuilder = new SpringApplicationBuilder(BackendApplicationServer.class);
springApplicationBuilder.web(WebApplicationType.NONE);
springApplicationBuilder.run(args);
}
}

消费者中调用服务:

    @Reference(version = "1.0.0", timeout = 360000)
private ITenantProvider iTenantProvider = null;

Reference属性类完整路径位于:import com.alibaba.dubbo.config.annotation.Reference;

Dubbo的使用入门的更多相关文章

  1. Maven+SpringMVC+Dubbo 简单的入门demo配置

    转载自:https://cloud.tencent.com/developer/article/1010636 之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程 ...

  2. Dubbo实战快速入门 (转)

    Dubbo是什么? Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封 ...

  3. ZooKeeper分布式专题与Dubbo微服务入门

    第1章 分布式系统概念与ZooKeeper简介对分布式系统以及ZooKeeper进行简介,使得大家对其有大致的了解1-1 zookeeper简介1-2 什么是分布式系统1-3 分布式系统的瓶颈以及zk ...

  4. Dubbo教程:入门到实战

    Dubbox简介 Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护 ...

  5. Dubbo3 源码系列 Dubbo“纠葛”(入门篇)

    日期 更新说明 2022年5月28日 spring xml部分解读 2022年6月3日 spring annotation部分解读 人生不相见, 动如参与商. 今夕复何夕, 共此灯烛光. 少壮能几时, ...

  6. 深度学习Dubbo系列(入门开篇)

    此文档为系列学习文档 这系列文档详细讲解了dubbo的使用,基本涵盖dubbo的所有功能特性.在接下来的文章里会详细介绍. 如果你正依赖dubbo作为你业务工程的RPC通信框架,这里可以作为你的参考手 ...

  7. dubbo 接口初入门

    最近公司开发新的一套系统,开发出来的方案会基于dubbo分布式服务框架开发的,那么什么是dubbo,身为测试的我,第一眼看到这个,我得去了解了解dubbo是啥玩意,为开展的测试工作做准备,提前先学 d ...

  8. 170328、Maven+SpringMVC+Dubbo 简单的入门demo配置

    之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程序猿来说,真是一个好消息.最近有时间了,打算做一个demo把dubbo在本地跑起来先. 先copy一段dubbo ...

  9. 【Dubbo】Dubbo+ZK基础入门以及简单demo

    参考文档: 官方文档:http://dubbo.io/ duboo中文:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/backgr ...

随机推荐

  1. BBC 记录片planet earth

    He'll have to remain on guard for another two weeks, but in the jungle, just surviving the day can c ...

  2. brew装snappy

    brew装snappy,我在mac上已经开了socks5代理,也尝试了lantern或者duotai.org,结果都下载不动. 解决方法:把snappy包手动从浏览器下载,然后放到缓存目录,再执行br ...

  3. 微信h5支付源码DEMO参考

    类库代码 wechatH5Pay.php <?php //use Flight; /** * 微信支付服务器端下单 * 微信APP支付文档地址: https://pay.weixin.qq.co ...

  4. IntentService用法

    IntentService 用完即走     IntentService,可以看做是Service和HandlerThread的结合体,在完成了使命之后会自动停止,适合需要在工作线程处理UI无关任务的 ...

  5. gitlab的docker安装,非标准端口,如何处理?

    这个问题的定义是: 如果我们不是用的80端口对外提供服务, 但gitlab的docker容器里的nginx却是80端口, 那么,在我们clone代码时,带的Http地址也会是80端口,这显然会出现问题 ...

  6. JVM GC-----4、finalize()方法

    finalize()方法是Object类中定义的protect方法.每一个类都可以重写该方法,给出自己的实现.当类在被回收期间,这个方法就可能会被调用到. 为什么说可能?这是由于finalize()的 ...

  7. P2031 脑力达人之分割字串

    P2031 脑力达人之分割字串字符串dp,f[i]表示主串到第i个字符,最多能分割成多少子串.f[i]=max(f[i],f[k]+1);k是能匹配到的前一位. #include<iostrea ...

  8. Docker镜像优化

    前言 上篇博文说到使用Visual Studio Tools for Docker帮助我们生成Dockerfile,现在我们讨论下生成的Dockerfile的优劣. 一.以往Dockerfile构建模 ...

  9. Java并发编程快速学习

    上周的面试中,被问及了几个关于Java并发编程的问题,自己回答的都不是很系统和全面,可以说是"头皮发麻",哈哈.因此果断购入<Java并发编程的艺术>一书,学习后的体会 ...

  10. SpringMvc @ResponseBody

    一.@Response使用条件 二. @Response在最小配置.jackson的jar包情况下,json中包含的日期类型字段都是以时间戳long类型返回 三. Jack序列化对象转为JSON的限制 ...