开发者社区> 问答> 正文

怎样用Dubbo集成Nacos进行实战?

怎样用Dubbo集成Nacos进行实战?

展开
收起
1358896759097293 2021-04-18 23:18:55 1045 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    (一)Dubbo集成Nacos实战步骤 Dubbo集成Nacos实战的关键步骤,首页构造一个Dubbo服务,给Dubbo配置Nacos客户端依赖,再配置Nacos注册中心的地址,还需要提前启动Nacos注册中心的服务,然后Dubbo服务才可以在Nacos注册中心里面进行注册。推荐使用 Dubbo 2.6.5以上的版本,不建议再用之前的版本,涉及Nacos客户端依赖,一般使用1.2.0以上版本,最新是1.4.0,太旧的版本不推荐用,容易遇到兼容性等问题。步骤总结如下: • 启动Nacos注册中心; • Dubbo改造加入dubbo-registry-nacos 依赖; • dubbo-registry-nacos 的 Maven 依赖pom.xml 文件中; • 推荐您使用 Dubbo 2.6.5+。 Dubbo的pom.xml 文件: 30.png (二)Nacos监控Dubbo服务 上线完成以后,Nacos自带web的界面,可以打开看一下整个服务列表,还有配置管理等一系列复杂的功能。启动服务注册里面有详情的详情、删除等操作功能,可以进行更详细的管理工作。 30-2.png (三)实例演示: 官方参考资料:http://dubbo.apache.org/。官方的例子比较复杂,需要很多依赖包,这里演示一个简单的例子。 首先构建一个Dubbo服务,Dubbo服务没有分包,直接放在根目录下面,有接口实现,放在同一个目录下面,就是一个“sayHello”包。传一个字符串,就返回一个字符串,基本上有一个实现类型。 30-3.png 这里面基于是“SringBoot”,做了一个 Dubbo的服务端,Dubbo3.0之后在进化,支持Spring Cloud微服务架构体系,可以提供REST API,也可以做云原生,比较灵活。 注意看一下配置文件,两个关键点,一个是Dubbo的起步依赖,选的是2.7.8,一个是Nacos选的是1.2.1。 30-4.png 配置文件,首先要配置自己的名字,这里是“dubbo-provider-demo”,还有指定扫描的包,这里是叫“com.alibaba”,下面是nacos的一个例“nacos://127.0.0.0:8848”。 30-5.png 这时需要提前启动nacos,下载完成以后有一个解压包,可以直接启动。注意是单点模式启动,直接双击,有一个脚本,我们在windows上直接启动就ok。看一下窗口界面有一个地址,这个地址是启动完成以后会有一个管理界面,第一次登录需要输入用户、密码。 30-6.png 把这个地址粘贴到网页,转到Nacos管理界面,现在看服务列表,里面还没有服务,因为服务还没有上线。 30-7.png 现在可以启动服务端,客户端到服务端需要连注册中心找到服务端进行调用。涉及包依赖,主要是如下两个依赖: 30-8.png 造成REST API作为调用的控制器出口,这里可以传一个字符串,然后让后台通过服务代理来调,里面的接口实现一模一样。如果在同一个工程里面,可以依赖同一个包,可以把Controller拆出来。这里基本没变,还是“SringBoot” 程序。 30-9.png

    下面是“Dubbo-client-demo”client的意思是消费者,意思就是调用客户端的评论或支付信息。 30-10.png 这样一个过程,就是一次调用,也可以称为是一次命令“Order”,在电商系统里面“Order”被翻译成订单。模拟 Java架构中,服务端向注册中心注册一个端口,注意端口不能重复,过程中不能出现错误。完成后刷新一下,Nacos界面服务列表中已经显示出来我们的“com.alibaba”服务,说明服务端的服务已经上线。 30-11.png 点打看一下详情,可以看到用到的方法、release等服务相关的描述信息,使用非常方便。 30-12.png 点击服务列表界面的“示例代码”,会告诉你如果通过其他服务做请求,代码应该怎么写,还有微服务架构怎么集成,这是Nacos非常优秀的地方。 30-13.png 接下来上线客户端,启动客户端来模拟服务调用,上传一个字符串,严格来说是一个代理。这里叫做“proxy”,实际是服务端的接口,客户端通过“proxy”接口生成一个变量创建实例,严格的说是创建一个代理对象,用于调取后台的远程服务接口。 30-14.png

    模拟启动客户端,传入字符串,调用接口,到Nacos服务界面刷新,可以看到服务列表里多出一条“consumers”服务,属于调用端。 30-15.png

    端口是“9001”,地址是”sayHello”,然后通过Dubbo传送,返回结果正常,换成Java,返回结果也是正常的。正常情况下,字符串是从服务端返回来的,客户端通过代理对象调用远程服务,获取信息。这是典型的RPC架构,用Nacos注册中心,非常容易就可以实现。

    30-16.png

    2021-04-19 11:28:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载