Spring Cloud Alibaba IDE 工具重大升級


頭圖.png

作者 | 銀時

導讀:Spring Cloud Alibaba 是由阿里巴巴於 2018 年 11 月正式開源的微服務開發一站式解決方案,經過近兩年的發展,現已成為 Spring Cloud 生態中最活躍、開發體驗最好的實現。最近,Spring Cloud Alibaba 官方再次對周邊的工具進行了升級,和 Cloud Toolkit 深度集成,提供了工程創建、代碼編寫、一鍵部署和問題診斷等一系列開發者提效工具。

今天就和大家分享一下這個工具 —— Cloud Toolkit,重點包括:

  1. 在 IDE 中一鍵創建 Spring Cloud Alibaba 項目
  2. 演示采用 Java 代碼規約 Review 代碼
  3. 一鍵部署到任意兩台機器
  4. 一鍵部署到阿里雲容器服務 ACK
  5. 使用 Arthas 進行遠程診斷

安裝 Cloud Toolkit 插件只需要 1 分鍾 --> 教程鏈接:https://www.aliyun.com/product/cloudtoolkit

1.png

第一:一鍵創建工程

首先,我們借助 Cloud Toolkit 來創建一個完整的 Spring Cloud Alibaba 項目。點擊菜單 New - Project:

2.png

選擇 Alibaba Java Initializr

3.png

編輯項目基本屬性,點擊 Next

4.png

選擇項目依賴,點擊 Next

5.png

編輯項目路徑,點擊** Finish**:

6.png

至此,項目創建完畢。

注意:如果發現沒有自動導入到當前窗口的項目,請點擊 Reload All Maven Projects

7.png

第二:采用 Java 代碼規約 Review 代碼

在寫代碼過程中,Cloud Toolkit 提供了代碼 Review 的能力。

為了更好的演示功能,我們預先編寫好了一個代碼編寫有缺陷的代碼,使用如下示例代碼,覆蓋 DemoApplication.java。

package com.example.demo;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.concurrent.ThreadLocalRandom;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

    private static String TEST_STRING = "test";

    private static LocalDateTime time = LocalDateTime.now(ZoneId.of(ZoneOffset.ofHours(8).getId()));

    private static final Logger logger = LogManager.getLogger();

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

    private int counter = 0;

    // watch com.example.demo.DemoApplication print '{params,returnObj,throwExp}' -v -n 5 -x 3 '1==1'
    // trace com.example.demo.DemoApplication print -v -n 5 --skipJDKMethod false '1==1'
    // stack com.example.demo.DemoApplication print -v -n 5
    private double print(String s) {
        System.out.println(s);
        int delay = ThreadLocalRandom.current().nextInt(3000);
        try {
            Thread.sleep(delay);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        if (delay % 3 == 0) {
            throw new IllegalStateException("test exception");
        }
        return Math.random();
    }

    @GetMapping("/")
    public String root() {
        return "<h1>Maven Spring Boot Application started at ------ " + time + "</h1>";
    }

    @Bean
    public CommandLineRunner runner() {
        return args -> {
            while (true) {
                String msg = LocalDateTime.now(ZoneId.of(ZoneOffset.ofHours(8).getId())).toString() + "  " + counter++;
                try {
                    print(msg);
                } catch (Exception e) {
                }
                Thread.sleep(333);
            }
        };
    }


}

在設置中打開代碼規約檢查:

8.png

如下圖所示,對於不符合規約的代碼會進行提示:

9.png

第三:一鍵部署

編寫完代碼之后,就要開始進行遠程部署了。Cloud Toolkit 提供了一鍵部署的能力。點擊右鍵,Alibaba Cloud-Deploy to Host:

10.png
11.png

選擇需要部署的兩台機器,點擊 Select:

12.png

需要部署的機器會展示在表格中:

13.png

點擊 Select Command - Add Command,添加啟動 SpringBoot 命令:

14.png

選擇添加的命令:

15.png

在 Target Directory 中,輸入 /root,點擊 Run:

16.png

部署成功后,Spring Boot 項目開始打印日志:

17.png

第四:運行時診斷

接下來,我們來演示對遠程某一台機器上運行的 Java 應用,進行遠程診斷。

在 Cloud Toolkit 的 Host 視圖中,點擊 More-Diagnostic:

18.png

Arthas 啟動后,選擇需要診斷的 Java 進程:

19.png

進程掛載成功,可以開始輸入 Arthas 診斷命令:

20.png

atch com.example.demo.DemoApplication print '{params,returnObj,throwExp}' -v -n 5 -x 3 '1==1'

21.png

stack com.example.demo.DemoApplication print -v -n 5

22.png

總結

至此,一個完整的 Spring Cloud 應用的開發、部署和運行診斷就完成了。簡單的來說,Cloud Toolkit 是本地 IDE 插件,幫助開發者更高效地開發、測試、診斷並部署應用。

通過插件,可以將本地應用一鍵部署到任意服務器,甚至雲端(ECS、EDAS、Kubernetes 和 小程序雲 等);並且還內置了 Arthas 診斷、Dubbo工具、Terminal 終端、文件上傳和 MySQL 執行器等工具。其包含的功能還有很多,包括:

  • 一鍵部署本地 IDE 內項目到任意遠程服務器
  • 一鍵部署本地 IDE 內項目到阿里雲 EDAS、SAE 和 Kubernetes
  • 本地 Docker Image 打包和倉庫推送工具
  • 遠程服務器實時日志查看
  • 阿里雲小程序開發工具
  • 阿里雲函數計算開發工具
  • 阿里雲 RDS 內置 SQL 執行器
  • 內置 Terminal 終端
  • 文件上傳
  • Apache Dubbo 框架項目模板&代碼生成
  • Java 程序診斷工具
  • RPC 服務端雲聯調

課程推薦

去年,CNCF 與 阿里雲聯合發布了《雲原生技術公開課》已經成為了 Kubernetes 開發者的一門“必修課”。今天,阿里雲再次集結多位具有豐富雲原生實踐經驗的技術專家,正式推出《雲原生技術實踐公開課》。課程內容由淺入深,專注講解“ 落地實踐”。還為學習者打造了真實、可操作的實驗場景,方便驗證學習成果,也為之后的實踐應用打下堅實基礎。點擊鏈接查看課程:https://developer.aliyun.com/learning/roadmap/cloudnative2020

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公眾號。”


免責聲明!

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



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