Dubbo@Java

63 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情 >>

背景描述: 随着互联网地发展,新媒体地发展,电商行业地发展,越来越多人通过互联网购物,一直需要解决这一痛点,单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本,而且随着流量的增加越来越难以维护,当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率,合理分配资源。此时,用于提高机器利用率的资源调度和治理中心(SOA,即面向服务架构)是关键。

  • 什么是dubbo?
    随着大型网站分布式架构越来越主流,很多公司采用了dubbo作为远程通信服务调用框架,同时也有部分公司采用SpringCloud,而dubbo底层采用的是TCP进行通信,SpringCloud底层则采用的是HTTP协议进行通信,说白了,dubbo其实就是因为分布式的存在而存在,也就是告别了之前web service的调用模式,引进了消费者跟开发者。

  • dubbo的架构图(来自dubbo官网的架构图) 2.png

Container: 服务运行容器。
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。

init: 初始化
async: 异步处理
sync: 同步处理

  • dubbo架构图解析
    Container容器启动的时候,进行初始化,这个时候Provider将服务注册到Register中,同时Consumer到Register订阅服务,如果没有订阅到自己想要的服务,它会不断尝试订阅。而当新的服务注册到Register后,Register会将服务通过notify的方式通知消费者Consumer。
    Consumer自然是消费Prodiver所提供的服务,通过invoke的方式,可以认为是通过代理的方式进行调用。  
    Monitor作为监控平台,我们可以看到Consumer跟Prodiver都会通过异步的方式发送一些消费给Monitor,Consumer跟Prodiver会将信息存放到本地。也是用来统计服务的调⽤次数和调⽤时间的监控中⼼。

生活中越来越多 的系统需要用到dubbo的进行服务治理,也希望这篇Dubbo的简单的介绍能 给各位一点点帮助,Seeyou,next time...