1. dubbo框架是什么
1.1分布式框架,解决大量访问请求
1.2alibaba旗下的产品,后来交给apache基金会维护管理
1.3 dubbo核心底层技术实现用的是Hessian,相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
1.4 dubbox是基于注解方式发布接口
2. dubbo核心部件:
2.1 provider:生产者, 暴露服务的提供方,可以通过jar或者容器的方式启动服务
2.2 consumer:消费者,调用远程服务的服务消费方。
2.3 registry: 注册中心,服务注册中心和发现中心
2.4 Monitor: 统计服务和调用次数,调用时间监控中心。(dubbo的控制台页面中可以显示,目前只有一个简单版本)
2.5 Container:服务运行的容器。
3. dubbo loadbalance检测机制:
3.1 roundrobin轮询机制
3.2 random #随机机制
3.3 leastactive #最少活跃调用数机制
4. 负载均衡机制:保证每台机器请求量一致,平衡每台机器的访问量
5. springboot 整合dubbo+zookeeper
5.1 创建生产者项目,选择Web MySql Mybatis
5.2 创建消费者项目,选择Web Thymeleaf
5.3 生产者和消费者,实体类对象要一致、service接口要一致、除了上面指定jar包不一致,其他jar包要一致
5.4 生产者和消费者项目中实体类对象必须实现序列化接口:implements Serializable
生产者:
1.导入pom jar包
<!--dubbo 依赖 -->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- zookeeper client依赖 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
2.配置dubbo服务端生产者
在application.properties中配置
#配置dubbo服务提供者
#服务名称
spring.dubbo.application.name=provider
spring.dubbo.server=true
#注册中心地址
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo 协议
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
3.配置本地zookeeper
在zookeeper/conf/zoo.cfg中配置数据目录和日志目录位置,注意目录需要手动创建
#数据位置
dataDir=D:\\zookeeper-3.3.6\\data
#日志位置
dataLogDir=D:\\zookeeper-3.3.6\\logs
4.本地启动zookeeper:在zookeeper/bin目录下文件地址栏中输入cmd,执行zkServer回车即可启动zookeeper
5.在service实现类上加上dubbo提供的Service注解
//通过dubbo提供的Service注解将接口发布出去
@Service(interfaceClass = UserService.class)
@Component spring注入需要用到
6.在application启动类中加上开启dubbo配置注解@EnableDubboConfiguration
消费者:
1.导入pom jar包
<!--dubbo 依赖 -->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- zookeeper client依赖 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
2.配置dubbo消费者
#为防止和生产者端口号冲突
server.port=8081
#配置dubbo消费者
spring.dubbo.application.name=consumer
#配置注册中心
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo协议
spring.dubbo.procotol.name=dubbo
spring.dubbo.procotol.port=20880
#消费者启动检测生产者是否已启动,当值为true时才会检测,默认为true
spring.dubbo.consumer.check=false
#roundrobin轮询机制
#random #随机机制
#leastactive #最少活跃调用数机制
spring.dubbo.reference.loadbalance=roundrobin
3.在controller中通过dubbo提供的Reference注解引用接口
@Reference
private UserService userService;
4.在application启动类中加上开启dubbo配置注解@EnableDubboConfiguration
springboot 整合dubbo+zookeeper
最新推荐文章于 2023-07-21 12:07:52 发布