javadubbo(javadubbo分布式)
本篇文章给大家谈谈javadubbo,以及javadubbo分布式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、请问java高手,dubbo接口和http接口有什么区别?
- 2、关于jmeter测试dubbo接口方式
- 3、dubbo服务暴露原理
- 4、Dubbo(一)——Dubbo 集成于 Spring 的原理
- 5、Dubbo 协议
- 6、Dubbo简介
请问java高手,dubbo接口和http接口有什么区别?
Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实坦友现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有带陆不同的行为(功能)。 接口的两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口让行槐”。c中的函数,基本上指的是方法
关于jmeter测试dubbo接口方式
本文章介绍如何使用jmeter测试dubbo接口,涉及如下两种方式
1.使用官方dubbo版本包测试dubbo接口
2.通过自己编写java请求插件,实现dubbo调用
选择方式1或方式2并没有什么区别,取决于部分自研公司对dubbo进行了封装,导致官方提供的dubbo包并不适用于方式1,则可以通过方式2去调用
解压tar将获取到的jar包放入${JMETER_HOME}\lib\ext路径下(这里获取到的jar包为jmeter-plugins-dubbo-2.7.1-jar-with-dependencies),重启jmeter应用(这里重启完应用会添加取样器会多出一个dubbo sample)
右键添加,选择线程-线程组
2.光标对准线程组右键添加-取样器-dubbo sample
此处需要关注,当方法接收的是一个String,或者List等类型的参数,可参照截图配置
那么当方法接收的参数是一个对象时,需要获取对接接口的api jar包并关联到当前测试计划
选中测试计划,点击下方浏览按钮,选择对应的jar包
传参的具体方式可参照如下
接口1返回:
接口2返回
看了下网上的大和睁粗多请求都是单接口请求dubbo,这样就会导致,每次有新的接口的时候都得去更新新的请求,这里提供一个一劳永逸的方法,通过泛化调用,实现一个jar请求可适配所有接口,一般看到这个文章的可能大多都是测试的同学,对于当前方法需要对java有一定的基础,所以这个时候就体验到学习的重要性了,下面开始操作吧
file-new-project,选择maven
输入组织-坐标后点击next
按需配置名称路径后点击finsh
pom.xml配置如下
实现方式如下
打包操作
左侧窗口为生成的jar包和lib目录
这里要说明下,网上提供了一种方式,通过修早局改安装目录bin下jmeter.properties文件关联lib下的依赖
文件中增加如下(通过尝试,这么做会导致jmeter启动由于jar包加载顺序的问题,ui部分控件不可用)
这里我使用的是另一种更为简便的方式
将原安装目录lib下ext修改为extbak
新建ext,并将工程lib下的唤镇jar包和dobbo-jmeter-interface-1.0-SNAPSHOT.jar放入之
由于可能会用到随机函数,从extbak获取ApacheJMeter_functions.jar,也放入到新建的ext目录下
重启jmeter,稍等片刻
添加java请求
添加结果树
点击运行后,结果树信息如下
后续可自行配置断言和随机参数等
[img]dubbo服务暴露原理
1先问几个小问题,
1 dubbo 动态代理的目的 是什么?
代理的目的:举个例子,我被老板雇佣,本质上来去完成某一项工作。其实人就是要完成那份工作的代理。从表面上duboo客户端能执行调用某个接口的方法,其实是通过网络传输告诉服务端。我要调用哪些方法,传递给你哪些参数。你帮我执行完。然后把结果给我就行了。这就是dubbo动态代理要完成的功能。只不过框架层面抽象了这个层次,具体功能由框架来实现。dubbo动态代理有两种方案,1个是javaasisit 一个是jdk提码樱供的。可选。为什么出现javaasisit,是基于性能的考虑。生成字节码的速度要比jdk的快。
2服务暴露解决什么问题?
服务暴露就是告诉客户端。我能提供什么服务,对应的ip是什么,端口是什么。你需要让我为你服务,你只需要按一定的协议调用就行。
搞清楚以上两个问题,就基本上了氏模兆解了服务暴露的流程。
主要流程
1 通过netty暴露服务,
2 像注册中心注册,表明我提供什么服务
3订阅 Configurations 监听属性变更时间。
下面主要解析如何通过netty 发布服务,最终的目的达到
创建歼租NettyServer对象并通过doOpen()方法创建Netty Server对象。
doOpen()方法内部创建ServerBootstrap对象并实现bind启动服务监听
HeaderExchangeServer对象的参数通过Transporters.bind()生成的Server对象。
String string = uRL2.getParameter("server", uRL2.getParameter("transporter","netty"));
默认是netty
创建NettyServer对象并通过doOpen()方法创建Netty Server对象。
doOpen()方法内部创建ServerBootstrap对象并实现bind启动服务监听。
Dubbo(一)——Dubbo 集成于 Spring 的原理
最近一直在看dubbo的源码部分。在阅读耐团的时候,需要有一个入手点,才能一点一点的进行下去。自己在研究的时候,发现思绪比较乱,于是就以 芋道源码 为基础,一点一点的啃食。芋道源码是直接从dubbo的配置和一些核心的API开始讲起,是从dubbo已经启动的过程作为开始节点岩亩猜,而这些核心 API 与 Spring 的之间的关系被省略了,这些东西对我来说属于前置的知识点,所以花了比较长的时间又从 Dubbo 的核心 API 倒着往前看。
在阅读 Dubbo 时,发现前置知识越来越多,如:Spring 的 refresh 中的一些核心点,Spring 中 bean 的生命周期,BeanFactory 与 FactoryBean 的区别等。所以这些前置知识花了特别多的时间去补。所幸,虽然补前置知识虽然时间长,但是性价比还是可以的。Dubbo 是依赖于Spring 的上下文环境的框架,其他依赖于 Spring 的框架也是相同的道理。Spring 的一些对外的扩展点,读过之后也会心中有数。
1、本篇主要是描述了 Dubbo 在 Spring 创建上下文的时候,是如何从创建,到能完整提供一个RPC调用能力的一些相关点。
2、由于源码比较多,直接贴断点也太过臃肿,所以仅仅贴一些关键点来概括整个流程。
3、本文是依赖于前面的 dubbo 项目进行断点分析,项目结构可以参照这里。项目中 dubbo 的配置方式是 xml 文件,所以本篇主要说 xml 配置方式。其他方式道理相同,并不是问题的关键点。
4、项目启动的是 dubbo-user 服务,所以 UserService 为 dubbo:service,OrderService 为 dubbo:reference。
下图为Spring 启动时是如何加载 Dubbo 的,其中省略了大量过程,只保留了一些关键节点,省略的部分可以略微脑补一下。
整个流程的入口是 Spring 的 refresh 方法。每个方法都有比较深的调用栈。与 Dubbo 有关的入口是 refresh 中的 invokeBeanFactoryPostProcessors 方法
这个方法是执行 beanFactory 的一些后处理操作,其核心流程为在Spring容器中找出实现了BeanFactoryPostProcessor接口的processor并执行。Spring容器会委托给PostProcessorRegistrationDelegate的invokeBeanFactoryPostProcessors方法执行。
ConfigurationClassPostProcessor 是比较核心的类,在这里我们关注一下这个类。它的作用是对项目中配置的类进行处理。具体处理粗型可以分为几步:
在加载类信息时,spring 会去用各种方式扫到注册的 bean 信息。我们在 spring 中注册的 bean,逃不出这个方法的扫描方式。 核心方法是:
扫描之后,会将扫描到的 bean 注册到 beanDefinitionMap 中
首先是此处 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader#parseBeanDefinitions,可以看出方法会以配置文件根节点起,遍历所有子节点。
其次是这里 org.springframework.beans.factory.xml.BeanDefinitionParserDelegate#parseCustomElement(org.w3c.dom.Element, org.springframework.beans.factory.config.BeanDefinition), 此方法会通过解析出来的节点,获取对应的 Spring 的 namespaceUri ,进而获取对应的配置文件处理器。
此处 ele 参数实际值为 dubbo:service ... /,namespaceUri 为
我们看一下 resolve 方法中的细节。因为这个方法内部才是 Dubbo 依赖于 Spring 的关键点。
此处的 NamespaceHandler 为 DubboNamespaceHandler,再创建结束之后,进行 init 初始化。
可以看到,DubboNamespaceHandler 在初始化的时候,会创建所有 dubbo 标签对应的Config 类的 DubboBeanDefinitionParser。并将 DubboBeanDefinitionParser 和 对应的 dubbo 标签类注册到 NamespaceHandlerSupport 的 parsers 中。
最后,会在 com.alibaba.dubbo.config.spring.schema.DubboBeanDefinitionParser#parse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, java.lang.Class?, boolean) 方法中进行处理
Dubbo 服务比较特殊,beanDefinition 跟普通的 bean 不太一样。在向 beanDefinitionMap 注册时,普通的 beanDefinition 的 beanName 与 beanClass 是对应的;而 dubbo 服务的 beanDefinition 的 beanName 是dubbo 服务的名称,beanClass 为 dubbo 对应的 Bean。
普通的 beanDefinition:
dubbo 引用的服务的 beanDefinition:
这一步的核心流程是从 beanFactory 中获取所有的 ApplicationListener,然后注册到监听器集合中。它的关键点其实是 ServiceBean。因为 ServiceBean 是 ApplicationListener 的实现。
所以 beanFactory 中 ServiceBean 也会被注册到监听器集合中。项目中的 ServiceBean 的 beanClass 实际是 UserService。
这一步的核心点,主要是创建剩余的各类对象,并将其保存到 singletonObjects 中。其中关联的前置知识为 Spring 中 bean 的生命周期 。它的核心方法是:
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean
它的具体流程为:
ps:此处并不是只有这一步才会跟 bean 生命周期相关,bean 生命周期贯穿在 refresh 的很多流程中,只要执行doGetBean 方法,都会走这个流程。此处仅仅借楼关联一下。
这一步的核心点,是通知所有的监听器上下文刷新结束的事件。在这一步执行时,会通知到 ServiceBean。
此处暴露的是 UserService。
Dubbo 的启动条件是完全依赖于 Spring 的启动流程,Spring 的启动流程中核心的点是 refresh 方法。所以只要搞懂 refresh 方法,其他的拓展框架流程也会明白。只不过关联的知识点太多了,还是需要时间的积累才能一点一点的搞懂。
如果本篇有描述不清,或者描述有误的地方,还望在下方留言,大家一起交流,一起学习,一起进步~
Dubbo 协议
Dubbo是 Alibaba 开源的分布式服务框架远程调用框架,在网络间传输数据,就需要通信协议和序列化。
Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的,默认也是用的dubbo协议。
先介绍几种常见的协议:
缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。
连接个数:单连接
连接方式:长连接乎带
传输协议:TCP
传输方式:NIO异步传输
序列化:Hessian二进制序列化
适用范围:传入传出参数数据包较小(建议小于100K),消费者比岩谈提供者个数粗顷碰多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。
适用场景:常规远程服务方法调用
1、dubbo默认采用dubbo协议,dubbo协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况
2、他不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。
配置如下:
dubbo:protocol name="dubbo" port="20880" /
dubbo:protocol name=“dubbo” port=“9090” server=“netty” client=“netty” codec=“dubbo”
serialization=“hessian2” charset=“UTF-8” threadpool=“fixed” threads=“100” queues=“0” iothreads=“9”
buffer=“8192” accepts=“1000” payload=“8388608” /
3、Dubbo协议缺省每服务每提供者每消费者使用单一长连接,如果数据量较大,可以使用多个连接。
dubbo:protocol name="dubbo" connections="2" /
4、为防止被大量连接撑挂,可在服务提供方限制大接收连接数,以实现服务提供方自我保护
dubbo:protocol name="dubbo" accepts="1000" /
Java标准的远程调用协议。
连接个数:多连接
连接方式:短连接
传输协议:TCP
传输方式:同步传输
序列化:Java标准二进制序列化
适用范围:传入传出参数数据包大小混合,消费者与提供者个数差不多,可传文件。
适用场景:常规远程服务方法调用,与原生RMI服务互操作
RMI协议采用JDK标准的java.rmi.*实现,采用阻塞式短连接和JDK标准序列化方式 。
基于Hessian的远程调用协议。
连接个数:多连接
连接方式:短连接
传输协议:HTTP
传输方式:同步传输
序列化:表单序列化
适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。
适用场景:需同时给应用程序和浏览器JS使用的服务。
1、Hessian协议用于集成Hessian的服务,Hessian底层采用Http通讯,采用Servlet暴露服务,Dubbo缺省内嵌Jetty作为服务器实现。
2、Hessian是Caucho开源的一个RPC框架: ,其通讯效率高于WebService和Java自带的序列化。
基于http表单的远程调用协议。参见:[HTTP协议使用说明]
连接个数:多连接
连接方式:短连接
传输协议:HTTP
传输方式:同步传输
序列化:表单序列化
适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。
适用场景:需同时给应用程序和浏览器JS使用的服务。
基于WebService的远程调用协议。
连接个数:多连接
连接方式:短连接
传输协议:HTTP
传输方式:同步传输
序列化:SOAP文本序列化
适用场景:系统集成,跨语言调用
序列化是将一个对象变成一个二进制流就是序列化, 反序列化是将二进制流转换成对象
为什么要序列化?
Dubbo序列化支持java、compactedjava、nativejava、fastjson、dubbo、fst、hessian2、kryo,其中默认hessian2。其中java、compactedjava、nativejava属于原生java的序列化。
hessian2序列化:hessian是一种跨语言的高效二进制序列化方式。但这里实际不是原生的hessian2序列化,而是阿里修改过的,它是dubbo RPC默认启用的序列化方式。
json序列化:目前有两种实现,一种是采用的阿里的fastjson库,另一种是采用dubbo中自己实现的简单json库,但其实现都不是特别成熟,而且json这种文本序列化性能一般不如上面两种二进制序列化。
java序列化:主要是采用JDK自带的Java序列化实现,性能很不理想。
Dubbo简介
Dubbo是Alibaba开源的分布式服务框架,它按照分层的方式来架构,使用这种方式可以使各层解耦。
Dubbo在调用远程的服务的时候再本地有一个接口,就想调用本地方法一样去调用,底层实现好参数传输和远程服务运行结果传回之后的返回。
Dubbo的特点:
(1)它主要使用高效的网络框架和序列化框架,让分布式服务之间调用效率更高。
(2)采用注册中心管理众多的服务接口地址,当你想调用服务的时候只需要跟注册中心询问谈歼瞎即可,不像使用WebService一样每个服务都得记录好接口调用方式。
(3)监控中心时实现服务方和调用方之间运行状态的监控,还能控制服务的优先级、权限、权重、上下线等,让整个庞大的分布式服务系统的维护和治理比较方便。
(4)高可用,如果有服务挂了,注册中心就会从服务列表去掉该节点,客户端会像注册中心请求另一台可用的服务节点重新调用。同时注册中心也能实现高可用(ZooKeeper)。
(5)负载均衡,采用软负载均衡算法实现对多个相同服务的节点的请求负载均衡。
Dubbo需要四大基本组件:Rigistry,Monitor,Provider,Consumer。
1、含空监控中心的配置文件-dubbo.properties文件
(1)容器改改,监控中心是在jetty和spring环境下运行,依赖于注册中心,日志系统是log4j
dubbo.container = log4j,spring,registry,jetty
(2)监控服务的名称,监控系统对整个Dubbo服务系统来说也是一个服务
dubbo.application.name = simple-monitor
(3)服务的所有者,这是Dubbbo的服务的功能,可以指定服务的负责人
dubbo.application.owner = coselding
(4)注册中心的地址,配置后监控中心就能通过注册中心获取当前可用的服务列表及其状态,在页面向你汇报Dubbo中的服务运行情况。
dubbo.registr.address = multicast://{ip}:{port} //广播
dubbo.registr.address = zookeeper://{ip}:{port} //zookeper
dubbo.registr.address = redis://{ip}:{port} //redis
dubbo.registr.address = dubbo://{ip}:{port} //dubbo
(5)dubbo协议端口号
dubbo.protocol.port = 7070
(6)jetty工作端口号
dubbo.jetty.port = 8082
(7)工作目录,用于存放监控中心的数据
dubbo.jetty.directory = ${user.home}/monitor
(8)监控中心报表存放目录
dubbo.charts.directory=${dubbo.jetty.directory}/charts
(9)监控中心数据资料目录
dubbo.statistics.directory=${user.home}/monitor/statistics
(10)监控中心日志文件路径
dubbo.log4j.file=logs/dubbo-monitor-simple.log
(11)监控中心日志记录级别
dubbo.log4j.level=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/三个路径下的com.alibaba.dubbo.rpc.Filter文件。文件内容:
Name = FullClassName,这些类必须实现Filter接口。
自定义Filter类:
配置文件在配置过滤器,consumer.xml中:
Dubbo对过滤器的加载过程:
先加载三个路径下的com.alibaba.dubbo.rpc.Filter文件里面的键值对,key为过滤器名称,value为过滤器的类的全限定名(这个类必须实现Dubbo中的Filter接口)。
自定义的类中@Active注解是过滤器设定的全局基本属性。
Spring在加载consumer.xml文件时,通过 dubbo:consumer filter="xxx" id = "xxx" retrries = "0"这个配置指定消费者端要加载的过滤器,通过filter属性指定过滤器名称。
@Activate注解-自动激活,group属性是表示匹配了对应的角色才被加载,value表示表明过滤条件,不写则表示所有条件都会被加载,写了则只有dubbo URL中包含该参数名且参数值不为空才被加载,这个参数会以dubbo协议的一个参数K-V对传到Provider。
4、Dubbo的Provider配置
5、Dubbo的Consumer配置
1、Dubbo是什么?
Dubbo是阿里巴巴开源的基于Java的高性能RPC分布式框架。
2、为什么使用Dubbo?
很多公司都在使用,经过很多线上的考验,内部使用了Netty,Zookeeper,保证了高性能可用性。
使用Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可以提高业务复用灵活性扩展,使前端应用能快速的响应对边的市场需求。分布式架构可以承受更大规模的并发流量。
Dubbo的服务治理图:
3、Dubbo和Spring Cloud的区别
两个没有关联,但是非要说区别,有如下几点:
(1)通信方式不同,Dubbo使用RPC通信,Spring Cloud使用HTTP Restful方式
(2)组成部分不同
4、Dubbo支持的协议
dubbo:// (推荐);rmi:// ;hessian:// ;http:// ;webservice:// ;thrift:// ;memcached:// ;redis:// ;rest:// 。
5、Dubbo需要容器吗?
不需要,如果硬要容器的话,会增加复杂性,同时也浪费资源。
6、Dubbo内置的服务容器
Spring Container;Jetty Container;Log4j Container。
7、Dubbo中节点角色
Register,Monitor,Provider,Consumer,Container(服务运行的容器)。
8、Dubbo的服务注册和发现的流程图
9、Dubbo的注册中心
默认使用Zookeper作为注册中心,还有Redis,Multicast,dubbo注册中心。
10、Dubbo的配置方式
Spring配置方式和Java API配置方式
11、Dubbo的核心配置
(1)dubbo:service 服务配置
(2)dubbo:referece 引用配置
(3)dubbo:protocol 协议配置
(4)dubbo:application 应用配置
(5)dubbo:registry 注册中心配置
(6)dubbo:monitor 监控中心配置
(7)dubbo:provider 提供方配置
(8)dubbo:consumer 消费方配置
(9)dubbo:method 方法配置
(10)dubbo:argument 参数配置
12、在Provider 节点上可以配置Consumer端的属性有哪些?
(1)timeout:方法调用超时
(2)retries:失败重试次数,默认是2次
(3)loadbalance:负载均衡算法,默认随机
(4)actives消费者端,最大并发调用控制
13、Dubbo启动时如果依赖的服务不可用会怎样
Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成。默认check ="true"。
14、Dubbo序列化框架
推荐使用Hessian序列化,还有Dubbo,FastJson,Java自带序列化。
15、Dubbo的通信框架
默认使用Netty框架,另外也提供了Mina,Grizzly。
16、Dubbo集群容错方案
(1)Failover Cluster,失败自动切换,自动重试其他服务器。
(2)Failfast Cluster,快速失败,立即报错,只发起一次调用。
(3)Failsafe Cluster,失败安全,出现异常时,直接忽略。
(4)Failback Cluster,失败自动恢复,记录失败请求,定时重发。
(5)Forking Cluster,并行调用多个服务器,只要一个返回成功即可。
(6)Broadcast Cluster,广播逐个调用所有提供者,任意一个报错则报错。
17、Dubbo的负载均衡策略
(1)Random LoadBalance,随机,按权重设置随机概率,默认。
(2)RoundRobin LoadBalace,轮询,按公约后的权重设置轮训比例。
(3)LeastActive LoadBalace,最少活跃调用数,相同活跃数的随机。
(4)ConsistenHash LoadBalance,一致性hash,相同参数的请求总是发到用一个服务器。
18、指定某一个服务
可以配置环境点对点直连,绕过注册中心,将以服务接口为单位,忽略注册中心的提供者列表。
dubbo:reference interface="com.weidian.dubbo.IMyDemo" version="1.0" id="myDemo" url="dubbo://127.0.0.1:20880/"/dubbo:reference
19、Dubbo多协议
Dubbo允许配置多协议,在不同服务器上支持不同协议,或者同一服务支持多种协议。
20、当一个服务有多种实现时怎么做?
当一个接口有多种是现实,可以用group属性来分组,服务提供方和消费方都指定同一个group即可。
21、兼容旧版本
使用版本号过度,多个不同版本的服务注册到注册中心,版本号不同的服务相互间不引用。
22、Dubbo可以缓存吗?
Dubbo提供声明式缓存,用于加速热门数据的访问速度,以减少用户加缓存的工作量。
23、Dubbo服务之间的调用时阻塞的吗?
默认是同步等待结果阻塞的,支持异步调用。Dubbo是基于NIO的非阻塞实现并行调用的,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较小,异步调用会返回一个Future对象。
24、Dubbo不支持分布式事务
25、Dubbo必须依赖的包
Dubbo必须依赖JDK,其他为可选。
26、Dubbo使用过程中的问题
Dubbo的设计目的是为了满足高并发小数据量的rpc请求,在大数据量下性能表现不是很好,建议使用rmi或http协议。
27、Dubbo的管理控制台的作用
路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡。
28、Spring boot整合Dubbo
(1)添加依赖
!-- --
dependency
groupIdcom.alibaba.boot/groupId
artifactIddubbo-spring-boot-starter/artifactId
version0.1.0/version
/dependency
!-- --
dependency
groupIdcom.101tec/groupId
artifactIdzkclient/artifactId
version0.10/version
/dependency
(2)配置dubbo
## Dubbo 服务提供者配置
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=org.spring.springboot.dubbo
## Dubbo 服务消费者配置
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=org.spring.springboot.dubbo
关于javadubbo和javadubbo分布式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。