SpringBoot集成Dubbo详细配置

一、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注解来暴露服务
SpringBoot集成Dubbo详细配置_第1张图片
4)在工程入口类添加@EnableDubboConfiguration 开启Dubbo配置
SpringBoot集成Dubbo详细配置_第2张图片

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注解来引用远程服务
SpringBoot集成Dubbo详细配置_第3张图片
4)在工程入口类添加@EnableDubboConfiguration 开启Dubbo配置
SpringBoot集成Dubbo详细配置_第4张图片

3、测试

    1.启动zookeeper服务
    2.启动服务提供者工程
    3.启动消费者工程

1)启动zookeeper服务
SpringBoot集成Dubbo详细配置_第5张图片
2)启动服务提供者工程以及消费者工程SpringBoot集成Dubbo详细配置_第6张图片
3)请求数据
SpringBoot集成Dubbo详细配置_第7张图片
SpringBoot集成Dubbo详细配置_第8张图片
这样就集成成功了!

你可能感兴趣的:(java,spring,boot,mybatis,spring,分布式)