• dubbo不完全指南


    Dubbo架构

     

    节点角色说明

    节点

    角色说明

    Provider

    暴露服务的服务提供方

    Consumer

    调用远程服务的服务消费方

    Registry

    服务注册与发现的注册中心

    Monitor

    统计服务的调用次数和调用时间的监控中心

    Container

    服务运行容器

    调用关系说明

    1. 服务容器负责启动,加载,运行服务提供者。
    2. 服务提供者在启动时,向注册中心注册自己提供的服务。
    3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
    4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
    5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
    6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时没分钟发送一次统计数据到监控中心。

    服务提供

    1. 新建maven项目,跳过骨架选择,项目名为dubbo-provider。

    2. 加入相关依赖: 

    3. 新建服务提供接口,用于向外部暴露服务使用,其中User实体类代码省略,注意实体类要实现序列化接口:

    4. 编写服务实现类,对上述接口进行实现:

    5. 编写配置文件,在src/main/resources目录下新建provider.xml文件,其中zookeeper作为注册中心,本机上需要启动zookeeper服务,直接下载zookeeper安装包,解压后运行bin目录中的zkServer.cmd即可:

    6. 编写启动类,启动服务提供者:

    7. 启动,注意,启动前需要首先启动zookeeper服务。

    服务消费

    1. 新建maven项目,跳过骨架选择,项目名为dubbo-consumer。

    2. 加入相关依赖,和服务提供者相同。

    3. 编写服务接口,和服务提供者相同,将服务提供者中的UserService接口复制到本项目即可。

    4. 编写配置文件,在src/main/resources目录下新建consumer.xml文件:

    5. 编写启动类,启动服务消费者:

    6. 运行启动类,观察运行结果:

    7. 可以发现,服务提供者和服务消费者中有很多冗余代码,例如接口的定义和实体类,可通过maven的父工程将这些冗余代码提取出来,然后提供者和消费者都继承这个父工程就可以了。

    Dubbo管理平台

    去到dubbo官网下载dubbo-admin文件,解压后放到tomcat中,启动tomcat即可访问,其中,需要更改一个配置文件dubbo.properties中的zookeeper地址:

    然后浏览器方法localhost:8080/dubbo-admin即可,默认的用户名为root,密码为上述配置文件中配置的密码。

     负载均衡

    1. 启动之前准备好的服务提供者,启动端口为20880,为了更好的观察,启动之前修改服务提供者的实现类:

    2. 启动提供者之后,将配置文件中的端口号改为20881,并将实现类中也改为20881,再次启动服务提供者,登录到管理平台查看:

    3. 点击服务治理->负载均衡,添加负载均衡策略:

    4. 添加后的效果为:

    5. 再次启动服务消费者,观察控制台打印情况,多次启动消费者,观察效果

  • 相关阅读:
    随机数生成程序代码( 伪随机<stdlib.h> )
    C++的学习 (此博客将一直补充更新下去,C++语法方面的内容不开新随笔了, *【语法学习】)
    sdut oj 1510 Contest02-4 Spiral
    POJ 2017 Speed Limit (直叙式的简单模拟 编程题目 动态属性很少,难度小)
    JavaWeb-入门第一课-1.静态web动态web 2.web服务器 3.下载和安装Tomcat-web服务器
    java小知识,驼峰规则
    亚马逊 协同过滤算法 Collaborative filtering
    第一个JSP程序
    物理学步入禅境:缘起性空
    人既然知道努力就可以进步,为什么还是会不努力?
  • 原文地址:https://www.cnblogs.com/Oven5217/p/8981428.html
Copyright © 2020-2023  润新知