Dubbo环境搭建
开始
分布式应用架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求
用于提高业务复用及整合的 分布式服务框架(RPC) 是关键
流动计算架构
随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA Service-Oriented Arthitecture),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架
此时,用于提高机器利用率的资源调度和治理中心(SOA) 是关键
微服务就是SOA架构的演进
Dobbo针对的系统结构演进线路图
RPC讲Dobbo,SOA讲SpringCloud
Dubbo的架构:
上图Dubbo服务调用流程
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
Dubbo优缺点
优点:
透明化的远程方法调用
像调用本地方法一样调用远程方法;只需简单配置,没有任何API侵入
软负载均衡及容错机制
可在内网替代nginx lvs等硬件负载均衡器
服务注册中心自动注册 & 配置管理
不需要写死服务提供者地址,注册中心基于接口名自动查询提供者ip
使用类似zookeeper等分布式协调服务作为服务注册中心,可以将绝大部分项目配置移入zookeeper集群
服务接口监控与治理
Dubbo-admin与Dubbo-monitor提供了完善的服务接口管理与监控功能,针对不同应用的不同接口,可以进行 多版本,多协议,多注册中心管理
缺点:
只支持JAVA语言
Dubbo提供的注册中心有如下几种类型可供选择:
Multicast注册中心
Zookeeper注册中心
Redis注册中心
Simple注册中心
安装
前提:
- 安装了docker的centos7虚拟机或者云主机。
- 已经了解了分布式相关概念
操作步骤:
打开docker官网 https://hub.docker.com/_/docker/
输入
docker pull zookeeper
但速度可能比较慢,这里可以切换为国内镜像站下载:
"http://ovfftd6p.mirror.aliyuncs.com",
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
在XShell上输入
docker pull ovfftd6p.mirror.aliyuncs.com/library/zookeeper
下载完毕,查看镜像文件
docker images
输入开启docker镜像(a7dfca5868是镜像ID,zkcpp是镜像名字随便起都行,映射地址最好是2181不要改动)
docker run --name zkcpp --restart always -d -p 2181:2181 a7dfca5868
查看镜像运行情况