Dubbo01
Posted quyangyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dubbo01相关的知识,希望对你有一定的参考价值。
dubbo实质是一个jar,可通过maven引入
服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
将dubbo引入项目,上传到/opt路径
apache-tomcat-8.5.24.tar.gz
dubbo-admin-2.6.0.war
centos7 192.168.239.139
unzip file 文件名 -c 解压路径
tar -zxvf apache-tomcat-8.5.24.tar.gz
unzip dubbo-admin-2.6.0.war -c dubbo
配置tomcat的server.xml配置文件
server.xml 目录结构 <Server> <Listener /> <GlobaNamingResources> </GlobaNamingResources <Service> <Connector /> <Engine> <Logger /> <Realm /> <host> <Logger /> <Context /> </host> </Engine> </Service> </Server> <Context>元素 它由Context接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.一个<Host>可以包含多个<Context>元素.
每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个 path : 该Context的路径名是"",故该Context是该Host的默认Context docBase : 该Context的根目录是webapps/mycontext/
<Context path="/dubbo" docBase="/opt/dubbo" debug="0" privileged="true" />
安装zookeeper
tar -zxvf zookeeper-3.4.11
vi zoo.cfg
dataDir=/opt/zookeeper-3.4.11/data
启动
./zkServer.sh start
./zkServer.sh status
dubbo的使用分为提供端和消费端。需要替换两个注解 @Service @Reference
提供方
在实现类上增加注解 @Service com.alibaba.dubbo.config.annotation
在application.properties添加
1 # dubbo 2 spring.dubbo.application=user-service 3 # dubbo 4 spring.dubbo.protocol.name=dubbo 5 # zookeeper 6 spring.dubbo.registry.address=192.168.239.139:2181 7 # zookeeper 8 spring.dubbo.registry.protocol=zookeeper 9 # dubbo 10 spring.dubbo.base-package=com.xxx.xxx
其中
application.name就是服务名,不能跟别的dubbo提供端重复
registry.protocol 是指定注册中心协议
registry.address 是注册中心的地址加端口号
protocol.name 是分布式固定是dubbo,不要改。
base-package 注解方式要扫描的包
port 是服务提供端为zookeeper暴露的端口,不能跟别的dubbo提供端重复。
消费方
@Autowired改成@Reference com.alibaba.dubbo.config.annotation.Reference
application.properties
1 spring.dubbo.application=user-web 2 # dubbo 3 spring.dubbo.protocol.name=dubbo 4 # zookeeper 5 spring.dubbo.registry.address=192.168.239.139:2181 6 # zookeeper 7 spring.dubbo.registry.protocol=zookeeper 8 # dubbo 9 spring.dubbo.base-package=com.xxx.xxx 10 spring.dubbo.consumer.timeout=600000 11 spring.dubbo.consumer.check=false
consumer.timeout 是访问提供端服务的超时时间,默认是1000毫秒
consumer.check 是启动消费端时,是否检查服务端能否正常访问。如果选择true,那启动消费端时,必须保证提供端服务正常,否则接口无法注入。
注
dubbo在进行dubbo协议通讯时,需要实现序列化接口(封装的数据对象)
dubbo的consumer在三秒钟之内每间隔一秒进行一次重新访问,默认一秒钟超时,三次访问之后会直接抛超时异常,所以我们在开发阶段,可以将consumer设置的超时时间延长,方便断点调试
# 设置超时时间
spring.dubbo.consumer.timeout=600000
# 设置是否检查服务存在
spring.dubbo.consumer.check=false
以上是关于Dubbo01的主要内容,如果未能解决你的问题,请参考以下文章