从零开始认识Dubbo
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始认识Dubbo相关的知识,希望对你有一定的参考价值。
参考技术A[TOC]
1.Dubbo是什么
Apache Dubbo 是一款高性能Java RPC框架。
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东, 说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册) 其核心部分包含:
2.Dubbo能做什么
Dubbo采用全spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。
3.Dubbo架构
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
调用关系说明:
4.Dubbo的使用方法
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。如果不想使用Spring配置,可以通过API的方式进行调用(注解式,不推荐使用)
下载安装zookeeper注册中心(不建议使用multicast)
1.Windows
下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
使用方法:下载解压即可,进入解压目录运行zkServer.cmd启动注册服务中心
截图:
2.MacOS
下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
使用方法:下载解压即可,进入解压目录运行zkServer.sh start启动注册服务中心
3.Linux
下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
使用方法:下载解压即可,进入解压目录运行zkServer.sh start启动注册服务中心
服务提供者
1.定义服务接口(该接口需单独打包,在服务提供方和消费方共享)
DemoService.java
2.服务提供方实现接口:(对服务消费方隐藏实现)
DemoServiceImpl.java
dubbo-provider.xml:
4.加载Spring配置,启动服务:
Provider.java:
或者使用springBoot启动
服务消费者:
applicationContext-dubbo.xml 中注册自己需要调用的接口。
1.通过Spring配置引用远程服务
dubbo-consumer.xml:
2.加载Spring配置,并调用远程服务:
Consumer.java
或者使用springBoot启动
并添加对应的restful接口提供接口访问
修改对应index页面
3.dubbo管理页面:
启动后访问 http://localhost:8080/dubbo-admin/
输入账号密码root/root
应用页面:
提供者页面:
消费者页面:
服务页面:
测试是否成功,只要看状态是否正常,就ok了 ....
provider-log:
5.使用Dubbo可能遇到的问题
1、org.springframework.beans.factory.BeanCreationException
原因分析:
解决方案
2、org.apache.dubbo.rpc.RpcException
原因分析
解决方案
可能是因为providers没有启动,或者是provider对应暴露的服务被禁用,启动providers或者解除禁用即可
3、java.lang.IllegalStateException
原因分析
解决方案
总结以上两点,通俗点讲,就是重启了工程(可能是因为直接修改代码,工程reload了), 并且,连过了数据库(登录等),才出现了上述报错信息。原因是因为在tomcat重启的时候,之前的tomcat的线程还没有完全关闭,最新启动tomcat就会报这个异常。
4、org.apache.dubbo.remoting.TimeoutException
原因分析
解决方案
在dubbo-provider.xml增加超时时间
以上是关于从零开始认识Dubbo的主要内容,如果未能解决你的问题,请参考以下文章