idea maven Springboot2.0整合dubbo zookeeper做註冊中心簡單案例

一、zookeeper的下載安裝,這個百度很多,略,附下載地址
http://archive.apache.org/dist/zookeeper/
本文使用的是zookeeper 3.4.14版本
二、創建工程

  1. 首先創建一個空的工程
    創建空工程

  2. 在工程下創建三個模塊,分別是consumen(消費者)、procider(生產者)、dubbo-api(專門用於存放dubbo服務接口的模塊)
    在這裏插入圖片描述
    在這裏插入圖片描述
    依次創建三個模塊

  3. dubbo是通過全限定名去匹配服務的,生產者和消費者都要有同樣全限定名的服務接口類才能實現調用,所以此處將所有的服務接口都寫在dubbo-api模塊中,而後consumer和provider都依賴dubbo-api這個模塊,
    所以在consumer和provider的pom.xml文件中引入對dubbo-api模塊的依賴

<dependency>
	<groupId>com.example</groupId>
	<artifactId>dubbo-api</artifactId>
	<version>0.0.1-SNAPSHOT</version>
</dependency>

三、代碼編寫

  1. 在dubbo-api中創建一個服務接口類
package com.example.dubboapi.service;

public interface TicketService {
    String providerTicker();
}
  1. 生產者實現dubbo-api中的服務接口
1、首先,導入springboot和dubbo整合的啓動器
<dependency>
	<groupId>com.alibaba.boot</groupId>
	<artifactId>dubbo-spring-boot-starter</artifactId>
	<version>0.2.0</version>
</dependency>


2、實現dubbo-api中的服務接口類
package com.joe.provider.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.example.dubboapi.service.TicketService;
import org.springframework.stereotype.Component;

@Service // 注意這個註解是dubbo的註解,用於將服務發佈出去
@Component
public class TicketServiceImpl implements TicketService {
    @Override
    public String providerTicker() {
        return "《我和我的祖國》";
    }
}

3、啓動類配置@Enable註解
package com.joe.provider;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableDubbo
@SpringBootApplication
public class ProviderApplication {

	public static void main(String[] args) {
		SpringApplication.run(ProviderApplication.class, args);
	}

}

4、配置文件配置zookeeper地址及服務包掃描路徑
# 應用名稱
dubbo.application.name=provider
# zookeeper註冊中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
# 掃描的服務包路徑
dubbo.scan.base-packages=com.joe.provider.service,com.joe.provider.service.impl

  1. 消費者調用服務(此處在測試類中測試)
1、導包
<dependency>
	<groupId>com.alibaba.boot</groupId>
	<artifactId>dubbo-spring-boot-starter</artifactId>
	<version>0.2.0</version>
</dependency>

2、配置文件配置
# 應用名
dubbo.application.name=consumer
# zookeeper註冊中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

3、測試方法
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
@EnableDubbo // 開啓dubbo自動配置
class ConsumerApplicationTests {

	/**
	 * 通過@reference將服務注入
	 */
	@Reference
	TicketService ticketService;

	@Test
	void contextLoads() {
        String s = ticketService.providerTicker();
        System.out.println(s);
    }
}

四、測試

  • 先啓動provider工程可以看到控制檯服務發佈的日誌在這裏插入圖片描述
  • 之後運行消費者ConsumerApplicationTests.contextLoads測試方法,可以看到控制檯輸出
    在這裏插入圖片描述
  • 完成
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章