Dubbo配置(xml和annotation)
dubbo:实现RPC(远程过程调用)的java框架.其调用步骤:1.tomcat容器打开,服务提供者将服务信息等注册到zookeeper2.tomcat容器打开,消费者将远程服务对象等注册到zookeeper,并且订阅了消费者的信息3.消费者通过RPC的实现框架Dubbo调用服务提供者方法4.监控中心,监控调用次数准备工作:zookeeper和Dubbo的依赖 以及dubbo空间约束<!-
dubbo:实现RPC(远程过程调用)的java框架.
其调用步骤:
1.tomcat容器打开,服务提供者将服务信息等注册到zookeeper
2.tomcat容器打开,消费者将远程服务对象等注册到zookeeper,并且订阅了消费者的信息
3.消费者通过RPC的实现框架Dubbo调用服务提供者方法
4.监控中心,监控调用次数
准备工作:
zookeeper和Dubbo的依赖 以及dubbo空间约束
注意空间约束也很重要dubbo使用 2.6.2版本用的apache的约束
2.6.0用alibabatech的约束
<!--zookeeper的依赖-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.7</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
<!--dubbo的依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
设置dubbo的xml配置:
通用
dubbo:application标签 应用配置 设置应用名称 表示唯一
dubbo:registry标签 注册中心 设置连接到注册中心的信息 地址
dubbo:annotation标签 开启注解驱动 用于读取注解
服务提供者
dubbo:protocol标签 协议配置 设置协议方式 默认为dubbo 端口为20880(服务提供者指定)
dubbo:provider 设置服务提供者的一些属性 用于一些缺省值的使用
timeout 超时调用(以消费者的为准 服务中可以设置一些消费者的缺省值)
dubbo:service 服务配置 将服务对象注册到zookeeper
消费者
dubbo:consumer 设置消费者的一些属性 用于一些缺省值的使用
timeout 超时调用 check 是否开启(timeout以消费者的优先)
Dubbo的配置文件使用:
标签 | 用途 | 解释 |
---|---|---|
dubbo:application标签 | 应用配置 | 设置应用名称 标识唯一 |
dubbo:registry标签 | 注册中心 | 设置连接到注册中心的信息 地址 |
dubbo:protocol标签 | 协议配置 | 设置协议方式 默认为dubbo 端口为20880(服务提供者指定) |
dubbo:provider | 提供方配置 | 设置服务提供者的一些属性 用于一些缺省值的使用 eg:timeout 超时调用 |
dubbo:consumer | 消费方配置 | 设置消费者的一些属性 用于一些缺省值的使用 eg:timeout 超时调用 check: 启动时是否检查服务 |
dubbo:service | 服务配置 | 将服务对象注册到zookeeper |
dubbo:reference | 引用配置 | 创建远程服务对象 |
消费者配置:
<!--应用名称-->
<dubbo:application name="dubbo-consumer"/>
<!--注册地址-->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<!--消费者中 订阅远程服务对象,id的名称和Controller类中的LinkmanService接口名称要一致-->
<dubbo:reference id="userService" interface="com.ls.service.LinkmanService"/>
<!--启动时不检查,即服务提供者没有启动,服务消费者启动的时候也不会报错-->
<!--缺省设置 超时调用 检查服务-->
<dubbo:consumer timeout="10000" check="false"></dubbo:consumer>
服务提供者配置:
<!-- dubbo基本配置-->
<!--应用名称-->
<dubbo:application name="dubbo-provider"/>
<!--注册地址-->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<!--协议 多个协议在这设定后 可以在注解上分别调用指定的协议,不指定则默认为dubbo 但指定的协议一定要是在此处配置过的-->
<dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
<dubbo:protocol name="rmi" port="1099"></dubbo:protocol>
<!--指定暴露的服务接口及实例 注册服务 -->
<dubbo:service interface="com.ls.service.LinkmanService" ref="linkmanSerivce" />
<!--配置业务类实例 ioc接口实现类-->
<bean id="linkmanSerivce" class="com.ls.service.impl.LinkmanServiceImpl"/>
<!--缺省设置 超时调用 检查服务-->
<dubbo:provider timeout="10000" ></dubbo:provider>
注解方式:
必须开启dubbo注解驱动 并读取包
@Service注解 用来暴露服务 将服务对象注册到zookeeper
其中可以配置timeout、protocol属性
注意:protocol的值必须是xml文件中设置了的协议 不然会爆错。或者不加属性直接默认为dubbo
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'dubbo' available
@Reference注解 用来 创建远程服务对象代理
其中可以配置:loadbalance、timeout、check属性
负载均衡使用步骤:
1.创建一个同样的服务提供者,唯一标识不变,
2.修改协议端口
3.修改服务器端口
4.在消费者的Reference注解上设定loadbalance的值

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)