• 性能测试二十七:环境部署之Dubbo原理


    Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。

    Dubbo是框架,并不是像http那种传输协议

    传统系统间通信方式:

    系统A和系统B之间耦合性非常大,系统A配置文件里面基本会把系统B的所有接口写进去,若果系统B有多个tomcat,中间还得配个Nginx,若经常有机器增减,Nginx配置也要经常改,扩展起来非常麻烦

    如果A系统要调用B系统里面的函数,只能通过http接口去调,数据传输需要转换成json,返回来再把json转成对象,而转json对性能损耗非常大

     比如:JdbcTest(系统A)要去调JavaVuser(系统B)下的JdbcTest里面的方法

     Dubbo框架

    zookeeper的作用:

    1、配置管理

    2、负载均衡

    可以把zookeeper理解为一个类似于mysql的数据库,主不过里面存的不是表,而是系统B的ip、端口号、url

    当项目B启动的时候,会自动的把项目B的ip、端口号、url全部写入到zookeeper中

    当A需要调B里面的接口的时候,就不用去连接B,只需要去zookeeper找到B接口,再去找ip、端口号,然后通过TCP进行通信,而不是http

    当同一个接口,有多个ip和端口号的时候(项目B布了多台机器),zookeeper也是采用轮询的策略

    所以,Dubbo框架中,就用zookeeper,不需要使用Nginx

    想要使用Dubbo框架,需要系统A和系统B去zookeeper里面写入数据(可以把此过程叫注册),留下ip、端口号

    所以每Dubbo框架里面,每一个系统都有一个配置文件,配的是zookeeper的ip和端口号

     zookeeper有一个心跳机制,如系统B部署了5个机器,zookeeper每秒钟检测一次,发现有3台机器没有响应了,就视为挂了,会自动去掉这几个的ip

    zookeeper提供了一个管理工具:dubbo-admin,类似于navicat连接数据库一样

  • 相关阅读:
    志愿者招募 [NOI2008] [鬼畜网络流]
    莫队入门
    分块入门
    高速公路 [HAOI2012] [线段树]
    游历校园 [COGS 614] [欧拉图]
    网络吞吐量 [CQOI2015] [网络流]
    LeetCode 27. Remove Element
    LeetCode 26. Remove Duplicates from Sorted Array
    LeetCode 21. Merge Two Sorted Lists
    LeetCode 20. Valid Parentheses
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10269528.html
Copyright © 2020-2023  润新知