dubbo是阿里一款高性能,轻量级的rpc框架,有两大核心功能:远程服务调用和服务治理。本文主要介绍dubbo的运用。

一,安装注册中心zookeeper

1,为什么需要注册中心,不要能不能远程服务调用

答:可以采取服务dubbo服务直连方式(@Reference注解loadbalance属性指定调用的服务的ip端口)也能在没有注册中心情况下进行远程服务调用,但每个服务的调用需要到控制台查看ip,不利于开发。

2,为什么采用zookeeper,而不是其他

由于zookeeper工业强度很强(呵呵,以后会写一篇文章介绍),所以官方文档推荐它作为注册中心。

3,安装教程(windows为例)

3.1  官网或者百度云提取码:j5w2下载,然后解压

3.2  把conf下zoo_sample.cfg的文件名该为zoo.cfg(最好备份),进去内容指定dataDir的存放地址;还有种方法是修改bin目录下的zkEnv.cmd,把启动的配置文件指定为zoo_sample.cfg

3.3 双击zkServer.cmd启动,如果启动失败请看另一篇博文https://blog.csdn.net/qq_41274660/article/details/106986911

二,创建服务提供者消费者共有接口的maven项目

1,因为dubbo是面向接口的远程服务调用,所以需要相应的接口供服务提供者和消费者使用

2,创建接口,代码示例如下(方便复制粘贴)

package dubboImp;import test.UserAddress;import java.util.List;public interface UserService {List<UserAddress> getUserAddressList(String userId);
}

三,创建服务提供者项目

1,创建一个springboot项目(都是和springboot整合示例),引入dubbo starter依赖和二中的项目依赖

        <dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version><!--springboot2.x.x 版本对应dubbo 0.2.x版本--></dependency>

2,配置配置文件

springboot和dubbo整合有三种配置方式,这里使用最常见的配置方式,其他的请百度

server:port: 8081dubbo:application:name: boot-order-service-provider  #应用名protocol: dubbo   #协议registry:protocol: zookeeper  #指定zookeeper为注册中心address: 127.0.0.1:2181  #注册中心地址 monitor:protocol: registryprovider:timeout: 3000

3,编写需要暴露的服务和暴露服务

package com.fq.dubboprovider;import com.alibaba.dubbo.config.annotation.Service;
import dubboImp.UserService;
import org.springframework.stereotype.Component;
import test.UserAddress;import java.util.Arrays;
import java.util.List;@Service  //这个注解暴露接口,注意是dubbo中的
public class UserServiceImpl implements UserService {  @Overridepublic List<UserAddress> getUserAddressList(String userId) {UserAddress address1 = new UserAddress(1, "XXXXX", "1", "car","123456","Y");UserAddress address2 = new UserAddress(1, "YYYYYY", "2", "ea", "4562144", "Y");return Arrays.asList(address1,address2);}
}

4,启动类加@EnableDubbo,如果配置文件指定了dubbo.scan.base-package则不需要

四,创建服务消费者项目

1,除了编写消费者接口外其他步骤和三一样

2,编写消费者接口

package com.fq.dubboconsumer;import com.alibaba.dubbo.config.annotation.Reference;
import dubboImp.OrderService;
import dubboImp.UserService;
import org.springframework.stereotype.Service;
import test.UserAddress;import java.util.List;@Service
public class OrderServiceImpl implements OrderService {@Reference //引用远程服务的注解private UserService userService;public List<UserAddress> initOrder(String userId) {List<UserAddress> userAddressList = userService.getUserAddressList(userId);return userAddressList;}
}

到了这一步之后可以写一个请求去测试远程服务调用了

五,安装dubbo控制台

可以到官方github项目下载运行,为了方便这里提供已经打包好的jar包,提取码:r3sr,下载下来,控制台java -jar命令运行即可,通过http://localhost:7001/访问,用户名密码都是root。在这里对负载均衡智能容错进行管理,去探索吧

六,安装及监控中心

官网github项目下载或者百度云下载压缩包提取码:4ied,压缩包下载下来后解压,进入/assembly.bin目录双击start.bat启动,

http://localhost:8080/访问

转载请注明出处https://blog.csdn.net/qq_41274660/article/details/107009838

dubbo最全的使用教程相关推荐

  1. Blender 2.9中的真实感三维产品全流程制作学习教程

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:41节课(6h 23m) |大小:5.83 GB 含 ...

  2. Node初学者入门,一本全面的NodeJS教程,微小的web框架,能实现文件上传功能以及数据解析功能...

    Node初学者入门,一本全面的NodeJS教程 转载于:https://www.cnblogs.com/hfultrastrong/p/8036672.html

  3. Linux流量监控工具 - iftop (最全面的iftop教程)

    Linux流量监控工具 - iftop (最全面的iftop教程) 2010年07月27日 下午 | 作者:VPS侦探 在类Unix系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态 ...

  4. Python爬虫人工智能大数据全栈视频史上最全合辑教程分享!

    Python爬虫人工智能大数据全栈视频史上最全合辑教程分享! 毫无疑问Python是这两年最火的编程语言,不仅容易上手,且在多个行业都可应用.尤其今年人工智能及大数据的发展,Python将会展现更多的 ...

  5. ElasticSearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解...

    墨墨导读:之前我们分享了ElasticSearch最全详细使用教程:入门.索引管理.映射详解,本文详细介绍ElasticSearch的索引别名.分词器.文档管理.路由.搜索详解. 一.索引别名 1. ...

  6. Vue2.0史上最全入坑教程(中)—— 脚手架代码详解

    2019独角兽企业重金招聘Python工程师标准>>> 书接上文我们说道,如何利用脚手架(vue-cli)构建一个vue项目,本回书我们一起来学习分析下代码. 回顾下创建后的项目目录 ...

  7. ElasticSearch 最全详细使用教程

    一.快速入门 查看集群的健康状况 http://localhost:9200/_cat 查看ES集群的master主节点状态 #curl -XGET 'http://10.0.8.47:9200/_c ...

  8. Spider引擎分布式数据库解决方案(最全的spider教程)

    Spider引擎分布式数据库解决方案(最全的spider教程) 参考文章: (1)Spider引擎分布式数据库解决方案(最全的spider教程) (2)https://www.cnblogs.com/ ...

  9. 最全GNS3使用教程

    官方下载地址 http://www.gns3.net/download 最全GNS3使用教程 !! 我搜集的最详细的 GNS3 使用教程!! 下载地址:下载地址修复 http://www.kuaipa ...

  10. 2021年最新最全Flink系列教程_Flink快速入门(概述,安装部署)(一)(JianYi收藏)

    文章目录 引言 相关教程直通车: day01_Flink概述.安装部署和入门案例 今日目标 Flink概述 什么是批处理和流处理 为什么需要流计算 Flink的发展史 Flink的官方介绍 Flink ...

最新文章

  1. Python 实现9*9乘法表
  2. 孩子上了高一突然学不懂了,该怎么办?
  3. java鼠标事件_Java 模拟鼠标事件
  4. 前嗅ForeSpider教程:采集新浪新闻
  5. Linux串口属性设置
  6. 面试 Redis 没底?这 40 道面试题让你不再慌
  7. 程序员必读书籍及部分图书导读指南
  8. 使用代理访问百度网站 ProxyHandler python 爬虫 入门
  9. 一次因JDK夏令时导致接口输出日期格式的时间与预期时间不一致的bug排查
  10. czy的后宫——矩阵快速幂优化DP
  11. https防止注入_离子注入新法,将钢的耐磨性提高百倍
  12. Excel找最大值操作
  13. mysql截取字符串后缀_Mysql字符串截取函数SUBSTRING的用法说明
  14. python行为驱动测试开发_行为驱动开发在 Python 开发测试中的应用
  15. composer搭建php框架,利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备...
  16. linux gdb网络调试,一文入门Linux下gdb调试(二)
  17. 岁月你别催 该来的我不推;岁月你别催 走远的我不追;
  18. 使用jspdf将网页转化成pdf(解决滚动条以外变成黑色问题及缺少echarts图表问题)
  19. XQuartz for mac问题总结
  20. CDA level 2级课堂笔记

热门文章

  1. Rhino基础教程---三管混接
  2. 基于stc15f2k60s2芯片单片机编程(按键的长短按)
  3. Python解微分方程(验证数学建模第五版火箭发射模型)
  4. 学生优化--文本框限制
  5. QT+Opencv视频文件TCP网络传输
  6. oracle认证视频教程,Oracle认证专家视频教程-OCP全套教程之学习笔记-RMAN-CATALOG
  7. 【数学建模】相关软件
  8. matlab遗传算法工具箱及应用 pdf,MATLAB遗传算法工具箱及应用(雷英杰)
  9. 数值分析(11):常微分方程的数值解法之Euler法
  10. 基于C语言的个人信息管理系统