Dubbo

dubbo常见面试题,小记(一)

爷,独闯天下 提交于 2020-01-12 05:37:54
dubbo 是主流的RPC服务端框架,可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。还有注册中心、协议支持、服务监控、等内容。 常见dubbo面试题 1、dubbo默认使用的是什么通信框架,还有什么? 默认使用netty框架,还有mina。 2、dubbo服务调用是阻塞的吗? 默认是阻塞的,可以异步调用,没有返回值的可以这么做。 3、一般使用什么注册中心? 推荐使用zookeeper注册中心,还有redis等不推荐。Nacos等新注册中心也是可以的。 4、服务提供者能实现失效踢出是什么原理? 服务失效踢出基于zookeeper的临时节点原理。 5、服务上线怎么不影响旧版本? 采用dubbo多版本开发,不影响旧版本。 6、如何解决服务调用链过长的问题? 可以结合zipkin实现分布式服务追踪。 7、dubbo推荐用什么协议? 默认使用dubbo协议。 8、同一个服务多个注册的情况下可以直连某一个服务吗? 可以直连,修改配置即可,也可以通过telnet直接某个服务。 9、画一画服务注册与发现的流程图 10、Dubbo集群容错怎么做? 读操作建议使用Failover失败自动切换,默认重试两次其他服务器。写操作建议使用Failfast快速失败,发一次调用失败就立即报错。 11、在使用过程中都遇到了些什么问题? 使用过程中的问题可以百度 12

【掌握】dubbo环境搭建linux

纵然是瞬间 提交于 2020-01-12 01:37:46
1,安装zookeeper 1.1,安装JDK 1.1.1,下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1.1.2,使用 XFTP工具导入 linux 1.1.3,解压到/root/software目录 mkdir /root/software #在root下面创建software目录 tar -zxvf jdk-8u181-linux-x64.tar.gz -C /root/software #解压到指定目录 1.1.4,配置环境变量并测试 打开控制台,运行$ sudo vi /etc/profile,在最后插入下面要配置的内容 ,按Esc键 ,输入( :wq 保存并退出) JAVA_HOME=/root/software/jdk1.8.0_181 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH 让环境变量生效,执行下面的命令 source /etc/profile 验证 java -version 1.1.3,解压到/root

02【掌握】dubbo核心概念

喜欢而已 提交于 2020-01-12 00:31:31
1,简介 Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 官网: http://dubbo.apache.org/ 2,基本概念 服务提供者( Provider ): 暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。 服务消费者( Consumer ) : 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。 注册中心( Registry ): 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者 监控中心( Monitor ): 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心 调用关系说明 服务容器负责启动,加载,运行服务提供者。 服务提供者在启动时,向注册中心注册自己提供的服务。 服务消费者在启动时,向注册中心订阅自己所需的服务。 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。 服务消费者,从提供者地址列表中,基于软负载均衡算法

03【掌握】dubbo环境搭建windows

拥有回忆 提交于 2020-01-12 00:29:15
1,下载并安装zookepper 1.1、下载zookeeper 网址 https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/ 1.2、解压zookeeper 解压运行zkServer.cmd ,初次运行会报错,没有zoo.cfg配置文件 1.3、修改zoo.cfg配置文件 将conf下的zoo_sample.cfg复制一份改名为zoo.cfg即可。 注意几个重要位置: dataDir=./ 临时数据存储的目录(可写相对路径) clientPort=2181 zookeeper的端口号 修改完成后再次启动zookeeper 1.4、使用zkCli.cmd测试 ls /:列出zookeeper根下保存的所有节点 create –e /sxt 123:创建一个sxt节点,值为123 get /sxt:获取/sxt节点的值 2,下载并安装dubbo-admin dubbo本身并不是一个服务软件。它其实就是一个jar包能够帮你的java程序连接到zookeeper,并利用zookeeper消费、提供服务。所以你不用在Linux上启动什么dubbo服务。 但是为了让用户更好的管理监控众多的dubbo服务,官方提供了一个可视化的监控程序,不过这个监控即使不装也不影响使用。 1、下载dubbo-admin https:/

dubbo入门第一篇

会有一股神秘感。 提交于 2020-01-11 23:06:46
dubbo入门第一篇 dubbo简单入门,快速搭建 互联网架构演变 互联网规模不断扩大,常规的垂直应用架构已经无法支持服务的正常使用,分布式服务架构的演变,可以保证在分布式服务间的调用不断的清晰明了。 单一应用架构 网站流量很小,只需一台机器,一个应用,将所有功能部署在一个应用中,用于简化增删改查工作量的数据访问(ORM)是关键。 垂直应用架构 访问量逐步增加,单一引用逐渐达到瓶颈(系统响应时间逐渐上升),提升效率的方法之一就是将应用拆分成互不相干的几个引用,来提升效率。此时加速前端页面开发的web框架(MVC)是关键 分布式服务架构 当垂直应用越来越多,应用间的交互不可避免,将核心的业务独立出来一个服务,逐渐形成稳定的服务中心,使前端应用更加快速的满足多变的市场需求。此时用于提高业务复用和分布式服务框架(RPC)是关键 流动计算架构 当服务月来越多,容量的评估,小服务资源浪费问题逐渐显现,此时需要增加一个基于访问压力实时管理集群容量,提高集群利用率。此时,提高机器利用率的资源调度和治理中心(SOA)是关键 注: ORM:是“对象-关系映射”(object/relationl Mapping)的缩写。 面向对象开发都是将一切实体看成是对象(Object),关系型数据库是通过实体间关系映射连接数据。 也就是说 ORM是通过实例对象的语法,完成关系型数据库的操作的技术。 MVC: M

Dubbo-入门到精通(一)

风流意气都作罢 提交于 2020-01-11 17:20:31
为了个人的技术提升,所以今天开始自学dubbo(当然,肯定要参考官方文档和其他各位大神的文章,,标题中的入门到精通,现在才是入门的开始),以此来记录遇到的问题和大家分享,在这里我参考了( https://segmentfault.com/a/1190000019896723 )他的文章,在他的文章里讲了几种开发方式,xml, api和基于注解。既然如今 springboot 盛行,大家都倾向于 java config的方式,所以我这里只写一下 java config方式的启动。 一、首先引入maven(可能导致 log4j 冲突,所以我把它给移除了),这里引用了 dubbo git上的推荐 (dubbo 官方地址: http://dubbo.apache.org/en-us/ ,dubbo git地址: https://github.com/apache/dubbo )。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:/

Springboot整合Dubbo过程(简述)

感情迁移 提交于 2020-01-11 01:59:04
Springboot整合Dubbo过程(简述) 1.启动zookeeper(注册中心) 2.启动监控中心 注意:监控中心有两种,一直是普通的监控中心,一种是简易的监控中心 如果是简易的监控中心,需要在springboot的application下面去做2.1/2.2 2.1).配置协议,去注册中心发现发现地址 2.2).直接连接监控中心服务器地址 3.建项目,写业务,抽取api(公共部分) 4.引入dubbo的依赖 注意:3/4两步顺在consumer和provider都要做 5.配置提供者 5.1).写名称 5.2).指定注册中心 5.3).指定通信规则 5.4).暴露服务 5.4.1 把实现类交给spring容器管理 ​ @Service/@Component注解,注意这个是spring的注解 5.4.2 暴露服务,把容器的服务暴露出去 ​ @Service 注意这个不同于上面的注解,这个是dubbo专属的 5.4.3 在application中开启扫描 ​ @EnableDubbo//开启基于注解的Dubbo功能 6.配置消费者 6.1).写名称 6.2).指定注册中心(同提供者) 6.3).声明需要调用的远程服务接口,生成远程服务代理对象,现在也是用注解 6.3.1 把以前的自动注入@Autowired 改成 dubbo专属的@Reference ​ 远程引用某个服务

一.走进Hystrix

喜你入骨 提交于 2020-01-11 01:48:43
hystrix介绍   Hystrix 供分布式系统使用,提供延迟和容错功能,隔离远程系统、访问和第三方程序库的访问点,防止级联失败,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。 hystrix历史    hystrix,高可用性保障的一个框架,是 Netflix公司 API团队从 2011年开始做一些提升系统可用性和稳定性的工作, Hystrix就是从那时候开始发展出来的。 时至今日, Netflix中每天都有数十亿次的服务间调用,通过 Hystrix框架在进行,而 Hystrix也帮助 Netflix网站提升了整体的可用性和稳定性。 hystrix的适用场景 适用场景:   对于一个分布式系统,不同的的服务间存在着很多依赖,比如服务A依赖服务B、C、D,服务A拿到B、C、D返回的数据,进行下一个环节的操作,这时候如果服务B出现故障,这时候使用hystrix可以确保服务A停止调用服务B,只调用服务C、服务D,使系统能正常的响应,不会因为服务B故障而导致整个系统崩溃。   例如:     短信发送微服务,因为对接了多个渠道,当某个渠道不可用的情况下,hystrix熔断掉,然后采取另外的渠道进行下发。在发送量级比较大的情况,可以减少短信发送进行重试的时间。 不适用场景:   如果你的服务所依赖的服务均是核心业务,不能熔断,这个时候就不能使用hystrix了。   例如:

Dubbo协议

喜欢而已 提交于 2020-01-10 13:45:50
参考dubbo官方文档http://dubbo.apache.org/zh-cn/docs/user/references/protocol/dubbo.html dubbo共支持如下几种通信协议: dubbo:// (缺省) rmi:// hessian:// http:// webservice:// thrift:// memcached:// redis:// 部分协议的特点和使用场景如下: 1、dubbo协议 Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。 缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。 连接个数:单连接 连接方式:长连接 传输协议:TCP 传输方式:NIO异步传输 序列化:Hessian二进制序列化 适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。 适用场景:常规远程服务方法调用 常见问题 为什么要消费者比提供者个数多? 因 dubbo 协议采用单一长连接,假设网络为千兆网卡 [3] ,根据测试经验数据每条连接最多只能压满 7MByte(不同的环境可能不一样,供参考),理论上 1 个服务提供者需要 20

Dubbo 面试18问

北战南征 提交于 2020-01-10 11:07:17
dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含: 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。 dubbo能做什么 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。 1、默认使用的是什么通信框架,还有别的选择吗? 答:默认也推荐使用 netty 框架,还有 mina。 2、服务调用是阻塞的吗? 答:默认是阻塞的,可以异步调用,没有返回值的可以这么做。 3、一般使用什么注册中心?还有别的选择吗? 答:推荐使用 zookeeper 注册中心,还有 Multicast注册中心, Redis注册中心, Simple注册中心.ZooKeeper的节点是通过像树一样的结构来进行维护的,并且每一个节点通过路径来标示以及访问