作者 | 银时

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

第一:一键创建工程

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

选择 Alibaba Java Initializr

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

选择项目依赖,点击 Next

编辑项目路径,点击** Finish**:

至此,项目创建完毕。

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

第二:采用 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 5private 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>";}@Beanpublic 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);}};}}

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

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

第三:一键部署

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


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

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

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

选择添加的命令:

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

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

第四:运行时诊断

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

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

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

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

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

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

总结

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

Spring Cloud Alibaba IDE 工具重大升级相关推荐

  1. Spring Cloud Alibaba 0.9.0 升级到 2.1.0 手把手教程

    点击上方"IT牧场",选择"设为星标"技术干货每日送达! TIPS 本文基于Spring Cloud Greenwich SR3编写,理论支持Spring Cl ...

  2. Spring Cloud Alibaba 消息队列:基于 RocketMQ 实现服务异步通信

    本讲咱们将学习以下三方面内容: 介绍消息队列与 Alibaba RocketMQ: 掌握 RocketMQ 的部署方式: 讲解微服务接入 RocketMQ 的开发技巧: 首先咱们先来认识什么是消息队列 ...

  3. IDEA中 30 秒生成 Spring Cloud Alibaba 工程

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 如果你想使用 Spring Cloud Alibaba, ...

  4. 流量暴增,掌门教育如何基于 Spring Cloud Alibaba 构建微服务体系?

    作者 | 童子龙  掌门教育基础架构部架构师 **导读:**本文整理自作者于 2020 年云原生微服务大会上的分享<掌门教育云原生落地实践>,本文主要介绍了掌门教育云原生落地实践,主要围绕 ...

  5. 进击的 Spring Cloud Alibaba —— 框架与服务

    作者 | 陈曦(良名)  Spring Cloud Alibaba 项目成员,start.aliyun.com 负责人. 导读:本文整理自作者于 2020 年云原生微服务大会上的分享<进击的 S ...

  6. IDEA 中 30 秒生成 Spring Cloud Alibaba 工程

    作者 | 图恩  阿里云技术专家 如果你想使用 Spring Cloud Alibaba,那么你遇到的第一个问题一定是如何快速的创建一个脚手架工程. 近日,阿里巴巴发布了 Spring 的国内脚手架定 ...

  7. 搞到一个IDEA插件,H哥30秒生成一个Spring Cloud Alibaba工程

    如果你想使用 Spring Cloud Alibaba,那么你遇到的第一个问题一定是如何快速的创建一个脚手架工程. 近日,阿里巴巴发布了 Spring 的国内脚手架定制版 Aliyun Java In ...

  8. Spring Cloud Alibaba 微服务详细笔记

    文章目录 SpringCloud 一.微服务概述 1.1.什么是微服务? 1.2.为什么是微服务? 1.3.架构演变 1.4.微服务的解决方案 二.什么是SpringCloud 2.1.官方定义 2. ...

  9. 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...

最新文章

  1. SpringBoot巧用 @Async 提升API接口并发能力!
  2. python语言程序设计——python3的33个保留字
  3. VMM虚拟机启动失败故障处理
  4. weblogic调优的经过
  5. 2020年深度学习调参技巧合集
  6. 解决ppt里面添加flash后在其他电脑上不能播放的问题
  7. 31 个用来测试你网站各项性能的免费在线工具
  8. hadoop最新稳定版本dkhadoop版本选择介绍
  9. Linux网络设备驱动程序
  10. Vue 3 模板语法
  11. Android马甲包
  12. 【阿里云双11薅羊毛攻略】领限量手办详细步骤
  13. 洛夏墨迹测验(Rorschach Inkblot Test)
  14. 排队论,对策论,层次分析法
  15. 阿里巴巴高级技术专家李浩:千牛开放从云到端
  16. 安卓开发为什么选择用Java语言
  17. 大于4GB镜像文件刻录方法
  18. 自动修复.dll文件异常
  19. swal弹窗_swal() 弹出删除确认框
  20. linux thinkphp 计划任务_Linux之计划任务

热门文章

  1. Windows驱动开发学习笔记(七)—— 多核同步内核重载
  2. 脚本类恶意程序分析技巧汇总
  3. 页面异常反dump 及 内存访问异常hook
  4. JAVA 解析JSON数据
  5. MySQL唯一约束(UNIQUE KEY)
  6. 【Centos】更新为北京时间
  7. 16、子查询改写为表连接
  8. dos一些有意思的命令
  9. MySQL读写分离事务策略实现
  10. jQuery调用其他JS文件中的方法