一、SpringBoot集成Dubbo分布式框架
分析:
1、接口工程:存放实体bean和业务接口
2、服务提供者:业务接口的实现类并将服务暴露且注册到注册中心,调用数据持久层.
-添加依赖(dubbo,注册中心,接口工程,mysql驱动,mybatis)
-配置服务提供者核心配置文件
3、服务消费者:处理浏览器客户端发送的请求,从注册中心调用服务提供者所提供的服务
-添加依赖(dubbo,注册中心,接口工程)
-配置服务消费者核心配置文件|
1、创建三个项目如图
2、接口工程目录结构(因为只放bean和业务层接口,创建一个普通Maven工程即可)
3、服务提供者工程具体实现
1)pom文件中添加以下依赖
<!--SpringBoot框架web项目起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--数据库驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--Mybatis集成SpringBoot起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<!--Dubbo集成SpringBoot起步依赖-->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!--zookeeper注册中心依赖-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.11</version>
</dependency>
<!--接口工程依赖-->
<dependency>
<groupId>huaxin</groupId>
<artifactId>12_springboot-integration-dubbo-interface</artifactId>
<version>1.0.0</version>
</dependency>
2)SpringBoot配置文件信息
#设置连接数据库的配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=11111
#设置内嵌Tomcat端口号
server.port=8080
#设置上下文根
server.servlet.context-path=/
#mybatis配置sql映射文件的路径
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
#mybatis配置指定使用别名的包(xml文件使用别名处会爆红但不影响使用)
mybatis.type-aliases-package=huaxin.entity
#mybatis配置开启驼峰命名
mybatis.configuration.map-underscore-to-camel-case=true
#设置dubbo的配置
#服务提供者声明名称:必须保证服务名称的唯一性,它的名称是dubbo内部使用的唯一标识
spring.application.name=13_springboot-integration-dubbo-service-provider
#声明当前工程是一个服务提供者
spring.dubbo.server=true
#设置访问服务的协议及端口号,dubbo官方推荐使用的是dubbo协议,端口号默认20880
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
#指定zookeeper注册中心地址和端口号
spring.dubbo.registry=zookeeper://localhost:2181
3)在业务层实现类中添加com.alibaba.dubbo.config.annotation.Service
包里面的@Service
注解来暴露服务
4)在工程入口类添加@EnableDubboConfiguration
开启Dubbo配置
3、消费者工程具体实现
1)pom文件中添加以下依赖
<!--SpringBoot框架web项目起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Dubbo集成SpringBoot起步依赖-->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!--zookeeper注册中心依赖-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.11</version>
</dependency>
<!--接口工程依赖-->
<dependency>
<groupId>huaxin</groupId>
<artifactId>12_springboot-integration-dubbo-interface</artifactId>
<version>1.0.0</version>
</dependency>
2)SpringBoot配置文件信息
#设置内嵌Tomcat端口号
server.port=8081
#设置上下文根
server.servlet.context-path=/
#设置dubbo的配置
#服务提供者声明名称:必须保证服务名称的唯一性,它的名称是dubbo内部使用的唯一标识
spring.application.name=14_springboot-integration-dubbo-consumer
#指定zookeeper注册中心地址和端口号
spring.dubbo.registry=zookeeper://localhost:2181
3)在表现层com.alibaba.dubbo.config.annotation.Reference
包下的@Reference
注解来引用远程服务
4)在工程入口类添加@EnableDubboConfiguration
开启Dubbo配置
3、测试
1.启动zookeeper服务
2.启动服务提供者工程
3.启动消费者工程
1)启动zookeeper服务
2)启动服务提供者工程以及消费者工程
3)请求数据
这样就集成成功了!