Dubbo的介绍

如果表现层和服务层是不同的工程,然而表现层又要调用服务层的服务,肯定不能像之前那样,表现层和服务层在一个项目时,只需把服务层的Java类注入到表现层所需要的类中即可,但现在,表现层和服务层这是两个不同的工程,两个系统之间进行通信该怎么办呢?
如何实现远程通信?
1、Webservice:效率不高基于soap协议。项目中不推荐使用。
2、使用restful形式的服务:http+json。很多项目中应用。如果服务太多,服务之间调用关系混乱,需要治疗服务。
3、使用dubbo。使用rpc协议进行远程调用,直接使用socket通信。传输效率高,并且可以统计出系统之间的调用关系、调用次数。
那什么是Dubbo呢?
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。

Dubbo就是资源调度和治理中心的管理工具。

Dubbo的架构


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

  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
    其中Provider和Consumer都需要开发者自己去实现,(我的理解就是写两个类)
    而Registry是有已经先雄安好的开源框架可用,这就是zookeeper。

    Zookeeper介绍

    Zookeeper是Apacahe Hadoop的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbo服务的注册中心,工业强度较高,可用于生产环境,并推荐使用
    Zookeeper:
    1、可以作为集群的管理工具使用。
    2、可以集中管理配置文件。

    Zookeeper的安装

    安装环境:
    Linux:centos6.4
    Jdk:1.7以上版本

Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。
安装步骤:
第一步:安装jdk(linux环境下安装jdk的文档在右边栏的文件中)
第二步:把zookeeper的压缩包上传到linux系统。
第三步:解压缩压缩包
tar -zxvf zookeeper-3.4.6.tar.gz
第四步:进入zookeeper-3.4.6目录,创建data文件夹。
第五步:把zoo_sample.cfg改名为zoo.cfg
[root@localhost conf]# mv zoo_sample.cfg zoo.cfg
第六步:修改data属性:dataDir=/root/zookeeper-3.4.6/data
第七步:启动zookeeper
[root@localhost bin]# ./zkServer.sh start
关闭:[root@localhost bin]# ./zkServer.sh stop
查看状态:[root@localhost bin]# ./zkServer.sh status
注意
需要关闭防火墙。(service iptables stop)

Dubbo的监控中心

这是一个web工程,需要tomcat容器

如果监控中心和注册中心在同一台服务器上,可以不需要任何配置。
如果不在同一台服务器,需要修改配置文件:
/root/apache-tomcat-7.0.47/webapps/dubbo-admin/WEB-INF/dubbo.properties(即项目目录下的dubbo.properties)

关于Dubbo的详细配置

参见这篇博文

最新文章

  1. Windows 基础知识2
  2. 单点登录系统(SSO)之CAS(中央认证服务)
  3. 【笨嘴拙舌WINDOWS】tagTEXTMETRIC结构
  4. impdp的一些实际问题解决方法
  5. ubuntu12.10设置thunderbird开机自启动
  6. 编写安全代码:小心volatile的原子性误解
  7. linux mysql目录详解
  8. 【转】vs2010下创建webservice
  9. FastReport的再次使用
  10. linux screen命令简易使用
  11. 100本最棒的web前端图书推荐
  12. Python实现网站模拟登陆
  13. Linux进程与线程的区别
  14. sed 详解【转】
  15. java多线程之线程的同步与锁定(转)
  16. 关于Unity的NGUI
  17. IaaS、PaaS、SaaS、CaaS、MaaS五者的区别
  18. java-Runtime 调用命令
  19. AbstractAction
  20. JAVA实现图的邻接表以及DFS

热门文章

  1. WPF默认控件模板的获取和资源词典的使用
  2. Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探
  3. 自学_HTML<一>
  4. E203 CSR寄存器
  5. 剑指offer 12:二进制中1的个数
  6. 微信小程序踩坑日记4——真机端解析json数组和开发平台不一样
  7. [20190823]关于CPU成本计算2.txt
  8. 【CobaltStrike】对CobaltStrike内置功能模块的了解
  9. CodeForces - 1253D(并查集)
  10. lua 15 协程-协同程序