zoukankan      html  css  js  c++  java
  • 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 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

  • 相关阅读:
    JAVA——汉诺塔
    JAVA与MySQL连接并显示、管理表格实例
    2019沈阳网选——模拟
    CodeforcesRound#553(Div. 2)(A-D题解)
    CodeforcesRound#551(Div. 2)(A-C题解)
    CodeforcesGlobalRound2(Div.2)ABCE题解
    EducationalCodeforcesRound62(Div. 2)(A-D题解)
    博客搬家
    文本分类基本流程
    卡方检验应用-特征选择
  • 原文地址:https://www.cnblogs.com/alisystemsoftware/p/13739243.html
Copyright © 2011-2022 走看看