一、dubbo核心要点
1):服务是围绕服务提供方和服务消费方的,服务提供方实现服务,服务消费方调用服务。
2):服务注册
对于服务提供方它需要发布服务,而由于应用系统的复杂性,服务的数量、类型不断的膨胀。
对于服务消费方,它最关心如何获取它所需要的服务。而面对复杂的应用系统,需要管理大量的服务调用。
而且对于服务提供方和服务消费方来说,它们还有可能同时兼具这两种角色,即需要提供服务,又需要消费服务。
通过服务统一管理起来,可以有效的优化内部应用。对服务发布/使用的流程管理。服务注册中心可以通过特
定协议来完成服务对外的统一。
dubbo提供的服务注册中心有以下几种:
①Multicast注册中心,又叫广播、组播,是一个在局域网的环境。主要用于本地测试。
②zookeeper注册中心,官方推荐。用于上线发布。
③redis注册中心
④simple注册中心
3):服务监控
无论服务消费方,还是服务提供方,都要对服务的实际调用状态进行有效的监控。从而改进服务质量。
4):远程通信与信息交换
远程通信需要指定通信双方所约定的协议。在保证通信双方理解协议语义的基础上,还需要保证高效、稳定的
消息传输。dubbo集成了当前主流的网络通信框架,主要包括如下几个:
Nina、Netty、Grizzly(它们可以理解为对socket的封装)
5):服务调用
节点角色说明:
Registry:服务注册与发现的注册中心
Consumer:调用远程服务的服务消费方
Provider:暴露服务的服务提供方
Monitor:统计服务的调用次数和调用时间的监控中心
Container:服务运行容器
调用关系说明:
0、服务容器负责启动、加载,运行服务提供者
1、服务提供者在启动时,向服务注册中心注册自己提供的服务
2、服务消费者在启动时,向注册中心订阅自己所需要的服务
3、注册中心返回服务提供者地址列表给服务消费者。如果有变更,服务注册中心将使用长连接
推送变更数据给消费者
4、服务消费者,从服务提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用。如果
调用失败,再选另一台调用
5、服务消费者和服务提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次数据到监控
中心
知识补充:
长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。
短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。
长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是短连接,
再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的
连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。
二、下载
1):获取dubbo
dubbo可以直接在maven的中央仓库获取,它是阿里巴巴的开源项目
2):获取dubboX
dubboX中央仓库没有,需要从github下载并且在本地编译才能使用。
下载地址:https://github.com/hutai123/dubbox
dubbo和dubbox均是基于maven进行项目管理与构建的。源码下载后进行编译打包,即可将dubbo放入
本地仓库。
编译打包过程中如果出现netty测试错误,请在maven中使用:
mvn clean install -Dmaven.test.skip=true
打包,放弃测试,因为dubbox本身存在bug
打包后主要有以下几个文件:
管理中心:dubbo-admin-2.8.4a(dubbox版本)
监控中心:dubbo-monitor-simple-2.8.4a-assembly.tar.gz
同时使用spring 4.2+版本
原文地址:https://www.cnblogs.com/zeussbook/p/10459380.html