前提摘要
搭建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各種服務場景及相關配置