SpringBoot整合Dubbo和ZooKeeper


1.導入依賴

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

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

2.在服務提供者模塊配置文件配置注冊中心

dubbo.application.name=provider

dubbo.registry.address=zookeeper://xxxxx:2181

dubbo.scan.base-packages=com.ws.service

server.port=8001

3.編寫服務提供者服務(注意@Service是dubbo里的)

package com.ws.service;

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

@Component
@Service //dubbo里的service
public class TicketServiceImpl implements TickerService{
    @Override
    public String getTicket() {
        return "恭喜拿到票";
    }
}

4.在消費者配置文件里配置服務取出地址

server.port=8002

dubbo.application.name=consumer

dubbo.registry.address=zookeeper://39.105.66.142:2181

 

5.編寫消費者(此處的遠程調用需要在消費者服務同一級目錄下有着和提供者一樣的接口或在pom文件里引入提供者)

package com.ws.service;

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

@Service
public class UserService {
    @Reference //遠程調用
    TickerService tickerService;

    public void buyTicker(){
        System.out.println(tickerService.getTicket());
    }

}

5.調用UserService里的buyTicket方法進行測試

更多內容:https://home.cnblogs.com/u/hellokuangshen/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM