• dubbo.registry.address=zookeeper的集群地址。
    • 控制中心是用来做服务治理的,比如控制服务的权重、服务的路由。
  • simple监控中心
    • 下载dubbo-monitor-simple-2.5.3-assembly.tar.gz包。
    • 解压后到解压目录下的dubbo-monitor-simple-2.5.3\conf中找到dubbo.properties文件,修改成zookeeper注册中心地址。

    • 点击bin目录下的start.bat启动,启动成功后,通过http://localhost:8080来访问监控中心。

    • Monitor也是一个dubbo服务,所以也会有端口和url。
    • 监控服务的调用次数、调用关系、响应事件。
  • 简单实现的大概流程:
  1. 定义接口以及接口的实现类。
  2. 配置好Dubbo配置文件后,通过Main方法启动服务端,将服务暴露。
    • 服务端配置文件:
 <?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="order-provider" owner="provider"/> <dubbo:monitor protocol="registry"/> <!--dubbo这个服务所要暴露的服务地址所对应的注册中心--><!-- N/A:代表没有使用注册中心 -->
<dubbo:registry protocol="zookeeper" address="47.107.121.215:2181"/> <!--当前服务发布所依赖的协议;webserovice、Thrift、Hessain、http-->
<dubbo:protocol name="dubbo" port="20880"/> <!--服务发布的配置,需要暴露的服务接口-->
<dubbo:service
interface="com.karat.cn.order_api.IOrderServices"
ref="orderService"/> <!--接口的实现 Bean bean定义-->
<bean id="orderService"
class="com.karat.cn.order_provider.OrderServiceImpl"/> </beans>
    • Main方法:
 package com.karat.cn.order_provider;
import com.alibaba.dubbo.container.Main;
/**
* Hello world!
* 发布方法
*/
public class App
{
public static void main( String[] args )
{
Main.main(args);
}
}
    • 启动成功后日志中内容如下:
 2019-03-21 11:28:38,415 INFO [org.I0Itec.zkclient.ZkClient] - zookeeper state changed (SyncConnected)
2019-03-21 11:28:38,416 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] - [DUBBO] Register: dubbo://10.0.1.183:20880/com.karat.cn.order_api.IOrderServices?anyhost=true&application=order-provider&dubbo=2.5.3&interface=com.karat.cn.order_api.IOrderServices&methods=doOrder&owner=provider&pid=17524&side=provider&timestamp=1553138908571, dubbo version: 2.5.3, current host: 127.0.0.1
2019-03-21 11:28:38,600 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] - [DUBBO] Subscribe: provider://10.0.1.183:20880/com.karat.cn.order_api.IOrderServices?anyhost=true&application=order-provider&category=configurators&check=false&dubbo=2.5.3&interface=com.karat.cn.order_api.IOrderServices&methods=doOrder&owner=provider&pid=17524&side=provider&timestamp=1553138908571, dubbo version: 2.5.3, current host: 127.0.0.1
2019-03-21 11:28:38,850 INFO [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry] - [DUBBO] Notify urls for subscribe url provider://10.0.1.183:20880/com.karat.cn.order_api.IOrderServices?anyhost=true&application=order-provider&category=configurators&check=false&dubbo=2.5.3&interface=com.karat.cn.order_api.IOrderServices&methods=doOrder&owner=provider&pid=17524&side=provider&timestamp=1553138908571, urls: [empty://10.0.1.183:20880/com.karat.cn.order_api.IOrderServices?anyhost=true&application=order-provider&category=configurators&check=false&dubbo=2.5.3&interface=com.karat.cn.order_api.IOrderServices&methods=doOrder&owner=provider&pid=17524&side=provider&timestamp=1553138908571], dubbo version: 2.5.3, current host: 127.0.0.1
2019-03-21 11:28:38,933 INFO [com.alibaba.dubbo.container.Main] - [DUBBO] Dubbo SpringContainer started!, dubbo version: 2.5.3, current host: 127.0.0.1
[2019-03-21 11:28:38] Dubbo service server started!
    • 第二行的:dubbo://10.0.1.183:20880/com.karat.cn.order_api.IOrderServices   是后面需要用到的服务url地址,使用zookeeper也是让zookeeper来管理这个东西。
    • 消费端通过Dubbo配置文件调用服务端服务:
 <?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="order-provider" owner="provider"/> <!--dubbo这个服务所要暴露的服务地址所对应的注册中心--><!-- N/A:代表没有使用注册中心 -->
<!--
配置集群地址: <dubbo:registry address="zookeeper://192.168.11.129:2181?backup=192.168.11.137:2181,192.168.11.138:2181,192.168.11.139:2181"/>
-->
<dubbo:registry address="zookeeper://47.107.121.215:2181"/> <!--生成一个远程服务的调用代理--><!--引用一个服务 通过url关联 -->
<dubbo:reference id="orderServices"
interface="com.karat.cn.order_api.IOrderServices"/>
<!-- 使用zookeeper注册中心后不需要下面的url了,在zookeeper中能拿到url -->
<!-- url="dubbo://10.0.1.183:20880/com.karat.cn.order_api.IOrderServices" -->
</beans>
    • 消费端测试:
public static void main( String[] args ) throws IOException {
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("order-consumer.xml"); //用户下单过程
IOrderServices services=(IOrderServices)context.getBean("orderServices"); DoOrderRequest request=new DoOrderRequest();
request.setName("Hello world!");
DoOrderResponse response=services.doOrder(request); System.out.println(response);
}
    • 消费端的pom中需要引入服务端项目打包成的jar包。
 <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.karat.cn</groupId>
<artifactId>order_api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>C:\Users\devel\Desktop\aa.jar</scope>
</dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
</dependencies>
  • invoker:cmd中Dubbo调用命令

Dubbo操作的更多相关文章

  1. JEECMS9.3集成dubbo操作记录

    需求描述: 门户及其他应用系统需要查询JEECMS9.3中发布的栏目及数据,而其他系统都是基于dubbo开发的,因此想要将JEECMS9.3中集成dubbo并对外提供内容管理服务. 需求实现: 1.添 ...

  2. 用户测评 | EDAS Serverless 上手体验

    背景 最初, 是因为对 Serverless 这一概念感兴趣, 所以开始试用阿里云函数计算,使用过程中感受到了函数计算快速.按需付费和弹性伸缩等方面的优势,随后我在天气预报.发送短信等场景下开始了更深 ...

  3. maven聚合项目以及使用dubbo远程服务调用debug操作。

    1.maven聚合项目以及使用dubbo远程服务调用debug操作. 然后操作如下所示: 然后如下所示: 启动断点所在的包的服务.以debug的形式启动. 断点进来的效果如下所示: 接下来请继续你的表 ...

  4. 快来!我从源码中学习到了一招Dubbo的骚操作!

    荒腔走板 大家好,我是 why,欢迎来到我连续周更优质原创文章的第 55 篇. 老规矩,先来一个简短的荒腔走板,给冰冷的技术文注入一丝色彩. 魔幻的 2020 年的上半年过去了,很多人都在朋友圈和上半 ...

  5. Java简单操作dubbo(一)

    dubbo-service公共Service package com.itman.service; public interface UserService { // 提供服务 使用userId查找用 ...

  6. 基于Dubbo框架构建分布式服务(一)

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  7. 基于dubbo的分布式项目实例应用

    本文主要学习dubbo服务的启动检查.集群容错.服务均衡.线程模型.直连提供者.只定阅.只注册等知识点,希望通过实例演示进一步理解和掌握这些知识点. 启动检查 Dubbo缺省会在启动消费者时检查依赖的 ...

  8. 从头开始搭建一个dubbo+zookeeper平台

    本篇主要是来分享从头开始搭建一个dubbo+zookeeper平台的过程,其中会简要介绍下dubbo服务的作用. 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后 ...

  9. 第一章,阿里的Dubbo完美初级搭建,待续。。。

    1.1 后台工程搭建分析 Web工程. Maven的常见打包方式:jar.war.pom Pom工程一般都是父工程,管理jar包的版本.maven插件的版本.统一的依赖管理.聚合工程. Taotao- ...

随机推荐

  1. Xcode迁移工程常见问题

    [Xcode迁移工程常见问题] 1.Header Search Paths (HEADER_SEARCH_PATHS) 是否设置正确.在Search Paths group下. 2.Framework ...

  2. 流Stream

    System.IO 提供了一个抽象类Stream , Stream类 支持对字节的读写操作.所谓的“流”,指的是Stream,也就是所谓的一个文件区.这个文件区中存储着的信息可以是在内存中,也可以是在 ...

  3. vmware workstation + kvm 部署

    1.物理机BIOS设置里开启虚拟化功能 2.vm里面开启一下两个功能 3.找到存放该虚拟机的dir,找到以.vmx结尾的文件,增加一行 apic.xapic.enabled = "FALSE ...

  4. 【Docker官方文档】理解Docker

    本文来自Docker的官方文档,详细介绍了Docker的体系结构.重要概念.内部工作机理等内容,推荐不了解Docker内部原理的同学阅读. 什么是Docker? Docker是一个用于开发.交付和运行 ...

  5. c语言实践:RS信号报告

    题目: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一位,共分5级,用1—5数字 ...

  6. python核心编程第5章课后题答案

    5-8Geometry import math def sqcube(): s = float(raw_input('enter length of one side: ')) print 'the ...

  7. 20169219 TCP_IP网络协议攻击实验报告

    (1) ARP缓存欺骗 RP 缓存是 ARP 协议的重要组成部分.ARP 协议运行的目标就是建立 MAC 地址和 IP 地址的映射,然后把这一映射关系保存在 ARP 缓存中,使得不必重复运行 ARP ...

  8. 【Head First Java 读书笔记】(五)编写程序

    第五章 编写程序 伪码:伪码能帮你专注于逻辑而不需要顾虑到程序语法 测试码:测试用的程序代码 真实码:实际代码 伪码 伪码是介于真正的java程序与正常英语之间的一种语言.伪码大致包括3部分:实例变量 ...

  9. [Lua快速了解一下]Lua运行

    -Lua的Hello World print("Hello World") 分号可选 -类似python,进入Lua后再shell中打命令执行语句也可 > print(&qu ...

  10. React学习笔记4

    遇到的问题 目前模板是自己任意定义的,样式不好控制 在组件设计时,可以把页面数据显示的地方,分割父子组件嵌套的结构,比如,商品数据显示列表,把组外层容器看成是父组件,里面是数据显示的渲染模板,看成是子 ...