ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springboot学习25:Dubbo+zookeeper实战

2022-04-28 18:34:25  阅读:136  来源: 互联网

标签:Dubbo 25 springboot dubbo zookeeper server TicketService org public


springboot学习25:Dubbo+zookeeper实战

  • 框架搭建:

    • 1,创建一个空的maven项目:Empty Project ; (做为总依赖,或者父项目)

      • 导入pom依赖:

        <!--导入依赖:Dubbo+Zookeeper -->
        <dependency>
           <groupId>org.apache.dubbo</groupId>
           <artifactId>dubbo-spring-boot-starter</artifactId>
           <version>2.7.9</version>
        </dependency>
        <!--zkclient
        日志:可能会冲突

        -->
        <dependency>
           <groupId>com.github.sgroschupf</groupId>
           <artifactId>zkclient</artifactId>
           <version>0.1</version>
        </dependency>

        <!-- 引入zookeeper -->
        <dependency>
           <groupId>org.apache.curator</groupId>
           <artifactId>curator-framework</artifactId>
           <version>2.12.0</version>
        </dependency>
        <dependency>
           <groupId>org.apache.curator</groupId>
           <artifactId>curator-recipes</artifactId>
           <version>2.12.0</version>
        </dependency>
        <dependency>
           <groupId>org.apache.zookeeper</groupId>
           <artifactId>zookeeper</artifactId>
           <version>3.4.14</version>
           <!--排除这个slf4j-log4j12-->
           <exclusions>
               <exclusion>
                   <groupId>org.slf4j</groupId>
                   <artifactId>slf4j-log4j12</artifactId>
               </exclusion>
           </exclusions>
        </dependency>

         

       

    • 2,新建model模块:provider-server:服务提供者

      • 新建service包:

        • 1,新建TicketService接口:

          public interface TicketService {

             public String getTicket();
          }
        • 2,新建TicketServiceImpl实现类:

          import org.apache.dubbo.config.annotation.Service;
          import org.springframework.stereotype.Component;

          @Service  //可以被扫描到,在项目启动后,就会自动注册到注册中心
          @Component //使用了Dubbo后,尽量不要使用@Service注解
          public class TicketServiceImpl implements TicketService {

             @Override
             public String getTicket() {
                 return "好好学习,天天向上";
            }
          }
        • 3,修改application.properties配置文件:

          • 配置要扫描的包

          server.port=8001
          #当前应用名字
          dubbo.application.name=provider_server
          #注册中心地址
          dubbo.registry.address=zookeeper://127.0.0.1:2181
          dubbo.registry.protocol=26001
          #扫描指定包下服务
          dubbo.scan.base-packages=com.ljxdemo.service

       

    • 3,新建Model模块:consumer-server:服务消费者

      • 新建service包:

        • 1,新建TicketService接口:

          public interface TicketService {

             public String getTicket();
          }
        • 2,新建UserService服务类:

          import org.apache.dubbo.config.annotation.Reference;
          import org.springframework.stereotype.Service;


          @Service  //这里的注解是spring的
          public class UserService {

             @Reference   //调用注册中心的服务接口:从远程注入服务
             TicketService ticketService;

             public void byTicket(){
                 String ticket = ticketService.getTicket();
                 System.out.println("在注册中心拿到一张票:"+ticket);
            }
          }
        • 3,修改application.properties配置文件:

          server.port=8002
          #消费者去哪里拿服务 : 去注册中心拿 ; 消费者需暴漏自己的名字,让注册中心知道是谁拿的
          dubbo.application.name=consumer_server
          #注册中心的地址
          dubbo.registry.address=zookeeper://127.0.0.1:2181
      • 新建controller包:

        • 1,新建HelloController类:

          @RestController
          public class HelloController {


             @Autowired  //自动装配
             UserService userService;

             @RequestMapping("/t1")
             public String test(){

                 userService.byTicket(); //调用服务接口

                 return "ok";

            }
          }

       

    • 4,启动测试:

      • 1,启动zookeeper服务:zkServer.cmd

      • 2,启动dubbo-admin服务:java -jar dubbo-admin-0.0.1-SNAPSHOT.jar

      • 3,启动IDEA服务:提供者,消费者

      • 4,测试URL:http://localhost:8002/t1 : 数据正常返回

       

 

 

 

 

 

 

标签:Dubbo,25,springboot,dubbo,zookeeper,server,TicketService,org,public
来源: https://www.cnblogs.com/gzs1024/p/16204004.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有