手动创建一个dubbo框架,整合springboot(亲手搭建)

先看看这张图热热身:
在这里插入图片描述
ok:开始咯…

首先创建如图这个几个项目
在这里插入图片描述
然后在父级的pom中提供一个父级依赖:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.qcby</groupId>
    <artifactId>dubbo_yundingzhiyi</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <!--依赖关系-->
    <modules>
        <module>service</module>
        <module>provider</module>
        <module>consumer</module>
    </modules>
  1. 分别进行配置

    1. 首先配置service:在service项目中引入相关的依赖

      1. 这个文件主要提供的是一些实体和service在这里插入图片描述

      2. 代码如下:
        public interface ILoginService {
            Boolean login(String UserName,String Pwd);
        }
        
      3. 引入相应的依赖

      4.     //引用父级依赖
            <parent>
                <artifactId>dubbo_yundingzhiyi</artifactId>
                <groupId>com.qcby</groupId>
                <version>1.0-SNAPSHOT</version>
            </parent>
            <!--解决下面的dubbo.version报红-->
            <properties>
                <java.version>1.8</java.version>
                <dubbo.version>2.7.3</dubbo.version>
                <springboot.version>2.1.7.RELEASE</springboot.version>
            </properties>
            <modelVersion>4.0.0</modelVersion>
            <artifactId>service</artifactId>
            <dependencies>
                <dependency>
                    <groupId>org.apache.dubbo</groupId>
                    <artifactId>dubbo-spring-boot-starter</artifactId>
                    <version>${dubbo.version}</version>
                    <exclusions>
                        <exclusion>
                            <groupId>org.slf4j</groupId>
                            <artifactId>slf4j-log4j12</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
        //这个依赖如果下面的starter的没有将这儿个依赖覆盖的话,就把这个注了,
        <!--        <dependency>-->
        <!--            <groupId>org.apache.dubbo</groupId>-->
        <!--            <artifactId>dubbo</artifactId>-->
        <!--            <version>${dubbo.version}</version>-->
        <!--        </dependency>-->
        
                <dependency>
                    <groupId>org.apache.curator</groupId>
                    <artifactId>curator-framework</artifactId>
                    <version>4.0.1</version>
                </dependency>
        
                <dependency>
                    <groupId>org.apache.curator</groupId>
                    <artifactId>curator-recipes</artifactId>
                    <version>2.8.0</version>
                </dependency>
                <!--starter依赖-->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter</artifactId>
                    <version>${springboot.version}</version>
                </dependency>
            </dependencies>
        
    2. 配置provider(提供角色)
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fBYLpjSL-1583479737460)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200306144621628.png)]
      2. //提供一个实现类
      @Service
      public class LoginServiceImpl implements ILoginService {
      public Boolean login(String userName,String pwd){
      System.out.println(userName);
      System.out.println(pwd);
      return true;
      }
      }

      1. 然后配置zookpeer

        1. 在resource下面创建一个文件application.yml
        2. dubbo:
            application:
              name: qcby-provider //这个是名字(自定义)
            registry:
              protocol: zookeeper  
              address: zookeeper://127.0.0.1:2181 //zookeeper地址
            protocol:
              name: dubbo 
              port: 20881
            scan:
              base-packages: com.qcby.provider.**.service //这个是扫描自己路径下面所有的包
          
      2. 添加依赖:

        1.      <groupId>com.qcby</groupId>
              <artifactId>provider</artifactId>
              <version>1.0-SNAPSHOT</version>
          
              <dependencies>
                  <dependency>
                      <groupId>com.qcby</groupId>
                      <artifactId>service</artifactId>
                      <version>1.0-SNAPSHOT</version>
                  </dependency>
              </dependencies>
          
    3. 配置consumer消费角色
      在这里插入图片描述
      2. 首先在pom中添加依赖:

      1.    //这个是引用的父级的那个依赖所以这是必须要加
           <parent>
                <artifactId>dubbo_yundingzhiyi</artifactId>
                <groupId>com.qcby</groupId>
                <version>1.0-SNAPSHOT</version>
            </parent>
            
            <artifactId>consumer</artifactId>
        
            <dependencies>
                <dependency>
                    <groupId>com.qcby</groupId>
                    <artifactId>service</artifactId>
                    <version>1.0-SNAPSHOT</version>
                </dependency>
        
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </dependency>
            </dependencies>
        
      2. 然后在controller中 调用提供的方法

        1. @Controller
          @RequestMapping("login")
          public class LoginController {
              @Reference
              private ILoginService loginService;
              @RequestMapping
              @ResponseBody
              public boolean index(){
                  return loginService.login("李四","123");
              }
          }
          
          注意:这个一定要注意:这个@Reference 需要使用的Apache下的dubbo这个包千万不要引错了
        2. 配置application.xml文件(也就是配置一些端口和zookpeer配置)
          1. dubbo:
              application:
                name: qcby-consumer
              registry:
                protocol: zookeeper
                address: zookeeper://127.0.0.1:2181
            server:
             port: 80
            
            注意:这儿需要知道这个前后关系必须分清楚,层级关系前面的空格不能省略
      3. 当三个都配置完之后进行启动zookpeer

        1. 自己下载一个免安装版的,下载完之后就可以直接启动了
          在这里插入图片描述
      4. 当zookpeer完之后,启动provider这个提供角色,然后启动consumer这个角色,先后顺序不要乱了,
        在这里插入图片描述

      5. 这个就是启动成功了provider
        在这里插入图片描述

      6. 这个是consumer自动完毕
        在这里插入图片描述

      7. 然后在浏览器上面进行访问:
        在这里插入图片描述

      8. 出现这个则启动成功

然后再给大家分享一个图:
在这里插入图片描述

瞬间是不是觉得自己就是个大佬了:欧耶…

发布了40 篇原创文章 · 获赞 5 · 访问量 9468

猜你喜欢

转载自blog.csdn.net/qq_40873540/article/details/104696918