美文网首页
zookepper + dubbo2.7.0实现服务发现

zookepper + dubbo2.7.0实现服务发现

作者: skyjilygao | 来源:发表于2019-03-25 17:30 被阅读0次

直接看code:dubbo-parent

demo 代码主要是参考网友的dubbo入门dubbo入门来的,也谢谢这位网友的分享。

在这篇入门中dubbo使用使用的2.6.5。

1.安装zookeepr

先下载zookeeper,目前最新版是3.5.4-beta,也可以点击以下链接下载想要的版本:链接

https://archive.apache.org/dist/zookeeper/

安装比较简单,直接解压启动即可。

解压后修改配置文件:

zookeeper-3.5.4-beta\conf\zoo_sample.cfg 重名成 zoo.cfg

启动:

windows环境:直接双击zkServer.cmd

linux环境:./zkServer.sh start 

成功启动后占用端口: 8080, 2181

由于8080端口比较特殊。可能会被其他应用占用,也会导致其他应用使用此端口时使用不了。所以可以在启动前修改端口。

配置文件:zookeeper-3.5.4-beta\conf\zoo.cfg

在文件最后增加一行:

admin.serverPort=7777

我这里是7777端口,对我来说不会被占用。也可以改成别的。只要不给占用即可。

2.启动服务提供者

打开dubbo-parent/dubbo-service,检查配置文件:application.properties

端口:

server.port=9999

dubbo.protocol.port = 20880

由于我的zk直接是在本机上,所以地址都是127.0.0.1:2181

这是一个标准的spring-boot项目,所以直接启动DubboServiceApplication即可。出现以下表示启动成功

image

3.启动消费者

打开dubbo-parent/dubbo-consumer, 检查配置文件:application.properties

这是一个标准的spring-boot项目,所以直接启动DubboServiceApplication即可。出现以下表示启动成功

image

此时访问 http://localhost:9990/hello 结果如下:

image

4.实现负载均衡

如果想实现负载均衡,可以再启动一个service,

修改端口:不修改则无法启动,提示端口被占用。

server.port=9988

dubbo.protocol.port = 20881

此时访问 http://localhost:9990/hello 效果是快速刷新会发现2个端口交替使用。结果如下:

image

5.使用dubbo-admin查看

官方github地址:链接https://github.com/apache/incubator-dubbo-admin.git

启动后端:

使用idea下载后,修改注册中心地址。

incubator-dubbo-admin\dubbo-admin-server\src\main\resources\application.properties

默认端口:8080

我这里由于是本地,所以直接127.0.0.1:2181,即默认配置,dubbo-admin是一个标准spring-boot项目,所以直接启动DubboAdminApplication即可

也可以通过命令行git clone下载,

mvn clean package -Dmaven.test.skip=true // 跳过测试,否则会很长时间

cd target

java -jar dubbo-admin-server-0.1.jar // 启动

启动前端:也可参考:链接

需要npm支持,也就是需要安装node.js。现在都是通过nvm管理,下载node,还需要安装git。具体方法可以参考官方文档 也可以参考网友提供的链接

我这里是通过git clone方式安装,因为直接使用官方提示方式,安装失败,提示git -c参数错误。

默认端口:8081,我这里修改为8083

cd dubbo-admin-ui // 进到dubbo-admin-ui目录

npm install // 安装依赖

npm run dev // dev模式启动

出现以下字样表示启动成功:

image

直接访问 http://192.168.88.11:8083 点击“服务查询”显示你的服务

image

至此,demo搭建完成。

查看元数据:

1. 使用dubbo2.7.0

2.配置dubbo.configcenter

现在最新dubbo-admin使用的都是dubbo2.7.0,只需要在application.properties中加

dubbo.configcenter=zookeeper://127.0.0.1:2181

3.在服务提供者配置

pom里也需要使用dubbo2.7.0配置,注意从2.7.0开始,包名都是org.apache.dubbo了,不再是com.alibaba.dubbo

image

在application.properties中加。我在demo里已经加了,所以可能可以直接看到元数据

dubbo.configcenter=zookeeper://127.0.0.1:2181

4.配置注册中心地址

dubbo.registry.address=zookeeper://127.0.0.1:2181

dubbo.metadata-report.address=zookeeper://127.0.0.1:2181

我知道有2种方法:

4.1. 在dubbo-admin

org.apache.dubbo.admin.config.ConfigCenter中增加init方法,主要是判断有没有配置,没有则新增:

    @PostConstruct
    public void init() throws Exception {
        CuratorFramework zkClient = CuratorFrameworkFactory.builder().
                connectString("127.0.0.1:2181").
                retryPolicy(new ExponentialBackoffRetry(1000, 3)).build();
        zkClient.start();

        if (zkClient.checkExists().forPath("/dubbo/config/dubbo/dubbo.properties") == null) {
            zkClient.create().creatingParentsIfNeeded().forPath("/dubbo/config/dubbo/dubbo.properties");
        }
        zkClient.setData().forPath("/dubbo/config/dubbo/dubbo.properties", ("dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
                "dubbo.metadata-report.address=zookeeper://127.0.0.1:2181").getBytes());
    }

4.2. 在dubbo-admin页面中配置
点击配置管理-创建,
名称输入global
内容:

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181

加了之后正常的话就可以看到元数据了。
看到方法名,参数,返回值类型。我这里没有参数所以是空的


image.png

注意:
有时需要注意mvn依赖,虽然没有报错,但是启动时始终提示xxx没有找到
此时就需要先进到mvn本地仓库找到相应的包,全部删除。重新依赖
依赖是否成功,可以在idea中打开pom.xml,按住ctrl+鼠标移动到包名称上(artifactId)看是否可以点击。如果可以点击表示依赖成功,否则依赖失败,需要删除重新依赖。

相关文章

  • zookepper + dubbo2.7.0实现服务发现

    直接看code:dubbo-parent demo 代码主要是参考网友的dubbo入门dubbo入门来的,也谢谢这...

  • zookeeper笔记

    zookepper是一种分布式协调服务 分布式协调服务:可以在分布式系统中共享配置,协调锁资源,提供命名服务 Zo...

  • 微服务通信之服务发现(service discovery),从简

    要实现服务间的通信,服务需要能够发现彼此,这就是平台层的服务发现。 实现服务发现最简单的方式是使用负载均衡器。比如...

  • Zookepper总结

    ZooKeeper shell 1.5.1客户端连接 运行zkCli.sh-server ip进入命令行工具。 输...

  • Go实现简易服务发现

    众所周知,要请求一个服务,必须要知道服务的网络地址(IP和端口)。随着微服务的发展,越来越多的用户、请求和需求使得...

  • 安装zookepper3.3.6

    1.下载zookepper3.3.6 wget http://mirror.tcpdiag.net/apache/...

  • Go Registry

    实现微服务的服务注册中心,支持服务服务注册、接收心跳等。 客户端实现基于注册中心的服务发现机制 微服务 微服务是一...

  • 使用consul实现服务的注册和发现

    使用consul实现服务的注册和发现

  • Spring Cloud-1.服务治理

    服务治理 服务治理用来实现各个微服务示例的自动化注册与发现。 服务治理围绕“服务注册”和“服务发现”机制来完成对微...

  • 4. Spring Cloud 之服务治理 - Eureka服务

    Spring Cloud 之服务治理 - Eureka服务发现-生产者 实现服务发现非常容易,只需要如下几步:1....

网友评论

      本文标题:zookepper + dubbo2.7.0实现服务发现

      本文链接:https://www.haomeiwen.com/subject/yvubvqtx.html