1. 程式人生 > >SpringBoot 2.0 + Apache Dubbo 2.7.3 最新版整合方案

SpringBoot 2.0 + Apache Dubbo 2.7.3 最新版整合方案

前言

2018年2月16日,Apache Dubbo 加入 Apache 基金會孵化器。2019年5月16日,Apache 軟體基金會董事會決議通過了 Apache Dubbo 的畢業申請,這意味著 Apache Dubbo 正式成為 Apache 的頂級專案。

配置

Dubbo 捐精給 Apache 以後,也就意味著之前 Dubbo 以及 spring-boot-starter 座標也變了,當然之前的還可以用,但是要使用新版本的小夥伴建議看這裡。

Zookeeper 註冊中心版

pom.xml 引入座標:

<!-- 升級 apache dubbo -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.7.3</version>
</dependency>
<!-- Zookeeper -->
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.5.3-beta</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>4.2.0</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>4.2.0</version>
</dependency>
<!-- 最新 starter -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.3</version>
</dependency>

配置檔案:

dubbo.application.id=mail
dubbo.application.name=mail
dubbo.registry.address=zookeeper://106.13.122.117:2181
dubbo.provider.threads=10
dubbo.provider.threadpool=fixed
dubbo.provider.loadbalance=roundrobin
dubbo.server=true
dubbo.protocol.name=dubbo
dubbo.protocol.port=-1

啟動類:

@SpringBootApplication
//必須配置包掃描、否則Dubbo無法註冊服務,實現類加掃描也不行,日狗不是
@DubboComponentScan(basePackages = "com.itstyle.mail.service.impl")
public class Application  {
    private static final Logger logger = LoggerFactory.getLogger(Application.class);
    
    public static void main(String[] args){
        SpringApplication.run(Application.class, args);
        logger.info("郵件服務專案啟動");
    }
}

提供者介面實現:

# 引入 apache 包、之前的還可以用,不過已過時
import org.apache.dubbo.config.annotation.Service;

@Service(version = "1.0.0")
public class MailServiceImpl implements IMailService {

}

消費引用:

import org.apache.dubbo.config.annotation.Reference;

@RestController
@RequestMapping("/mail")
public class mailController {

    @Reference(version = "1.0.0")
    private IMailService mailService;

}

Nacos 註冊中心版

<!-- 升級 apache dubbo -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.7.3</version>
</dependency>
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-registry-nacos</artifactId>
    <version>2.7.3</version>
</dependency>
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>1.1.3</version>
</dependency>

配置檔案:

nacos.config.server-addr=47.104.197.9:8848
dubbo.application.name = spring-boot-mail
dubbo.registry.address = nacos://47.104.197.9:8848
dubbo.protocol.name=dubbo
dubbo.protocol.port=-1

啟動類:

@SpringBootApplication
//必須配置包掃描、否則Dubbo無法註冊服務
@EnableDubbo(scanBasePackages  = "com.itstyle.mail.service.impl")
public class Application  {
    private static final Logger logger = LoggerFactory.getLogger(Application.class);
    
    public static void main(String[] args){
        SpringApplication.run(Application.class, args);
        logger.info("郵件服務專案啟動");
    }
}

參考案例

https://gitee.com/52itstyle/spring-boot-mail

https://gitee.com/52itstyle/spring-boot-mail/tree/spring-boot-mail-nacos

Dubbo Milestones

  • 2008年,阿里巴巴開始內部使用 Dubbo;

  • 2009年初,釋出1.0版本;

  • 2011年10月,阿里巴巴宣佈開源,版本為2.0.7;

  • 2014年,噹噹網 fork 了 Dubbo 版本,命名為dubbox-2.8.0,並支援 HTTP REST 協議;

  • 2014年10月,釋出2.3.11版本;

  • 2017年9月,阿里巴巴重啟維護,重點升級所依賴的 JDK 及元件版本,釋出2.5.4/5版本;

  • 2018年2月,阿里巴巴宣佈將 Dubbo 捐獻給 Apache,進入 Apache 孵化器;

  • 2018年6月,Apache Dubbo 釋出首個加入 Apache 孵化器的版本2.6.2,發展首位committer,來自有讚的@yiji同學;

  • 2018年7月,Dubbo 官方域名更新到 dubbo.apache.org,頁面煥然一新,並啟用新 logo,品牌全面升級;

  • 2018年11月,加入孵化器以來,發展來自有讚的 @yiji同學成為首位 PPMC member;

  • 2018年12月,第八屆雲端計算標準和應用大會 ,Dubbo 獲得中國優秀開源專案一等獎,同時獲得開源中國舉辦的2018中國優秀開源專案獎,位列排行榜第3;

  • 2019年1月,釋出了2.7.0,支援 Java 1.8,包名更改為org.apache,支援 Restful 服務;

  • 2019年1月,Dubbo 社群正式釋出 Dubbo Ecosystem, 升級為完整的微服務解決方案;

  • 2019年5月21日,Dubbo 從 Apache 正式畢業。

參考

https://yq.aliyun.com/articles/705347

https://mvnrepository.com/artifact/org.apache.dubbo/dubbo

https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter