Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,提供多种负载均衡策略,以优化服务调用性能和可用性。
loadbalance
属性指定策略。例如:
xml
com.alibaba.dubbo.rpc.cluster.loadbalance.LoadBalance
接口并注册到 Dubbo 扩展机制,可以实现自定义策略。
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)。
Dubbo的核心部分包括:
1、远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
2、集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
3、服务自动注册与发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。
Dubbo的作用
1、透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
2、软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
3、服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
Dubbo是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。
Dubbo内部使用了 Netty、Zookeeper,保证了高性能高可用性,使用Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用和灵活扩展,使前端应用能更快速的响应多变的市场需求。
另外,分布式架构可以承受更大规模的并发流量。
Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。
当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。
缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护
垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的体积可控,一定程度上降低了开发人员之间协同以及维护的成本,提升了开发效率。
缺点:但是在垂直架构中相同逻辑代码需要不断地复制,不能复用。
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心
随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。
课程目标:
了解远程调用PRC的概念,分布式应用为什么使用RPC, 基于PRC协议的Dubbo的使用。 Dubbo框架的特点,框架的组件;基于Dubbo服务提供者,消费者,注册中心Zookeeper的分布式应用的开发部署, Dubbo的负载均衡实现。 微服务的开发. Spring + Dubbo + Zookeeper + Linux
适用人群:
适合有Java基础,要进入到互联网行业的开发人员,微服务开发。
动力节点的Dubbo课程以实战为主讲解,从基础开始手把手式地详细讲解RPC概念,PRC在分布式应用的重要作用。 Dubbo分布式服务框架的应用入门基础。 传统应用到分布式以及微服务的转变思想。 Dubbo协议的特点。 Dubbo分布式服务的详细开发流程、Dubbo服务的实施部署,Zookeeper的服务管理等。
课程目录:
•视频教程-dubbo前言
•视频教程-dubbo概述
•视频教程-初识dubbo
•视频教程-dubbo前世今生
•视频教程-dubbo结构概述-1
•视频教程-dubbo结构概述-2
•视频教程-dubbo的使用-直连方式-1
•视频教程-dubbo的使用-直连方式-2
•视频教程-dubbo的使用-直连方式-3
•视频教程-dubbo的使用-直连方式-4
•视频教程-dubbo服务化最佳实践-概述
•视频教程-dubbo服务化最佳实践-1
•视频教程-dubbo服务化最佳实践-2
•视频教程-dubbo服务化最佳实践-3
•视频教程-dubbo服务化最佳实践-4
•视频教程-dubbo服务化最佳实践-5
•视频教程-注册中心概述
•视频教程-Windows下安装及配置zookeeper
•视频教程-linux下安装及配置zookeeper
•视频教程-内容回顾
•视频教程-dubbo实例-使用注册中心-1
•视频教程-dubbo实例-使用注册中心-2
•视频教程-dubbo实例-使用注册中心-3
•视频教程-dubbo实例-使用注册中心-4
•视频教程-dubbo实例-使用注册中心-5
•视频教程-dubbo实例使用linux注册中心
•视频教程-dubbo实例-版本号version的使用-1
•视频教程-dubbo实例-版本号version的使用-2
•视频教程-dubbo实例-版本号version的使用-3
•视频教程-dubbo实例-版本号version的使用-4
•视频教程-解决学生问题
•视频教程-dubbo配置中常见属性
•视频教程-dubbo的高稳定性
•视频教程-监控中心-1
•视频教程-监控中心-2
Dubbo实战视频教程:
Dubbo全套资料下载
Dubbo是Alibaba开源的分布式服务框架,它按照分层的方式来架构,使用这种方式可以使各层解耦。
Dubbo在调用远程的服务的时候再本地有一个接口,就想调用本地方法一样去调用,底层实现好参数传输和远程服务运行结果传回之后的返回。
Dubbo的特点: (1)它主要使用高效的网络框架和序列化框架,让分布式服务之间调用效率更高。
(2)采用注册中心管理众多的服务接口地址,当你想调用服务的时候只需要跟注册中心询问即可,不像使用WebService一样每个服务都得记录好接口调用方式。
(3)监控中心时实现服务方和调用方之间运行状态的监控,还能控制服务的优先级、权限、权重、上下线等,让整个庞大的分布式服务系统的维护和治理比较方便。
(4)高可用,如果有服务挂了,注册中心就会从服务列表去掉该节点,客户端会像注册中心请求另一台可用的服务节点重新调用。
同时注册中心也能实现高可用(ZooKeeper)。
(5)负载均衡,采用软负载均衡算法实现对多个相同服务的节点的请求负载均衡。
Dubbo需要四大基本组件:Rigistry,Monitor,Provider,Consumer。
1、监控中心的配置文件文件 (1)容器,监控中心是在jetty和spring环境下运行,依赖于注册中心,日志系统是log4j = log4j,spring,registry,jetty (2)监控服务的名称,监控系统对整个Dubbo服务系统来说也是一个服务 = simple-monitor (3)服务的所有者,这是Dubbbo的服务的功能,可以指定服务的负责人 = coselding (4)注册中心的地址,配置后监控中心就能通过注册中心获取当前可用的服务列表及其状态,在页面向你汇报Dubbo中的服务运行情况。
= multicast://{ip}:{port} //广播 = zookeeper://{ip}:{port} // = redis://{ip}:{port} // = dubbo://{ip}:{port} //dubbo (5)dubbo协议端口号 = 7070 (6)jetty工作端口号 = 8082 (7)工作目录,用于存放监控中心的数据 = ${}/monitor (8)监控中心报表存放目录=${}/charts (9)监控中心数据资料目录=${}/monitor/statistics (10)监控中心日志文件路径=logs/ (11)监控中心日志记录级别=WARN 2、Dubbo提供负载均衡方式 (1)Random,随机,按权重配置随机概率,调用量越大分布越均匀,默认方式。
(2)RounRobin,轮询,按权重设置轮询比例,如果存在比较慢的机器容易在这台机器上请求阻塞较多。
(3)LeastActive,最少活跃调用数,不支持权重,只能根据自动识别的活跃数分配,不能灵活调配。
(4)ConsistenHash,一致性hash,对相同参数的请求路由到一个服务提供者上,如果有类似灰度发布需求可采用。
3、Dubbo过滤器 Dubbo初始化过程加载ClassPath下的Meta-INF/dubbo/internal/,META-INF/dubbo/,META-INF/services/三个路径下的文件。
文件内容: Name = FullClassName,这些类必须实现Filter接口。
自定义Filter类: 配置文件在配置过滤器,中:Dubbo对过滤器的加载过程: 先加载三个路径下的文件里面的键值对,key为过滤器名称,value为过滤器的类的全限定名(这个类必须实现Dubbo中的Filter接口)。
自定义的类中@Active注解是过滤器设定的全局基本属性。
Spring在加载文件时,通过
本文地址:https://www.badfl.com/article/18936.html
上一篇:dubbo负载均衡dubbo负载均衡在客户端还是服...
下一篇:plsql注册码plsql注册码在哪里输入...