微服务简介
随着微服务架构模式被越来越多的开发者作为应用系统构建的首选,稳定可靠的微服务运行环境变的非常重要。
微服务引擎(CSE)是针对微服务解决方案提供的一站式管理平台,使用微服务引擎,开发者可以更加专注于业务开发,提升产品交付效率和质量。微服务架构模式通常包含如下内容:
1、微服务之间的RPC(Remote Procedure Call,远程过程调用)通信。微服务架构模式要求微服务之间通过RPC进行通信,不采用其他传统的通信方式,比如共享内存、管道等。常见的RPC通信协议包括REST(HTTP+JSON)、gRPC(HTTP2+protobuffer)、Web Service(HTTP+SOAP)等。使用RPC通信,能够降低微服务之间的耦合,提升系统的开放性,减少技术选型的限制。一般建议采用业界标准协议,比如REST。对于性能要求非常高的场景,也可以考虑私有协议。
2、分布式微服务实例和服务发现。微服务架构特别强调架构的弹性,业务架构需要支持微服务多实例部署来满足业务流量的动态变化。微服务设计一般会遵循无状态设计原则,符合该原则的微服务扩充实例,能够带来处理性能的线性提升。当实例数很多的时候,就需要有一个支持服务注册和发现的中间件,用于微服务之间的调用寻址。
3、配置外置及动态、集中的配置管理。随着微服务和实例数的增加,管理微服务的配置会变得越来越复杂。配置管理中间件给所有微服务提供统一的配置管理视图,有效降低配置管理的复杂性。配置管理中间件搭配治理控制台,可以在微服务运行态对微服务的行为进行调整,满足业务场景变化、不升级应用的业务诉求。
4、提供熔断、容错、限流、负载均衡、降级等微服务治理能力。微服务架构存在一些常见的故障模式,通过这些治理能力,能够减少故障对于整体业务的影响,避免雪崩效应。
5、调用链、集中日志采集和检索。查看日志仍然是分析系统故障最常用的手段,调用链信息可以帮助界定故障和分析性能瓶颈。
开发环境规划管理
规划开发环境的目的是要保证开发人员更好的并行工作,减少依赖,减少搭建环境的工作量,降低生产环境上线的风险。
管理开发环境的目的是为了更好的进行开发测试,部署上线。、
1、搭建内网本地开发环境。本地开发环境的好处是各个业务/开发者可以搭建符合自己需要的最小功能集合环境,方便查看日志、调试代码等。本地开发环境能够极大的提升代码开发效率,减少部署和调试的时间。本地开发环境的不足之处是集成度不高,需要集成联调的时候,很难确保环境稳定。
2、云上测试环境是相对比较稳定的集成测试环境。本地开发测试完成后,各个业务将本领域的服务部署到云上测试环境,并且可以调用其他领域的服务进行集成测试。根据业务规模的复杂程度,可以将云上测试环境进一步分为α测试环境、β测试环境、γ测试环境等,这些测试环境集成程度由低到高。一般γ测试环境要求和生产环境一样的管理,确保环境稳定。
3、生产环境是正式业务环境,生产环境需要支持灰度升级功能,支持在线联调和引流,保证升级故障对服务造成的影响最小化。
4、云上测试环境可以通过开放CSE、中间件的公网IP,或者实现网络互通,这样可以使用云上的中间件替换本地环境,减少各个开发者自行安装环境的时间。这种情况也属于内网本地开发环境,微服务在本地开发环境的机器上运行。云上采用容器部署的微服务和本地开发环境机器上部署的微服务无法相互访问。为了避免冲突,云上测试环境只作为本地开发环境使用。
应用逻辑隔离管理
应用逻辑隔离主要用于不同的开发环境共享公共CSE资源的场景,降低成本。逻辑隔离还用于微服务之间的关系管理,通过配合合理的隔离策略,可以更好地控制微服务之间的可访问性、权限等。
服务发现
按照app隔离不同的业务域的微服务。
不同的业务域使用不一样的app名称。同一个业务域内的服务,能够相互发现和点到点访问。不同业务域的服务,不能相互发现,需要通过待访问微服务所在的业务域内的Spring Cloud Gateway去访问。
动态配置
动态配置按照公共、应用、服务三个层次进行管理。
简单的场景,可以使用应用级配置和服务级配置。应用级配置被该应用下的所有微服务共享,是公共配置;服务级配置只对具体微服务生效,是独享配置。复杂的场景,可以通过使用custom_tag和custom_value来定义配置。 例如某些配置,是对所有应用共享的,那么就可以使用这个机制。
合理规划服务治理
推荐使用ServiceStage部署Spring Cloud应用,使用ServiceStage能够方便的实现滚动升级。
当使用ServiceStage部署应用的时候,可参考设置应用健康检查分别配置组件存活探针、组件业务探针,用以检测微服务的“存活”状态和“就绪”状态。
spring Boot提供了开箱即用的容器探针,LivenessStateHealthIndicator 、ReadinessStateHealthIndicator。
配置探针,需要启用spring-cloud-starter-huawei-actuator功能。
说明:Spring Cloud Huawei 1.9.0-Hoxton和1.9.0-2020.0.x及以上版本才提供这个模块。
除了设置探针,还需要设置滚动升级策略。核心的参数为“最大无效实例数”。“最大无效实例数”的默认值是0,当只有1个实例的情况下,滚动升级会存在中断。建议设置0<=最大无效实例数<实例数。
微服务管理教程视频
微服务引擎CSE
微服务引擎CSE
微服务管理精选推荐
1对1咨询专属顾问
华为云咨询电话:950808或4000-955-988 转1
华为云咨询电话:950808或4000-955-988 转1