Dubbo快速入门
Posted 小蜗牛耶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dubbo快速入门相关的知识,希望对你有一定的参考价值。
Dubbo
一、基础知识
1.1 分布式系统定义
随着业务量的增大,我们不可能把所有的功能都放在一台服务器上,所以我们用很多台服务器每个服务器上都放一点服务,把业务分散在多台主机上。分布在多个主机上也不行啊,怎么处理它们之间的关系呢?
没错,这个管理者就是我们今天的主角------》Dubbo
1.2 应用架构的演变
1.2.1 单一应用架构
1.2.2 垂直应用架构
1.2.3 分布式应用架构
RPC:分布式服务框架
主要解决不同服务器之间的远程调用问题
1.2.4 流动计算架构
分布式架构还存在问题就是资源调度问题,某个服务器请求突然多了,某个服务器很少请求。那么如何协调它们的资源呢,让闲着的帮忙的干点事
之后呢,出现了流动计算机架构。引入了调度中心能解决资源调度问题
1.3 RPC
1.3.1 什么是RPC?
将java对象转化为字节流的过程就叫序列化
将字节流转化为java对象的过程就叫反序列化
当java对象需要在网络上进行传输或者持久化存储到文件中,就需要对java对象进行序列化
对于一个RPC框架好坏的评判就是建立起网络连接的速度快不快,序列化与反序列化的速度快不快
简而言之RPC的核心模块就是:通讯,序列化
RPC(Remote Producedure Call)是指远程过程调用,是一种进程间的通信方式,它是一种技术思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。
1.3.2 实例
客户端A想调用客户端b的方法,那么要经过如下过程
1.4 dubbo简介
面向接口代理:
类似与mybatis一样,直接调用接口中的方法。不关注内部实现细节
负载均衡:
根据服务器的状态,将流量负载到多台服务器上减轻服务器压力
服务自动注册与发现:
将服务器都注册到注册中心中,服务上下线都会实时感知。有了注册中心服务调度之间就会很方便,要调用什么服务就去注册中心中去查找。
可以想象我们现实生活中的婚介公司,里面有很多人注册了信息,你想找什么样的去打电话,吃饭看电影…这样有了婚介公司就对我们找对象很方便了不是~
同理注册中心也是一样,有了注册中心服务之间的关系就会变得很清晰,很容易找到之间的关系
高度可扩展能力:
内核是计算机上配置的底层软件,是OS最基本、最核心的部分
微内核:只包含基础功能的内核部分(必不可少),时钟管理、中断处理、原语
Dubbot遵循微内核+插件的方式,有很强的扩展能力
运行期流行调度
灰度发布:就是将新功能先上线部分服务器,这一部分服务器用着没问题了,在发布到其余服务器上
可视化的服务治理与运维
就是一个可视化的监控平台嘛
1.5 Dubbot设计架构
长连接:指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发送链路检测包
短连接:短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。
- 服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
- 监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
1.5.1 调用关系说明
- 服务容器负责启动,加载,运行服务提供者
- 服务提供者在启动时,向注册中心注册自己所提供的服务
- 服务消费者在启动时,向注册中心订阅自己所需的服务
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送更新给消费者
- 服务消费者,从提供地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
1.6 Zookeeper注册中心
下载安装包,解压安装即可
我们这里只把zk当做注册中心来用,详细的教程后面会出
1.7 管理控制台
开启zookeeper服务
部署在windows服务器上,运行jar包即可
dubbo本身并不是一个服务软件。它其实就是一个jar包能够帮你的java程序连接到zookeeper,并利用zookeeper消费、提供服务。所以你不用在Linux上启动什么dubbo服务。
java -jar 包名
账号密码都是root
以上是关于Dubbo快速入门的主要内容,如果未能解决你的问题,请参考以下文章