dubbo的使用
dubbo现在用的也不多,基本都在用spring cloud那一套,所以不详细写这个dubbo了。
2.demo示例
我们需要把提供者注册到dubbo注册中心,消费者去订阅
2.1:新建一个空的项目,先不建module

2.2:新建提供者(provider)模块
file->new->module,选择spring initializr
勾选上web

新建service及其实现类
public interface ProviderService {
String provideSomething();
}
package com.sunsas.provider.service.impl; import com.sunsas.provider.service.ProviderService;
import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component; @Component
//将服务发布出去,注意此Service是dubbo包的
@Service
public class ProviderServiceImpl implements ProviderService {
@Override
public String provideSomething() {
return "something";
}
}

引入dubbo依赖
<!-- 引入spring-boot-starter以及dubbo和curator的依赖 -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
修改application.properties
server.port=8082
# 服务名称,保持唯一
dubbo.application.name=provider
# zookeeper地址,用于从中获取注册的服务
dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.scan.base-packages=com.sunsas.provider.service
appliacation 类加上@EnableDubbo注解
@EnableDubbo
@SpringBootApplication
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
启动provider项目,注意需要先启动zookeeper。
2.3:新建消费者(consumer)模块
file->new->module,选择spring initializr,同样选中web模块,引入dubbo依赖
<!-- 引入spring-boot-starter以及dubbo和curator的依赖 -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
修改application.properties
server.port=8081
# 服务名称,保持唯一
dubbo.application.name=consumer
# zookeeper地址,用于从中获取注册的服务
dubbo.registry.address=zookeeper://127.0.0.1:2181
新建service类,这里直接用类,没有实现接口。
import com.alibaba.dubbo.config.annotation.Reference;
import com.sunsas.provider.service.ProviderService;
import org.springframework.stereotype.Service; @Service
public class ConsumerService {
@Reference
private ProviderService providerService; public String consumer(){
return providerService.provideSomething();
}
}
还要复制provider中的ProviderService
package com.sunsas.provider.service;
public interface ProviderService {
String provideSomething();
}
新建controller测试接口
import com.sunsas.comsumer.service.ConsumerService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController
public class TestController {
@Resource
private ConsumerService consumerService; @RequestMapping("/test")
public String test(){
return consumerService.consumer();
}
}
结构如图:

发送请求测试
http://localhost:8081/test
需要注意的是复制ProviderService路劲要一致,否则可能空指针。
dubbo的使用的更多相关文章
- 用dubbo时遇到的一个序列化的坑
首先,这是标题党,问题并不是出现在序列化上,这是报错的一部分: Caused by: com.alibaba.dubbo.remoting.RemotingException: Failed to s ...
- dubbo服务提供与消费
一.前言 项目中用到了Dubbo,临时抱大腿,学习了dubbo的简单实用方法.现在就来总结一下dubbo如何提供服务,如何消费服务,并做了一个简单的demo作为参考. 二.Dubbo是什么 Dubbo ...
- 分布式学习系列【dubbo入门实践】
分布式学习系列[dubbo入门实践] dubbo架构 组成部分:provider,consumer,registry,monitor: provider,consumer注册,订阅类似于消息队列的注册 ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
- Dubbo 备注
Dubbo是阿里开源的一款服务治理中间件,主要包含如下节点: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发现的注册中心. ...
- Dubbo学习小记
前言 周一入职的新公司,到了公司第一件事自然是要熟悉新公司使用的各种技术,搭建本地的环境. 熟悉新公司技术的过程中,首先就是Maven,这个前面已经写过文章了,然后就是Dubbo----公司的服务都是 ...
- Running Dubbo On Spring Boot
Dubbo(http://dubbo.io/) 是阿里的开源的一款分布式服务框架.而Spring Boot则是Spring社区这两年致力于打造的简化Java配置的微服务框架. 利用他们各自优势,配置到 ...
- 【转】Dubbo使用例子并且和Spring集成使用
一.编写客户端和服务器端共用接口类1.登录接口类public interface LoginService { public User login(String name, String psw ...
- 基于SOA分布式架构的dubbo框架基础学习篇
以需求用例为基,抽象接口,Case&Coding两条线并行,服务(M)&消费(VC)分离,单元.接口.功能.集成四层质量管理,自动化集成.测试.交付全程支持. 3个大阶段(需求分析阶段 ...
- dubbo连接zookeeper注册中心因为断网导致线程无限等待问题【转】
最近维护的系统切换了网络环境,由联通换成了电信网络,因为某些过滤规则导致系统连不上zookeeper服务器(应用系统机器在深圳,网络为电信线路,zookeeper服务器在北京,网络为联通线路),因为我 ...
随机推荐
- Guava入门使用教程
Guava入门使用教程 Guava Maven dependency In our examples, we use the following Maven dependency. <depen ...
- 研究微信红包分配算法之Golang版
今天来看一下红包的分配,参考几年前流传的微信红包分配算法,今天用Golang实现一版,并测试验证结果. 微信红包的随机算法是怎样实现的?https://www.zhihu.com/question/2 ...
- Jmeter——使用JSR223元件实现RSA登录加密
一.RSA加密简介 RSA加密是一种非对称加密.可以在不直接传递密钥的情况下,完成解密.这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险.是由一对密钥来进行加解密的过程,分别称为公钥和私 ...
- 13.深度学习(词嵌入)与自然语言处理--HanLP实现
笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 13. 深度学习与自然语言处理 13.1 传统方法的局限 前面已经讲过了隐马尔可夫 ...
- javascript原生js轮播图
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- springboot 基于Tomcate的自启动流程
Springboot 内置了Tomcat的容器,我们今天来说一下Springboot的自启动流程. 一.Spring通过注解导入Bean大体可分为四种方式,我们主要来说以下Import的两种实现方法: ...
- 学习shiro最佳实践,绝对正确
按照https://blog.csdn.net/qq_34021712/column/info/26947学习,基本能解决shiro一切问题,谢谢该博主
- [未完成]ECRound 80
Educational Codeforces Round 80 (Rated for Div. 2)A 大意:寻找x使得等式<=n,若满足情况输出YES否则NO 解法:纯数学题,先构造函数f(x ...
- Python学习小记(2)---[list, iterator, and, or, zip, dict.keys]
1.List行为 可以用 alist[:] 相当于 alist.copy() ,可以创建一个 alist 的 shallo copy,但是直接对 alist[:] 操作却会直接操作 alist 对象 ...
- SAP 如何看某个TR是否传入了Q或者P系统?
SAP 如何看某个TR是否传入了Q或者P系统? 两种方式可以查询. 1)进入Q系统或者P系统.SE16,看表TPALOG, 输入请求号码, 执行,看记录里的字段TPSTAT_KEY是否为空,如果不为空 ...