• 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调用命令

最新文章

  1. C#显示SQL语句格式
  2. [HDU 1114] Piggy-Bank (动态规划)
  3. hdu 4000 Fruit Ninja 树状数组
  4. 自定义tab bar控件 学习资料
  5. jQuery实现商品楼层的感觉
  6. Java-抽象类定义构造方法
  7. 201521123106《java程序设计》第二周学习总结
  8. cocoaPods打包的静态库
  9. Spring之AOP编程
  10. Codeforces Round #483 (Div. 2)
  11. python word转pdf
  12. DSAPI HTTP监听服务端与客户端
  13. [转]Python 的列表解析式,集合解析式,字典解析式
  14. 用dbExpress页的SQLConnection1连接sql server2000怎么设置。 [问题点数:0分]
  15. k8s 高级调度 亲和力和反亲和力、绑定标签、污点容忍污点
  16. js中json知识点
  17. 一种管理z-index属性的方案
  18. SDK manager 中 Done loading packages 问题
  19. (转)亿级Web系统搭建——单机到分布式集群
  20. 【转】IIS网站浏览时提示需要用户名密码登录-解决方法

热门文章

  1. 如何使用ThinkPHP5 ,自动生成目录?
  2. Java中long和Long的区别
  3. 并发之AbstractQueuedLongSynchronize----AQS
  4. 在aspx页动态加载ascx页面内容,给GridView控件绑定数据
  5. Docker学习笔记_进入正在运行的Docker容器
  6. IP协议、ARP协议等之温故知新
  7. 清除Vs2010的工作区影射关系的缓存信息的文件夹路径
  8. JavaScript必备:Google发布的JS代码规范(转)
  9. HDU 4081 Peach Blossom Spring (最小生成树+dfs)
  10. mybatis使用count返回int的方法