Spring Cloud Alibaba IDE 工具重大升级

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
云原生网关 MSE Higress,422元/月
函数计算FC,每月15万CU 3个月
简介: 最近,Spring Cloud Alibaba 官方再次对周边的工具进行了升级,和 Cloud Toolkit 深度集成,提供了工程创建、代码编写、一键部署和问题诊断等一系列开发者提效工具。

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
12天前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
132 13
Spring Cloud Alibaba:一站式微服务解决方案
|
19天前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
31 6
|
19天前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
38 5
|
19天前
|
缓存 监控 Java
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
31 5
|
1月前
|
存储 人工智能 Java
Spring AI Alibaba 配置管理,用 Nacos 就够了
本文通过一些实操案例展示了 Spring AI Alibaba + Nacos 在解决 AI 应用中一系列复杂配置管理挑战的方案,从动态 Prompt 模板的灵活调整、模型参数的即时优化,到敏感信息的安全加密存储。Spring AI Alibaba 简化了对接阿里云通义大模型的流程,内置 Nacos 集成也为开发者提供了无缝衔接云端配置托管的捷径,整体上极大提升了 AI 应用开发的灵活性和响应速度。
209 12
|
1月前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
1月前
|
IDE Java 开发工具
ide工具
ide工具
40 8
|
2月前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
近期,阿里云重磅发布了首款面向 Java 开发者的开源 AI 应用开发框架:Spring AI Alibaba(项目 Github 仓库地址:alibaba/spring-ai-alibaba),Spring AI Alibaba 项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。本文将详细介绍 Spring AI Alibaba 的核心特性,并通过「智能机票助手」的示例直观的展示 Spring AI Alibaba 开发 AI 应用的便利性。示例源
1242 12
|
2月前
|
人工智能 开发框架 Java
总计 30 万奖金,Spring AI Alibaba 应用框架挑战赛开赛
Spring AI Alibaba 应用框架挑战赛邀请广大开发者参与开源项目的共建,助力项目快速发展,掌握 AI 应用开发模式。大赛分为《支持 Spring AI Alibaba 应用可视化调试与追踪本地工具》和《基于 Flow 的 AI 编排机制设计与实现》两个赛道,总计 30 万奖金。
|
2月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。