spring boot 集成 dubbo 的 demo 使用 dubbo-admin进行监控_dubbo-admin 接口文档-程序员宅基地

技术标签: Java  

一、项目结构

在这里插入图片描述

二、Maven依赖

consumer

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>com.alibaba.spring.boot</groupId>
      <artifactId>dubbo-spring-boot-starter</artifactId>
      <version>${
    dubbo.starter.version}</version>
    </dependency>

    <dependency>
      <groupId>${
    project.groupId}</groupId>
      <artifactId>dubbo-common</artifactId>
      <version>${
    project.version}</version>
    </dependency>

    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>${
    zkclient.version}</version>
    </dependency>

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

provider

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>com.alibaba.spring.boot</groupId>
      <artifactId>dubbo-spring-boot-starter</artifactId>
      <version>${
    dubbo.starter.version}</version>
    </dependency>

    <dependency>
      <groupId>${
    project.groupId}</groupId>
      <artifactId>dubbo-common</artifactId>
      <version>${
    project.version}</version>
    </dependency>

    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>${
    zkclient.version}</version>
    </dependency>

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

三、各个模块

common提供接口接口,接口实现类在provider中,在consumer中调用方法

common

public interface HelloService {
    
    /**
     * 问好
     *
     * @param name 姓名
     * @return 问好
     */
    String sayHello(String name);
}

consumer

@RestController
@Slf4j
public class HelloController {
    
    @Reference
    private HelloService helloService;

    @GetMapping("/sayHello")
    public String sayHello(@RequestParam(defaultValue = "hello dubbo") String name) {
    
        log.info("i'm ready to call someone......");
        return helloService.sayHello(name);
    }
}

配置

server:
  port: 8080
  servlet:
    context-path: /demo

spring:
  dubbo:
    application:
      name: spring-boot-demo-dubbo-consumer
      registry: zookeeper://127.0.0.1:2181

provider

@Service // 这注解不是spring的是com.alibaba.dubbo.config.annotation.Service下的注解
@Component
@Slf4j
public class HelloServiceImpl implements HelloService {
    
    /**
     * 问好
     *
     * @param name 姓名
     * @return 问好
     */
    @Override
    public String sayHello(String name) {
    
        log.info("someone is calling me......");
        return "say hello to: " + name;
    }
}

配置

server:
  port: 9090
  servlet:
    context-path: /demo

spring:
  dubbo:
    application:
      name: spring-boot-demo-dubbo-provider
      registry: zookeeper://localhost:2181

四、需要安装zookeeper

zookeeper 默认端口是2181

参考文章:https://blog.csdn.net/y1534414425/article/details/110748867

五、运行

先运行zookeeper,在运行providerconsumer

  1. 进入服务提供方 spring-boot-demo-dubbo-provider 目录,运行 SpringBootDemoDubboProviderApplication.java
  2. 进入服务调用方 spring-boot-demo-dubbo-consumer 目录,运行 SpringBootDemoDubboConsumerApplication.java
  3. 打开浏览器输入 http://localhost:8080/demo/sayHello ,观察浏览器输出,以及服务提供方和服务调用方的控制台输出日志情况

六、使用dubbo-admin进行监控

项目地址:https://github.com/apache/dubbo-admin

这是一个前后端分离的项目,所以要运行两个项目。
在这里插入图片描述
运行后端的时候默认端口是8080,可能会和其他程序端口冲突。自行修改一下,我这用的是8088
在这里插入图片描述
后端端口地址修改了,前端也要跟着改。配置地址如图所示
在这里插入图片描述
前后端项目都运行起来后,浏览器打开:http://localhost:8082/,用户名密码都是root

这是我们刚才搭建的dubbo的服务
在这里插入图片描述
提供者和消费者监控
在这里插入图片描述
在这里插入图片描述
还有很多其他的监控功能
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/y1534414425/article/details/110749486

智能推荐

希捷7200.11固件门完全DIY修正方法! 不用几块钱, DIYers请进!!!_希捷stcomtool转t失败-程序员宅基地

文章浏览阅读1.5w次,点赞2次,收藏9次。分享给有需要的朋友, 数据无价... 以后注意备份重要资料... 1. 老外的方法[By Gradius]: The Solution for Seagate 7200.11 HDDs (final and revised version): http://www.msfn.org/board/index.php?showtopic=128807&hl=7200.112. (第_希捷stcomtool转t失败

数据库安全:Hadoop 未授权访问-命令执行漏洞._hadoop未授权访问-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏4次。Hadoop 未授权访问主要因HadoopYARN资源管理系统配置不当,导致可以未经授权进行访问,从而被攻击者恶意利用。攻击者无需认证即可通过RESTAPI部署任务来执行任意指令,最终完全控制服务器。_hadoop未授权访问

100个替代昂贵商业软件的开源应用_citadel开源中文版本-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏18次。100个替代昂贵商业软件的开源应用面对大,中,小企业和家庭用户,立竿见影显著降低成本的开源软件。某些商业软件素以昂贵著称。随着云计算的日益普及,很多常用软件包供应商将一次性收费改为月租模式。虽然月租费貌似便宜,但也经不起长时间的累积。100个替代昂贵商业软件的开源应用尽管有许多好理由,但避免或减少使用费,仍然是许多用户看中开源应用软件的主要因素。基于这一点,我们更新了可替代_citadel开源中文版本

竞选计算机协会网络部部长,2019年计算机协会部长竞选演讲稿-程序员宅基地

文章浏览阅读55次。2019年计算机协会部长竞选演讲稿篇一:计算机协会部长竞选演讲稿尊敬的领导,敬爱的老师,亲爱的同学们:大家晚上好!俗话说:马只有驰骋千里,方知其是否为良驹;人只有通过竞争,才能知其是否为栋梁。我是来自xxx班的伍朝海,今晚,我很荣幸能够站在这里参加这次学生会的竞选,职位是xx系的宣传窗口——新闻网络部的负责人。我知道,今晚竞选的不仅仅是个职位,也是在竞选一个为同学们服务的机会,更是在竞选一个为我们...

ipython和jupyter notebook_第02章 Python语法基础,IPython和Jupyter Notebook-程序员宅基地

文章浏览阅读185次。第2章 Python语法基础,IPython和Jupyter Notebooks当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少。这部分上是一个鸡和蛋的问题:我们现在使用的库,比如pandas、scikit-learn和statsmodels,那时相对来说并不成熟。2017年,数据科学、数据分析和机器学习的资源已经很多,原来通用的科学计算拓展到了计算机科学家..._jupyter notebook if后面有多个条件

雪花算法生成的ID精度丢失问题_雪花算法生成id精度丢失-程序员宅基地

文章浏览阅读494次,点赞2次,收藏2次。雪花算法生成的ID精度丢失问题雪花算法ID精度丢失_雪花算法生成id精度丢失

随便推点

JMeter之脚本录制_jmeter脚本录制,大厂软件测试高级多套面试专题整理集合-程序员宅基地

文章浏览阅读635次,点赞14次,收藏7次。打开IE浏览器,点击右上方工具按钮,依次选择“Internet选项” -> “连接” -> “局域网设置” -> “代理服务器”,勾选“为LAN使用代理服务器”,输入本地IP地址127.0.0.1及端口号8888,点击确定保存。若页面提示“此网站的安全证书存在问题”,点击“继续浏览此网站(不推荐) ”即可。4.选择“Requests Filtering”,在“包含模式”中填入“.+(baidu.com).+”用以过滤非。选中“工作台”,右键选择“添加” -> “非测试元件” -> “HTTP代理服务器”

20231114歌谣v3--学习篇-组件注册-props-程序员宅基地

文章浏览阅读326次,点赞8次,收藏10次。前端

pandas:多个dataframe写入同一个excel, html_多个dataframe写入一个excel-程序员宅基地

文章浏览阅读6.9k次,点赞4次,收藏20次。1,dataframe 写入excel:多个dataframe需要写入同一个excel时,每次使用df.to_excel(文件名)的形式去写,系统都会重新创建一个新的文件。也就意味着前面的文件会被覆盖掉,你得到的只能是最后一个df写入的结果文件通过创建一个ExcelWriter对象,可以解决上面的问题writer = pd.ExcelWriter(os.path.join(os.ge..._多个dataframe写入一个excel

文本文件数据输入与读取_文本输入读取-程序员宅基地

文章浏览阅读654次。步骤1两个Edittext用来作为输入和获取的媒介&lt;android.support.constraint.ConstraintLayout ="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:to..._文本输入读取

极速进化,光速转录,C++版本人工智能实时语音转文字(字幕/语音识别)Whisper.cpp实践_c++语音识别库-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏8次。业界良心OpenAI开源的[Whisper模型](https://v3u.cn/a_id_272)是开源语音转文字领域的执牛耳者,白璧微瑕之处在于无法通过苹果M芯片优化转录效率,Whisper.cpp 则是 Whisper 模型的 C/C++ 移植版本,它具有无依赖项、内存使用量低等特点,重要的是增加了 Core ML 支持,完美适配苹果M系列芯片。 _c++语音识别库

前端(vue)导出word文档(导出图片)_前端批量docx转jpg-程序员宅基地

文章浏览阅读688次,点赞7次,收藏11次。导出word文档方法有很多,但这次要导出图片,所以选用了html-docxhtml-docx是根据html代码进行导出........_前端批量docx转jpg