首页 > 编程语言 > 详细

Dubbo+Zookeeper+SpringBoot初体验

时间:2019-11-28 00:47:36      阅读:89      评论:0      收藏:0      [点我收藏+]

Zookeeper注册中心

下载地址:http://mirror.bit.edu.cn/apache/zookeeper/
目前zookeeper-3.4.14/ 稳定版;高版本解压后丢失目录无法启动服务
下载后需要先进入conf目录复制一份zoo_sample.cfg为zoo.cfg,否则无法正常启动zookeeper
技术分享图片进入bin目录下找到zkServce.cmd管理员运行,zookeeper服务就启动了,如果没配置上面就会报错。zkCli.cmd为客户端.
技术分享图片

Dubbo

下载地址:https://github.com/apache/dubbo-admin
进入dubbo的github托管网站进入dubbo模块,需要在分支下载dubbo-admin
在peoperties配置zookeeper地址127.0.0.1:2821(默认地址)
使用mvn工具打成jar包,或者在idea中打成jar包

使用java -jar 命令运行打好的jar包即可运行dubbo,启动成功后显示版本号以及本机IP

技术分享图片
启动后访问localhost:7001端口将提示输入账号密码,默认都是root
技术分享图片技术分享图片进入这里就成功了!

SpringBoot

创建一个服务提供者

在application.properties中配置如下

server.port=8080

# 服务应用名字
dubbo.application.name=provider-server
# 注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
# 哪些服务要被注册
dubbo.scan.base-packages=com.shiyan.service

pom文件中引入Dubbo和Zookeeper依赖

        <--本项目的pom坐标,提供者的坐标,可供消费者引用,无需创建该提供者的接口-->
        <groupId>com.shiyan</groupId>
         <artifactId>dubbo-test1-provider</artifactId>
         <version>0.0.1-SNAPSHOT</version>
        <name>dubbo-test1-provider</name>

        <!--dubbo+zookeeper-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>

        <!--zkclient-->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</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.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>

建立提供接口及实现类代码,如下为实现类

//zookeeper :服务注册与发现
@Service //可以被扫描,项目一启动就注册到zookeeper注册中心
@Component  //区别dubbo和spring的service注解
public class TicketServiceImpl implements TicketService {
    @Override
    public String getTicket() {
        return "誓言要努力啊!!!";
    }
}

配置消费者

在application.properties中配置如下

server.port=8081

# 服务应用名字
dubbo.application.name=customer-server
# 注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

消费者创建消费代码

@Service //放到spring容器中
public class UserService {

    //想拿到provider提供的票,要去注册中心拿到相应的服务
    @Reference //一般引用Pom坐标,也可以定义路径相同的接口名
    TicketService TICKET_SERVICE ;

    public void buyTicket(){
        String ticket = TICKET_SERVICE.getTicket();
        System.out.println("注册中心获得的结果"+ticket);

    }
}

@Reference
一般引用Pom坐标,引入坐标后需要取消启动类的@SpringBootApplication注解
/*

  • 分析原因:因为项目是springboot+dubbo架构,dao项目依赖于pojo项目,
    在pojo项目中也有启动类@SpringBootApplication,因为在dao的测试类中启动方法时,
  • 会加载pojo项目启动类,所以会造成上图所示错误,
  • 注释掉pojo项目启动类上的@SpringBootApplication注解即可
    */
      <!--引入提供者的坐标-->
        <dependency>
            <groupId>com.shiyan</groupId>
            <artifactId>dubbo-test1-provider</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

也可以定义路径相同的接口名,直接在提供者复制该接口即可不然启动会报错
引入后创建测试类

@SpringBootTest
class DubboTest1ConsumerApplicationTests {
    @Autowired
    UserService userService;

    @Test
    void contextLoads() {
        userService.buyTicket();
    }

}

启动提供者程序入口以及本测试类
进入localhost:7001可以发现有一个服务提供者
技术分享图片点进去可以看到我们配置的详情信息
技术分享图片看看测试类运行结果
技术分享图片到此就完成了基本的入门程序了

Dubbo+Zookeeper+SpringBoot初体验

原文:https://www.cnblogs.com/zhangshiyan/p/11946359.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!