dubbo+zookeeper+springBoot项目模块demo(实现模块拆分注册dubbo)

dubbo是什么:Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。

##项目搭建
底层基础我们需要创建3个项目为了方便我们就以学生信息+输出elloword(证明我是个程序员)
1.student-common(公共):一般放置pojo\service(服务接口)\util(公共工具)
2.student-provider(提供者):service(实现)\mapper
3.student-consumer(消费者):controller\service(调用provider)

-----------------------------华丽的分割线--------------开始跑服务------------------------------------
zookeeper下载地址
http://archive.apache.org/dist/zookeeper/
解压进入》conf》zoo_sample修改为zoo》打开修改(创建目录)>>bin目录下点击zkService.cmd

dataDir=D:\java\SpringBoot\apache-zookeeper-3.5.5\data

dubbo-admin
生成教程
运行zk+dubbo后访问
http://localhost:8080/dubbo/ 账户密码都是root在这里插入图片描述
为了捋顺逻辑我们先来张优雅的图片捋一下别乱了
将服务端注册(zk)到dubbo后
前端访问controller>controller业务逻service> @Reference调用provider服务实现

在这里插入图片描述
mysql

CREATE DATABASE school;
CREATE TABLE `student` (
	id INT PRIMARY KEY KEY AUTO_INCREMENT,
	`name` VARCHAR(10) ,
	age INT ,
	`class` VARCHAR(10)
);
INSERT INTO student VALUES(1,'张三',15,'三年一班')
INSERT INTO student VALUES(2,'王五',15,'三年二班')

-----------------华丽的分割线--------------开始写代码了-----------------

一.创建maven项目common项目包
1.创建pojo>创建Student.class
2.创建service>创建StudentService接口
3.使用maven install打包依赖
在这里插入图片描述
二.创建springboot项目provider
1.导入common依赖包,springbootStarterWeb(自带),zkClient,dubbo,mysql,mybatis依赖
分布式我们使用dubbo spring boot starter
https://mvnrepository.com/artifact/com.alibaba.boot/dubbo-spring-boot-starter
2.修改application文件名.yml 对tomcat dubbo mybayis设置
3.resources创建mapper.xml(与mapper接口对应)
4.src创建mapper.java接口使用@Mapper
5创建service>StudentServicelmpl实现类>使用dubbo @Service注解
6.启动类添加EnableDubboConfiguration
7.启动运行项目


   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.demo</groupId>
            <artifactId>student-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba.spring.boot/dubbo-spring-boot-starter -->
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        
       <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>
#tomcat 端口号
server:
  port: 7001

spring:
  application:
    name: student-provider
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf-8
    username: root
    password: 111
  #dubbo设置
  dubbo:
    port: 20800
    appname: dubbo-student-provider #控制台显示的名字
    registry: zookeeper://127.0.0.1:2181
    protocol: dubbo

#配置mapper路径
mybatis:
  mapper-locations: classpath:mapper/**.xml
@Mapper
public interface StudentMapper {
    List<Student> selectById(@Param("id") int id);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.demo.mapper.StudentMapper">
    <select id="selectById" resultType="cn.demo.pojo.Student">
        select * from student
        <trim prefix="where" prefixOverrides="and | or">
            <if test="id != null">
               and id=#{id}
            </if>
        </trim>
    </select>
</mapper>

在这里插入图片描述

@SpringBootApplication
@EnableDubboConfiguration //启动类添加dubbo注解
public class StudentProviderApplication {

-----------------华丽的分割线--------------开始写代码了-----------------

1.复制provider的pom依赖 除去数据链接
2.复制provider的yml进行修改
3.编写service>StudentServicelmpl>调用dubbo@Reference注解
4.编写controllrt>调用本包service
5.启动类添加dubbo注解
6.dubboadmin查看注册服务是否为正常

server:
  port: 8001
spring:
  dubbo:
    appname: Student-consumer
    registry: zookeeper://localhost:2181
    protocol: dubbo
    port: 20802
  application:
    name: Student-consumer

在这里插入图片描述

@RestController
public class StudentControllrt {
   @Autowired
   private StudentService studentService;

   @RequestMapping(value = "hi",method = RequestMethod.GET)
   private String sayHi(@RequestParam("id") Integer id){
       return studentService.sayHi(id);
   }
}
@SpringBootApplication
@EnableDubboConfiguration
public class StudentConsumerApplication {

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值