springboot+dubbo+zookeeper集羣整合

前提摘要

     搭建zookeeper集羣環境:https://blog.csdn.net/qq_37936542/article/details/107096985

     ▌

       --- zk1 :192.168.0.211:2181

       --- zk2 :192.168.0.212:2181

       --- zk3 :192.168.0.213:2181

 

 

Springboot作爲一款優秀的快速開發框架,集成dubbo也是挺簡單的,但還是需要細心,細節決定成敗

 

▌ 搭建兩個springboot項目

        dubbo_provider:服務提供者

        dubboo_consumer:服務消費者

 

▌ 開發服務提供者 dubbo_provider

 ♦ ♦ 導入maven依賴

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
	<groupId>com.101tec</groupId>
	<artifactId>zkclient</artifactId>
	<version>0.10</version>
</dependency>

<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-recipes</artifactId>
	<version>2.8.0</version>
</dependency>

 ♦ ♦ 定義服務類接口

public interface ProviderService {

	public String add();

	public String del();

	public String upd();

	public String get();

}

♦ ♦ 定義服務類接口實現類

注意點 1:@Service註解不要用混了

注意點 2:需要加@Component註解

import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;
import com.mote.service.ProviderService;

@Component
@Service
public class ProviderServiceImpl implements ProviderService {

	@Override
	public String add() {
		System.out.println("添加服務被調用");
		return "success";
	}

	@Override
	public String del() {
		System.out.println("刪除服務被調用");
		return "success";
	}

	@Override
	public String upd() {
		System.out.println("更新服務被調用");
		return "success";
	}

	@Override
	public String get() {
		System.out.println("獲取服務被調用");
		return "success";
	}

}

 ♦ ♦ yml配置

注意點 base-package:ProviderServiceImpl所在包

server: 
  port: 8090  # 定義項目訪問端口

dubbo: 
  application: 
    name: service-provider # dubbo應用名稱
  scan: 
    base-packages: com.mote.service.impl # 掃描指定包,將使用@Service註解修飾的類發佈爲服務
  protocol:   
    port: 20880 # dubbo協議端口,默認20880
    name: dubbo # dubbo協議名稱
  registry:     # zookeeper集羣註冊中心地址 
    address: zookeeper://192.168.0.211:2181?backup=192.168.0.212:2181,192.168.0.213:2181
  config-center: 
    timeout: 10000 # 連接註冊中心的超時時間:單位是毫秒

 

♦ ♦ 啓動類

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

 

▌ 開發服務消費者 dubbo_consumer

 ♦ ♦ 導入maven依賴

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
	<groupId>com.101tec</groupId>
	<artifactId>zkclient</artifactId>
	<version>0.10</version>
</dependency>

<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-recipes</artifactId>
	<version>2.8.0</version>
</dependency>

 

 ♦ ♦ 定義服務類接口(直接拷貝dubbo_provider項目中的ProviderService)

public interface ProviderService {

	public String add();

	public String del();

	public String upd();

	public String get();

}

 

♦ ♦ 定義消費者

import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.mote.service.ProviderService;

@RestController
@RequestMapping("/comsumer")
public class ConsumerController {

	@Reference // 注入服務提供方的服務
	public ProviderService service;

	@GetMapping("/get")
	public String get() {
		return service.get();
	}
}

 

♦ ♦ yml配置

server: 
  port: 8080

dubbo: 
  application: 
    name: service-consumer # dubbo 應用名稱
  registry: # zookeeper 集羣註冊中心地址
    address: zookeeper://192.168.0.211:2181?backup=192.168.0.212:2181,192.168.0.213:2181

♦ ♦ 啓動類

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

 

▌ 到這裏,初步的集成結束,下面測試一把

     先啓動provider項目,然後啓動consumer項目,訪問ip://8080/comsumer/get

    

     

 

 

下一篇:介紹dubbo各種服務場景及相關配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章