Spring Cloud Alibaba IDE 工具重大升级

Spring Cloud Alibaba IDE 工具重大升级

作者 | 银时

导读: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

Spring Cloud Alibaba IDE 工具重大升级

第一:一键创建工程

首先,我们借助 Cloud Toolkit 来创建一个完整的 Spring Cloud Alibaba 项目。点击菜单 New - Project:

Spring Cloud Alibaba IDE 工具重大升级

选择 Alibaba Java Initializr

Spring Cloud Alibaba IDE 工具重大升级

编辑项目基本属性,点击 Next

Spring Cloud Alibaba IDE 工具重大升级

选择项目依赖,点击 Next

Spring Cloud Alibaba IDE 工具重大升级

编辑项目路径,点击 Finish

Spring Cloud Alibaba IDE 工具重大升级

至此,项目创建完毕。

注意:如果发现没有自动导入到当前窗口的项目,请点击 Reload All Maven Projects

Spring Cloud Alibaba IDE 工具重大升级

第二:采用 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);
            }
        };
    }


}

在设置中打开代码规约检查:

Spring Cloud Alibaba IDE 工具重大升级

如下图所示,对于不符合规约的代码会进行提示:

Spring Cloud Alibaba IDE 工具重大升级

第三:一键部署

编写完代码之后,就要开始进行远程部署了。Cloud Toolkit 提供了一键部署的能力。点击右键,Alibaba Cloud-Deploy to Host:

Spring Cloud Alibaba IDE 工具重大升级
Spring Cloud Alibaba IDE 工具重大升级

选择需要部署的两台机器,点击 Select:

Spring Cloud Alibaba IDE 工具重大升级

需要部署的机器会展示在表格中:

Spring Cloud Alibaba IDE 工具重大升级

点击 Select Command - Add Command,添加启动 SpringBoot 命令:

Spring Cloud Alibaba IDE 工具重大升级

选择添加的命令:

Spring Cloud Alibaba IDE 工具重大升级

在 Target Directory 中,输入 /root,点击 Run:

Spring Cloud Alibaba IDE 工具重大升级

部署成功后,Spring Boot 项目开始打印日志:

Spring Cloud Alibaba IDE 工具重大升级

第四:运行时诊断

接下来,我们来演示对远程某一台机器上运行的 Java 应用,进行远程诊断。

在 Cloud Toolkit 的 Host 视图中,点击 More-Diagnostic:

Spring Cloud Alibaba IDE 工具重大升级

Arthas 启动后,选择需要诊断的 Java 进程:

Spring Cloud Alibaba IDE 工具重大升级

进程挂载成功,可以开始输入 Arthas 诊断命令:

Spring Cloud Alibaba IDE 工具重大升级

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

Spring Cloud Alibaba IDE 工具重大升级

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

Spring Cloud Alibaba IDE 工具重大升级

总结

至此,一个完整的 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 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

上一篇:图片未经许可,不可引用(图片外链限制PHP实现原理)


下一篇:ecshop小京东模板切换到smarty3.13之模板函数,用模板函数替换楼层