1.开发篇(脚手架下载)

简介: 本文介绍基于SpringCloud + Kubernetes的微服务开发新体验。阿里云EDAS推出3.0版本,结合Spring Cloud Alibaba与start.aliyun.com初始化工具,简化项目创建;通过Cloud Toolkit插件实现本地一键启动与注册中心自动适配,提升开发效率。后续将深入联调、运维等环节,持续优化开发者体验。

前言

近年来,云原生、Kubernetes、微服务、SpringCloud 这些名词在技术圈内不绝于耳,数据显示,使用 SpringCloud 作为微服务的框架,同时选择 Kubernetes 作为应用与基础设施运维底座的团队越来越多,这二者的搭档基本上成为了业界的主流配搭。

为了顺应这一趋势,EDAS 也紧紧围绕这一典型场景,对它的开发、测试、部署、联调、线上运维等诸多环节中的开发者体验进行深度打磨,发布了全新的 3.0 版本。同时,针对如何在采用了 SpringCloud + Kubenetes 架构的应用上使用 EDAS,我们团队提供各个环节的最佳实践,供开发者参考。

本篇进入我们的第一章节:开发。

初始化项目

阿里巴巴从 2018 年开始开源了以原阿里集团中间件为主要能力、全方位对标 SpringCloud Netflix 的全家桶服务,也就是目前的 Spring Cloud Alibaba 项目(https://github.com/alibaba/spring-cloud-alibaba),经过两年多的发展,这个项目受到了越来越多开发者的喜爱,目前的 star 数也达到了 14K。

不过对于开发者而言,选择变多的同时,往往也会伴随一些烦恼,比如:我们到底需要使用什么版本?如何选择依赖的服务?如何解决公共组件的冲突问题?为了解决这些问题,阿里云去年上线了一款项目初始化工具(http://start.aliyun.com) ,如下图:

我们通过这个页面提供了一个生成 Java 应用(不只是 SpringCloud 应用)的白屏化工具,对于一个最简单的 Spring Cloud 应用,只有一项是您必须要选择的依赖,就是 Spring Cloud Alibaba 选项卡下的 Nacos Service Discovery 组件。选中之后,点击按钮组中橙色的 “生成” ,工具会根据所需的依赖自动生成一份可直接打包运行的 pom.xml 文件,同时将所有内容打成一个标准的 Java 项目工程包供您下载。

1.脚手架下载Demo

(http://start.aliyun.com) 这里我建议选择如下配置:

如果你不确定是否勾选正确,也可以用我下面这个附件:

在本地跑起来

下载完生成的项目工程之后,对于常规 Spring Cloud 应用开发开发流程,下一步是需要去找一个(或本地搭建一个)注册中心(如:Nacos),这个过程往往是需要花费一定时间的。去年年底我们在阿里云的 IDE 插件 Cloud Toolkit 中开发了一个自动拉起/选择注册中心, 并将应用自动适配到所选择的注册中心的功能。界面如下图:

2.安装EDAS插件

可以按照自身以及团队的需求,选择合适的注册中心,如:可以选择"Use Local Registry"(适合个人开发)、或选择"Join Custom Registry"(适合团队开发)、也选择云上的 Nacos 集群(和云上服务联调);选择好之后,按照正常流程再在 IDE 中启动您的应用程序,此时应用就会自动适配到所选择的注册中心中,无需再去搭建一个,完全免维护。这里选择本地注册中心,点击启动

出现以下地址,访问:http://127.0.0.1:8080 (以实际提示为准)

浏览器访问如图,即本地注册中心启动成功

提前做一个预告,关于开发者联调这一块的能力我们将会有专门的章节来讲解 EDAS 中的端云互联的能力,您也可以去阿里云官方文档中搜索《端云互联简介》进行前期的了解。

结语及其后续

在本篇中,我们站在开发者的视角对于项目初始化和本地启动两个开发过程中的基本环节,分别推荐了两个工具,它们的功能并不限于文章中提到的部分,还有更多和更强大的能力等待着我们自己去挖掘,EDAS 团队也将会在开发者体验上持续深耕,如果您有什么建议欢迎在文章下边进行留言分享。

另外,此次分享的内容并没有关于 Kubernetes 有关的话题,因为这个分享是一个系列文章,本篇仅介绍上

相关文章
|
19小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么
Thread.Sleep用于让线程暂停执行一段时间,不参与CPU竞争。Sleep(1000)并不保证精确唤醒时间,因系统调度受优先级和资源影响;而Sleep(0)则触发系统立即重新分配CPU,给予其他线程执行机会,避免界面假死。理解其原理有助于优化多线程程序性能与响应性。
|
19小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用
Thread.Sleep用于让线程暂停执行一段时间,期间不参与CPU竞争。Sleep(1000)不保证精确唤醒时间,受系统调度影响;而Sleep(0)会触发系统立即重新分配CPU,给其他线程执行机会,避免界面假死。两者作用不可忽视。
|
19小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(
Thread.Sleep用于让线程暂停执行一段时间,不参与CPU竞争。Sleep(1000)并不保证精确唤醒时间,因系统调度受优先级和线程状态影响;而Sleep(0)会触发系统立即重新分配CPU,给其他线程执行机会,避免界面假死。两者作用显著不同。
|
19小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就
Thread.Sleep用于暂停线程执行,Sleep(1000)不保证精确唤醒时间,因CPU可能被其他线程占用;Sleep(0)则触发系统立即重新进行CPU调度,给予其他线程执行机会,避免界面假死。两者均体现操作系统对线程优先级与调度的管理机制。
|
19小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完
本简介旨在简要介绍所提供的内容,突出其核心要点与价值。通过精炼语言,概括主题思想,帮助读者快速理解主要内容,适用于推广、导读或信息传递场景,力求在240字符内清晰传达关键信息。
|
19小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂
本文深入解析 `Thread.Sleep` 的底层机制,结合操作系统调度原理,探讨其在多线程环境中的真实行为。通过“分蛋糕”类比,形象说明Windows抢占式调度的特点,澄清对 `Sleep(1000)` 和 `Sleep(0)` 的常见误解。重点指出:`Sleep(0)` 并非无意义,而是主动触发CPU重新竞争,让出执行机会,避免界面假死,具有重要实际价值。
|
19小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep用于让线程暂停执行一段时间,不参与CPU竞争。Sleep(1000)并不保证精确唤醒时间,因系统调度受优先级和资源影响;而Sleep(0)会触发立即重新分配CPU,让其他线程获得执行机会,避免界面假死。两者作用显著不同。
|
19小时前
|
存储 缓存 算法
零拷贝 你会如何实现文
实现文件传输时,传统方式因频繁系统调用导致大量上下文切换与内存拷贝,性能低下。零拷贝技术通过减少用户态与内核态切换、避免重复数据拷贝,显著提升效率。结合PageCache预读与大文件场景下的异步IO+直接IO策略,可优化不同规模文件的传输性能。
|
19小时前
|
缓存 算法 搜索推荐
线程池
线程池是将多个线程统一管理的“池化”技术,避免频繁创建销毁线程带来的开销。Java中通过`ExecutorService`和`ThreadPoolExecutor`等类实现,核心原理是复用线程、任务队列调度及合理的拒绝策略。`ScheduledThreadPoolExecutor`支持延时与周期性任务,基于`DelayedWorkQueue`实现延迟调度。`Executors`工厂类提供多种线程汛建造方法,如固定大小、缓存型、单线程等,适用于不同并发场景,提升系统性能与资源利用率。
|
19小时前
|
Java Sentinel 微服务
服务保护、分布式事务
本课程聚焦微服务保护核心技能,涵盖雪崩问题、熔断降级、限流隔离等机制,学习Sentinel实现熔断、降级、限流策略配置,掌握FallbackFactory降级逻辑编写,理解CAP原理与Seata分布式事务,全面提升微服务高可用设计能力。