一、Dubbo简介
二、Dubbo架构
节点
|
角色名称
|
Provider
|
暴露服务的服务提供方
|
Consumer
|
调用远程服务的服务消费方
|
Registry
|
服务注册与发现的注册中心
|
Monitor
|
统计服务的调用次数和调用时间的监控中心
|
Container
|
服务运行容器
|
三、Zookeeper
1、zookeeper安装
2、命令:
四、项目中的一些理解:
1、创建项目时,服务的提供者与消费者都需要在对应的xml文件中向注册中心进行注册:
例<dubbo:applicationname="dubbodemo_provider" />,名称要与服务的项目名一致
2、服务的提供者需要单独注册 协议和端口号(默认为20880)
例:<dubbo:protocol name="dubbo" port="20881" />
3、服务的提供者与消费者都需要对应的类进行扫描:
例:<dubbo:annotation package="com.lalalal.service.impl" /> ---服务的提供者
例:<dubbo:annotation package="com.lalal.controller" /> ---服务的消费者
4、服务的提供者与消费者都需要连接服务注册中心zookeeper
<dubbo:registry address="zookeeper://192.xxx.xxx.xxx:2181"/>----192.xxx.xxx.xxx是虚拟机的ip地址,2181是固定的端口
5、在服务的消费方调用服务的提供方时: 注入相对应的对象时需要用到@Reference这个注解,在配置文件中配置也行,但推荐注解
6、负载均衡:
负载均衡(Load Balance):其实就是将请求分摊到多个操作单元上进行执行,从而共同完成工作任
务。
在集群负载均衡时,Dubbo 提供了多种均衡策略(包括随机、轮询、最少活跃调用数、一致性
Hash),缺省为random随机调用。
7、Dubbo解决无法发布事务:
1、需要将默认的jdk代理改为cglib代理
2、在service注解中加入interfaceClass属性,值为service接口.class,
作用是指定服务的接口类型