dubbo yml配置_Dubbo框架的Hello World

fd950df2ef4603647366bc924f6b538c.gif

828ce0c51a4cf714066cbd136ee988cd.png

        最近写基于 Dubbo 的 Demo,本来挺简单的一个 Demo 但是整了两个小时,而最后解决的方法是因为包名的问题。可能很多所谓的经验不过就是一个踩坑的经验。

Dubbo 介绍

       Dubbo 的作用引用 GitHub 的介绍是:Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

       Dubbo 是阿里巴巴开发的框架,后来贡献给了 Apache 基金会。其 GitHub 地址如下:

https://github.com/apache/dubbo-spring-boot-project/blob/master/README_CN.md

       Dubbo 的出现背景可以参考 Dubbo 的官网:

http://dubbo.apache.org/zh-cn/docs/user/preface/background.html

       Dubbo 的官网也提供了一个 Demo 来进行快速入门,但是该 Demo 是以配置的方式来进行开发的,而不是使用注解进行开发的。官网的 Demo 地址如下:

http://dubbo.apache.org/zh-cn/docs/user/quick-start.html

Dubbo 的 HelloWorld

       Dubbo 的服务注册中心需要 Zookeeper 来支持,这里就不对 Zookeeper 进行介绍了。

       我们来创建两个 Spring Boot 项目,一个是 provider,另外一个是 consumer。

       provider 用来提供一个服务,并注册到 Zookeeper 中,consumer 到 Zookeeper 中找到 provider 提供的服务,并进行远程调用。

       两个项目中关于 Dubbo 的依赖是相同,具体依赖如下:

    org.apache.dubbo    dubbo-spring-boot-starter    ${dubbo.version}    org.apache.dubbo    dubbo    ${dubbo.version}    org.apache.curator    curator-framework    4.2.0    org.apache.curator    curator-recipes    4.2.0                        org.apache.zookeeper            zookeeper                org.apache.zookeeper    zookeeper    3.4.14

        这里使用的 Dubbo 的版本是 2.7.7,这个版本算是新的版本了。

provider 的代码

        创建 provider 的配置文件 application.yml,配置如下:

spring:  application:    name: providerserver:  port: 8081dubbo:  registry:    address: zookeeper://192.168.0.107:2181  application:    name: provider  scan:    base-packages: com.manong.dubbo.service.impl

        接着我们定义一个类文件 DemoServiceImpl.java,在该类文件中实现一个 say 方法,将该类和 say 方法抽象为一个接口 IDemoService.java,这个接口文件要提供给 consumer 进行使用。DemoServiceImpl.java 文件的代码如下:

@DubboService(version = "1.0.0", timeout = 10000, interfaceClass = IDemoService.class)@Componentpublic class DemoServiceImpl implements IDemoService {    @Override    public String say(String name) {        System.out.println("hi " + name + "!");        return "hi " + name + "!";    }}

        可以看到,在类定义上增加了一个 @DubboService 的注解,该注解将会将该类作为服务被外部进行调用。

consumer 的代码

        consumer 的 Spring Boot 项目在创建时引入 Spring Web 的依赖,该项目作为一个 Web 项目来进行测试。它同样需要引入 Dubbo 和 Zookeeper 的依赖,依赖的配置和前面的相同。

        创建 consumer 的配置文件 application.yml,配置如下:

spring:  application:    name: comsumerserver:  port: 8082dubbo:  application:    name: comsumer  registry:    address: zookeeper://192.168.0.107:2181

        接着,将 provider 的 IDemoService.java 复制到该项目中,只是复制接口的定义(provider 和 consumer 是分别创建的,如果是聚合项目需要将接口定义再单独抽取成一个服务),并不复制接口实现类。

        然后定义一个 Controller 的类,类名是 TestController.java 文件,代码如下:

@RestController@RequestMapping("/test")public class TestController {    @DubboReference(version = "1.0.0")    IDemoService demoService;    @RequestMapping("/say")    public String say(String name)    {        return demoService.say(name);    }}

        这里我们通过 @DubboReference 注解将 Service 进行注入。

        这样两个项目的代码就完成了。

项目测试

        启动 Zookeeper 的服务,然后先运行 provider 的程序,待 provider 程序启动好,用 Zookeeper 的客户端连接 Zookeeper 的服务器,查看是否有 Dubbo 注册的服务。如果有 Dubbo 注册的服务,那么就启动 consumer 的项目,待 consumer 的项目启动成功后,我们打开浏览器访问 localhost:8082 来访问我们的接口,截图如下:

9a768b46b9c138dd43ec41c07ffbcca7.png

        可以看到,我们的服务调用成功了。

        网上关于 Dubbo 的注解的介绍更多的是旧版本的 @Service 和 @Reference,而不是本文中的 @DubboService 和 @DubboReference。不过它们的用法基本是一致的。

828ce0c51a4cf714066cbd136ee988cd.png

看都看完了,还不点这里试试

223f6be56fa05b14e83020fb4ff84782.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值