与传统的单体架构相比,微服务架构作为流行的开发架构,在研发效率和可扩展性方面都具备优势。应用采用微服务架构后,虽然解耦了冲突域,提升了迭代和运行效率,但同时也增加了分布式环境的运维难度。Serverless 应用引擎 SAE(Serverless App Engine)作为微服务架构向Serverless化转型的实践,不仅增强了微服务的诸多能力,还降低了学习、调试与运维成本等,为企业微服务转型提供助力。通过本文,您可以了解与SAE微服务相关的概念与能力,以及常见问题的解决方案。
概念和能力索引
一级分类 | 二级分类 |
视频教程
注册中心
使用说明
为了让微服务的应用可以快速部署到SAE,SAE提供了“Serverless”版的Nacos作为注册中心,适用于使用Nacos1.X和2.X客户端的微服务应用。您可以参见在应用中配置SAE内置Nacos,将您的微服务应用部署到SAE。SAE注册中心的使用说明如下。
选择SAE内置Nacos后,SAE通过自动注入相关环境变量以及借助于Java Agent修改字节码的技术,支持自动修改程序的注册中心地址。因此,您无需对程序做任何修改即可将其直接部署到SAE。
不适用于使用非Nacos注册中心的程序,相关逻辑完全由您的程序控制。
该注册中心适用于快速体验或者小规模生产环境,如果您的微服务应用实例总数超过30个,推荐您使用自建注册中心或者MSE注册中心。
应用配置
应用配置如何生效,请参见使用SAE内置Nacos。
配置中心
使用说明
与注册中心一样,也提供了“Serverless”版的Nacos作为配置中心,适用于使用Nacos1.X和2.X客户端的微服务应用。您可以参见在应用中配置SAE内置Nacos,使用SAE的配置中心。SAE配置中心的使用说明如下。
选择SAE内置Nacos后,SAE通过自动注入相关环境变量以及借助于Java Agent修改字节码的技术,支持自动修改程序的配置中心地址。因此,您无需对程序做任何修改即可将其直接部署到SAE。
不适用于使用非Nacos配置中心的程序,相关逻辑完全由您的程序控制。
该配置中心曾作为阿里云的独立产品提供服务,但目前该独立产品已下线。不过,您仍然可以在SAE中继续使用其配置功能。建议您直接使用MSE提供的Nacos 2.0配置服务。更多信息,请参见Nacos版本特性。
应用配置
应用配置如何生效,请参见使用SAE内置Nacos。控制台如何管理配置,请参见分布式配置管理。
微服务开发
IDE自动部署
相比于每次重新打包部署,IDE一键部署可以大大减少您的部署时间,并提升研发效率。
具体操作,请参见使用Alibaba Cloud Toolkit自动化部署微服务至SAE。
端云互联
采用微服务架构后,您的应用数会增多。在极端情况下,本地开发联调需要启动所有相关的微服务应用。针对该痛点,您可以借助阿里云Cloud Toolkit插件提供的端云互联能力。例如,让您的本地Consumer直接连接到SAE中部署的Provider,从而无需在本地启动Provider,大大减少开发调试成本。
具体操作,请参见使用Cloud Toolkit实现端云互联(IntelliJ IDEA)。
服务治理
服务列表
对于使用内置Nacos的应用,SAE提供基础的服务列表查询能力。如果您使用自建注册中心或者MSE注册中心,可以登录对应的控制台查询,无需在SAE控制台查看。
具体操作,请参见查询服务列表。
无损下线
因为Consumer客户端存在缓存,无法及时收到微服务Provider的下线通知,所以通常需要从注册中心摘除Provider实例,等待Consumer缓存刷新。针对上述情况,SAE借助MSE的无损下线将该功能做了产品化的集成。
关于该功能不适用的场景以及相比较于开源Spring Cloud和开源Dubbo优势的更多信息,请参见配置无损下线。
在SAE中配置无损下线的具体操作,请参见设置微服务无损下线。
无损上线
微服务的Provider服务只要注册到注册中心即可被Consumer调用,但此时,Provider可能还需要更进一步的初始化,例如数据库连接池的初始化等。因此,对于流量比较大的微服务应用,推荐您开启无损上线功能。
具体操作,请参见设置微服务无损上线。
微服务灰度
SAE不仅支持应用生命周期托管,还提供了微服务应用发布态的灰度能力。
具体操作,请参见管理灰度规则(Java)和灰度发布微服务。
限流降级
无论是微服务应用还是单体应用,在面对一些突发流量,例如秒杀场景时,应用可能会突然崩溃。如果是微服务应用,可能还会造成雪崩效应,因此有必要去做一些保护措施。SAE集成阿里云应用高可用服务(Application High Availability Service,简称AHAS),能够方便地配置和管理限流降级规则。
具体操作,请参见限流降级。
应用监控
微服务架构下,如果没有配套的监控系统,不利于发现问题和诊断问题。SAE集成 应用实时监控服务 ARMS(Application Real-Time Monitoring Service),提供了应用大盘、JVM监控、慢调用监控、调用链分析和告警等能力,尽可能降低企业落地微服务架构的门槛。
更多信息,请参见应用监控。