dubbo-简单介绍和demo样例运行

写在最前面

本人是dubbo的初学者,本文是前几个星期写的,对一些概念的理解摘自其他文章,未写明出处,现在找不到各自的原文了,深表歉意。

dubbo是什么?
  • 远程服务调用(rpc)的分布式框架
* 什么是rpc?与restful区别? 参考: https://www.cnblogs.com/lilixin/p/5724976.html
为什么要用dubbo?
  • 为什么使用dubbo以及dubbo的起源: https://blog.csdn.net/cmj6706/article/details/78928801
  • dubbo在应用之间提供和使用服务的时候,没有了地址的概念,而是换成了服务名,这样一方面省却了变化地址的问题,另一个方面也省却了增加或者减少地址的麻烦,因为对于dubbo来说,只需要增或减相关的服务即可。
如何使用dubbo?

要想实现dubboServer和dubboClient之间完成调用,首先服务端和客户端需要一个接口来公用。可以有两种方式

1) 接口写在一个应用中,服务端和客户端都对这个应用进行引用
2) 更多的时候,两个应用是不太可能引用同一个应用。这个时候应该把接口以jar包的形式给Server和Client共同使用

然后,Server对jar包中的接口进行实现,并且向dubbo进行注册,而Client端调用jar包中的接口中的方法名,dubbo会去自动的寻找这个由Server端注册的方法的实现。

dubbo包括哪几部分?
  • 如图:
    dubbo-简单介绍和demo样例运行_第1张图片
  • 节点角色说明: 详情参看http://dubbo.apache.org/books/dubbo-user-book/preface/architecture.html 1.3架构
测试机zookeeper(单机模式)的连接方式

zk在dubbo起到什么作用: 注册服务,负载均衡

如果想安装到mac本机上,请参考: https://www.cnblogs.com/xinxiucan/p/7245647.html
如何搭建dubbo?(以源代码中demo为例在macbook pro上搭建)
  • 环境准备:
    • java 1.8
    • maven 3.5.3
    • eclipse
    • zookeeper
  • 下载dubbo代码
    • wget https://github.com/alibaba/dubbo/archive/dubbo-2.6.0.zip
    • unzip dubbo-2.6.0.zip
    • cd dubbo-dubbo-2.6.0/
    • 执行编译命令: mvn clean install -DskipTests=true 等其编译完成
  • 修改demo中provider和consumer xml的zookeeper地址:
编辑文件:dubbo-demo/dubbo-demo-provider/src/main/resources/META-INF/spring/dubbo-demo-provider.xml和dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml中dubbo的注册中心信息: 
<dubbo:registry address="zookeeper://xxxxxxxxxx:2181"/>
注: zookeeper地址应为自己的zookeeper地址。
  • 把provider和consumer导入eclipse
具体操作是:
file -> import-> General->Existing Projects into Workspace -> next->Select root directory点击后面Browse 选择dubbo-demo/dubbo-demo-provider目录 -> finish。
导入consumer操作相同。
  • 运行provider和consumer:
在左侧找到Provider.java文件,右键 -> run as -> java application。
启动consumer操作相同。
启动都启动之后,如果没报错,就会在eclipse下方的Console框中看到consumer调用provider方法时打印的信息。

消费者打印信息:
这里写图片描述
生产者打印信息:
这里写图片描述

至此demo运行OK。

    provider和consumer可以打成jar包,然后通过命令运行。
    打成jar包之前需要在provider根目录的pom.xml加入build信息:
        <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <configuration>
                    <source>1.7source>
                    <target>1.7target>
                configuration>
            plugin>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackagegoal>
                        goals>
                    execution>
                executions>
            plugin>

        plugins>
    build>
    然后在provider和consumer跟目录使用命令:
    mvn clean install -e -U进行打包,打好的包在target目录下。此时就可以执行运行(按道理,但是有问题。。。)
    nohup java -jar dubbo-demo-consumer-2.6.0.jar &
    nohup java -jar dubbo-demo-provider-2.6.0.jar &
    不过现在还有问题没搞定:
    1 provider打成jar包,本地mac运行起来后,consumer无法调用,并且30秒左右会从zk和监控中消失;
    2 consumer打好jar包,在mac本地可以正常运行,放到测试机上,无法运行。报错时获取本地ip为null。
dubbo 管理控制台安装

管理控制台为内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。

按照此文档即可:
http://dubbo.apache.org/books/dubbo-admin-book/install/admin-console.html
管理中心启动后,会看到我们刚才运行的provider和consumer服务。
dubbo 监控中心安装(非必须)

监控中心负责统计各服务器调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示。

按照此文档即可:
http://blog.51cto.com/4925054/2113903
监控中心启动后,会看到我们刚才运行的provider和consumer服务
dubbo官方文档

本文介绍的仅仅是最简单的介绍,深入了解和学习,请看:

使用文档:
http://dubbo.apache.org/books/dubbo-user-book/
开发文档:
http://dubbo.apache.org/books/dubbo-dev-book/

你可能感兴趣的:(dubbo)