Spring Cloud应用接入华为云微服务CSE

概述

 

Spring Cloud应用可以方便的接入CSE提供的基础服务。接入CSE服务有如下好处:

  1. 开发者可以专注于业务系统的开发,把精力从中间件的可靠性评估、集群部署、运维监控等复杂的事情中解放出来。

  2. 实现业务快速交付和敏捷开发。利用PaaS平台,根据业务规模,动态的调整资源使用,降低业务风险。

下图展现了CSE基础服务、PaaS平台服务和第三方服务的关系:

CSE官方支持ServiceComb微服务框架接入和Spring Cloud微服务框架接入。两个框架接入的步骤基本类似。在本文中,主要介绍Spring Cloud应用接入CSE的原理,然后通过一个Spring Cloud应用改造的案例,说明改造步骤。

为了使用CSE基础服务,还需要开发者拥有华为云账号,可以登路华为云免费注册。建议开发者先通过CSE提供的“快速体验微服务能力”了解CSE,在下面的章节中,会省略体验过程中涉及到的一些公共操作,比如如何获取AK/SK认证信息等。

 

演进路线图

 

CSE提供了非常丰富的开箱即用的微服务管控能力,这些能力通过CSE的RPC框架集成。如果使用Spring Cloud,开发者需要组合非常多的三方组件来完成这些功能,下面列举了部分功能:

CSE功能 Spring Cloud实现方式
负载均衡策略 使用ribbon组件
实例故障隔离和失败重试 使用ribbon/hystrix组件
微服务隔离、熔断、容错 使用hystrix组件
微服务方法级别隔离、熔断、容错 使用hystrix组件,定义复杂的配置规则
流量控制 实现流量控制算法,定义复杂的配置规则
故障注入 实现动态配置,定义故障规则
灰度发布 实现灰度发布算法,定义灰度发布规则
微服务监控,包括调用链等 使用zipkin组件
metrics Spring Cloud 自带,没有集中监控能力,或者集成prometheus

CSE还提供了非常友好的管理界面,帮助开发者在运行时管理和监控微服务。Spring Cloud开发者在使用CSE的过程中有非常多灵活的选择,下面是一个可选的技术路线:

  • 第一步:遗留系统快速接入,完成Spring Cloud应用的云上部署

Spring Cloud开发者通过修改pom文件,就可以接入CSE提供的公共服务中心和配置中心服务,使用公共服务作为注册发现、动态配置功能,节省了开发、部署eureka、git等Spring Cloud提供的服务的时间和购买部署公共服务的机器成本。

这个步骤一般在1小时内就可以完成开发和部署测试,提供了快速上云的通道。

这个步骤完成后,业务原有的功能基本不受任何影响(一些严重依赖于服务发现中间件的功能除外)。接入也给用户提供了一个可以直观感受CSE提供的功能的机会,用户可以根据实际的运维感受,作出更加理性的选择是否使用CSE进行下一步的演进。

  • 第二步:将Spring MVC REST Framework改造为CSE

这个步骤会在Spring Boot框架中集成CSE的REST框架。通过这个步骤,CSE提供的所有微服务管理功能都可以开箱即用,业务可以专注于逻辑的开发。完成这个步骤,用户需要对CSE的设计原理,与Spring Boot集成原理和关系有一定初步了解,这样才能够快速解决文档中未提到的一些技术问题。开始之前,建议开发者先进行如下准备工作,以更好的解决开发过程中可能遇到的问题。

  1. 完成第一步,并体验CSE
  2. 阅读CSE的设计原理,了解CSE框架的设计思路和组件组成
  3. 体验在Spring Boot中使用CSE,理解在Spring Boot框架下使用CSE的基本原理。
  • 第三步:使用轻量级容器和Edge Service

对于多数后台服务,对外只提供REST接口,不提供WEB页面。这些服务运行于J2EE容器(比如tomcat)会额外多出很多性能损耗。CSE提供了轻量级的HTTP服务器来提供REST服务,可以极大的提高性能和减少资源占用。Edge Service是CSE提供的和CSE微服务完美配合的网关服务,除了高性能,还支持强大的灰度版本管理能力、异步编程扩展能力和治理能力。

 

遗留系统快速接入

 

本章节通过一个实际的案例,说明Spring Cloud应用如何经过少量的配置修改,快速接入CSE。Demo下载地址:GitHub 码云Gitee

  • 原始Spring Cloud应用位于SpringCloudIntegration的子项目:springcloud-sample
  • 修改后的Spring Cloud应用位于SpringCloudIntegration的子项目:springcloud-sample-2-cse,该项目已提供Dockerfile和start.sh,可以直接拷贝以便在微服务云应用平台快速构建镜像。

springcloud-sample提供了3个项目:

  • eureka-server 提供注册发现能力。
  • springcloud-provider 服务提供者,该服务提供了名称为HelloService的REST接口。
  • springcloud-consumer 服务消费者,该服务也提供了名称为HelloService的REST接口,其实现通过Feign调用springcloud-provider的REST接口。

修改后的springcloud-sample-2-cse具备如下能力和变化:

  • 使用CSE提供的服务中心作为注册发现服务;
  • 使用CSE提供的配置中心作为动态配置服务,可以通过配置中心管理公共配置;
  • 业务的其他逻辑不发生任何变化,写代码的方式也不发生变化。开发者仍然可以按照原来的开发习惯书写业务代码。

接入步骤说明

CSE为Spring Cloud应用提供了非常简单的接入方式,开发者只需要修改依赖关系和少量的配置,就可以启用服务中心和配置中心客户端连接功能,将Spring Cloud应用作为一个CSE的微服务注册到服务中心和使用动态配置能力。

  • 参考环境准备配置maven setting文件,并将Spring Cloud中对于eureka的依赖换成CSE的依赖。 Eureka的依赖:开发者一般会使用spring-cloud-starter-eureka。spring-cloud-starter-eureka-server是作为注册服务使用的,替换服务中心后不需要继续使用。

删除如下依赖,以springcloud-sample为例,修改springcloud-provider/pom.xml,springcloud-consumer/pom.xml:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值