云服务器内容精选

  • 准备资源 为了方便后续的操作,需要您提前准备好如下资源: 创建一个 虚拟私有云VPC ,请参考创建虚拟私有云和子网。 创建一个未开启安全认证的2.4.0或以上版本的ServiceComb引擎专享版,请参考创建微服务引擎。 ServiceComb引擎所在VPC为1所创建的VPC。如果VPC不一致,需正确配置VPC连通。 创建一个CCE集群(如果只是试用场景,“集群管理规模”选择“50节点”,“高可用”选择“否”即可),请参考购买集群。 CCE集群所在VPC为1所创建的VPC。 集群中至少包含1个规格为8vCPUs、16GB内存或者2个规格为4vCPUs、8GB内存的E CS 节点,并且绑定弹性公网IP。为CCE集群添加节点,请参考创建节点。 CCE集群不能被其他环境绑定。 创建用于存储软件包的桶,请参考创建桶。
  • 下载并上传天气预报组件软件包 参考表1下载天气预报组件软件包到本地(本实践使用Java Chassis微服务开发框架开发的组件)。 表1 天气预报组件软件包说明 组件微服务开发框架 组件名称 组件软件包名称 组件软件包下载说明 Java Chassis weather weather-1.0.0.jar 进入天气预报组件软件包仓库。 单击ServiceComb,进入使用Java Chassis微服务开发框架开发的天气预报组件软件包库。 weather-beta weather-beta-2.0.0.jar forecast forecast-1.0.0.jar fusionweather fusionweather-1.0.0.jar edge-service edge-service-1.0.0.jar weathermapweb weathermapweb.zip Spring Cloud weather weather-1.0.0.jar 进入天气预报组件软件包仓库。 单击Spring Cloud,进入使用Spring Cloud微服务开发框架开发的天气预报组件软件包库。 weather-beta weather-beta-2.0.0.jar forecast forecast-1.0.0.jar fusionweather fusionweather-1.0.0.jar edge-service edge-service-1.0.0.jar weathermapweb weathermapweb.zip 将下载到本地的天气预报组件软件包上传到准备资源中准备好的桶中备用。 上传软件包,请参考上传对象。
  • 资源准备 为了方便后续的操作,需要您提前准备好如下资源: 创建一个虚拟私有云VPC,请参考创建虚拟私有云和子网。 创建一个未开启安全认证的ServiceComb引擎专享版,请参考创建微服务引擎。 ServiceComb引擎所在VPC为1所创建的VPC。如果VPC不一致,需正确配置VPC连通。 创建一个CCE集群(如果只是试用场景,“集群管理规模”选择“50节点”,“高可用”选择“否”即可),请参考购买集群。 CCE集群所在VPC为1所创建的VPC。 集群中至少包含1个规格为8vCPUs、16GB内存或者2个规格为4vCPUs、8GB内存的ECS节点,并且绑定弹性公网IP。为CCE集群添加节点,请参考创建节点。 CCE集群不能被其他环境绑定。 本例基于ServiceStage绑定GitHub源码仓库,实现源码构建、归档、应用创建,需要先到GitHub官网注册账号。
  • 使用ServiceStage托管天气预报微服务应用概述 天气预报微服务应用提供天气预报、紫外线和天气湿度展示等功能。本文通过天气预报应用,展示了微服务架构设计理念的应用场景,以及使用ServiceStage管理运行环境、构建应用和治理微服务的最佳实践。 天气预报应用由前端应用和后端应用组成。前端应用组件weathermapweb采用Node.js进行开发,实现前端应用发现后端应用。后端应用分别采用Java Chassis、Spring Cloud微服务开发框架实现,包括weather、forecast、fusionweather、weather-beta、edge-service等微服务组件。 其中: weathermapweb是一个基于Node.js语言开发的界面微服务。 weather是提供指定城市当前的天气情况的微服务。 forecast是提供指定城市未来几天天气情况预测的微服务。 fusionweather是一个聚合微服务,通过访问weather和forecast服务,提供全方位的天气预报功能。 weather-beta是weather微服务的新版本,新增了查询指定城市紫外线情况的功能。 edge-service为所有其它微服务的统一入口。 天气预报各个后端应用组件详细说明请参见表1。 表1 天气预报组件说明 微服务开发框架 组件名称 Java Chassis weather forecast fusionweather weather-beta edge-service weathermapweb Spring Cloud weather forecast fusionweather weather-beta edge-service weathermapweb 天气预报的逻辑组网和调用关系图如下: ServiceStage支持通过源码、软件包方式部署并接入Java Chassis、Spring Cloud微服务开发框架开发的微服务应用。 本最佳实践使用基于Java Chassis微服务开发框架开发的天气预报应用,提供了使用源码部署天气预报微服务和使用软件包部署天气预报微服务两种微服务应用部署方法,为您展示使用ServiceStage托管和治理微服务应用的能力。 父主题: 使用ServiceStage托管和治理天气预报微服务应用
  • 治理策略说明 支持负载均衡、限流、容错、降级、熔断、错误注入和黑白名单等策略的配置,具体说明见下表。 名称 说明 负载均衡 应用场景 微服务一般会部署多个实例,负载均衡控制微服务消费者访问微服务提供者的多个实例的策略,以达到流量均衡的目的。策略包括轮询、随机、响应时间权值、会话粘滞等。 该治理策略的配置示例及在POM中添加依赖可参考负载均衡中相关内容。 限流 应用场景 用于控制访问微服务的请求量大小,避免由于流量冲击对系统造成破坏。 该治理策略的配置示例及在POM中添加依赖可参考限流中相关内容。 降级 应用场景 用于控制微服务调用其他微服务的时候,强制返回缺省值或者抛出异常,而不将请求发送到目标微服务,以达到屏蔽对目标微服务的访问和降低其压力的目的。 该治理策略的配置示例及在POM中添加依赖可参考降级中相关内容。 容错 应用场景 当微服务消费者访问提供者出现异常,比如实例网络不通等,需要将请求转发到其他可用的实例。这里的容错,常被称为重试。 该治理策略的配置示例及在POM中添加依赖可参考容错中相关内容。 熔断 应用场景 当微服务消费者访问提供者出现异常,比如实例网络不通、请求超时等,并且异常积累到一定的程度,需要停止访问提供者,返回一个异常或者缺省值,防止雪崩效应。 熔断提供了自动熔断策略。自动熔断需要结合错误率等判断是否熔断。 该治理策略的配置示例及在POM中添加依赖可参考熔断中相关内容。 错误注入 应用场景 错误注入可以模拟一个调用失败,主要用于功能验证、故障场景演示等场景。 Java Chassis开发框架接入的微服务治理,该治理策略的配置示例及在POM中添加依赖可参考错误注入中相关内容。 说明: 该服务治理策略只适用于Java Chassis开发框架接入的微服务。 黑白名单 应用场景 基于公钥认证机制,微服务引擎提供了黑白名单功能。通过黑白名单,可以控制微服务允许其他哪些服务访问。 Java Chassis开发框架接入的微服务治理 只有启用了公钥认证,设置的黑白名单才能生效,请参考公钥认证。 说明: 该服务治理策略只适用于Java Chassis开发框架接入的微服务。
  • 微服务引擎概述 微服务引擎(Cloud Service Engine,CSE)提供服务注册、服务治理、配置管理等全场景能力;帮助您实现微服务应用的快速开发和高可用运维。支持多语言、多运行时;支持Spring Cloud、Apache ServiceComb Java Chassis(Java Chassis)框架。 您可以直接使用名称为“Cloud Service Engine”的微服务引擎专业版,也可以创建微服务引擎专享版。 微服务引擎专享版采用物理隔离的方式部署,租户独占微服务引擎。 微服务引擎专业版不支持多可用区(AZ)。 微服务引擎专享版在创建时可以设置多可用区(AZ)。 创建微服务引擎后,可用区不支持修改,请根据需要设置。 不支持创建跨CPU架构的微服务引擎专享版实例。 父主题: 微服务引擎
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 instanceId String 实例ID。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 请求示例 注册一个微服务实例,其主机信息为localhost,健康检查的心跳模式为push,心跳间隔为30s,所在region为r1,名字为dc,可用区为az1。 POST https://{endpoint}/v4/{project_id}/registry/microservices/{service_id}/instances { "instance" : { "endpoints" : [ "grpc://127.0.1.312:9980", "rest://127.0.0.111:8081" ], "hostName" : "localhost", "status" : "UP", "properties" : { "_TAGS" : "A, B", "attr1" : "a", "nodeIP" : "127.0.0.1" }, "dataCenterInfo" : { "name" : "dc", "region" : "r1", "availableZone" : "az1" }, "healthCheck" : { "mode" : "push", "interval" : 30, "times" : 3 } } }
  • 请求参数 表2 请求Header参数 参数 是必选 参数类型 描述 Authorization 否 String 若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取微服务引擎专享版用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 instance 是 MicroServiceInstance object 微服务实例信息。 表4 MicroServiceInstance 参数 是否必选 参数类型 描述 instanceId 否 String 实例id,唯一标识。创建实例,instanceId由service-center产生。 serviceId 否 String 微服务唯一标识,创建实例时,以url里面的为准,不用这里的serviceId。 version 否 String 微服务版本号。 hostName 是 String 主机信息。 endpoints 否 Array of strings 访问地址信息。 status 否 String 实例状态:UP、DOWN、STARTING、OUTOFSERVICE。 默认值UP。 properties 否 Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 healthCheck 否 HealthCheck object 健康检查信息。 dataCenterInfo 否 DataCenterInfo object 数据中心信息。 timestamp 否 String 实例创建时间戳,自动生成。 modTimestamp 否 String 更新时间。 表5 HealthCheck 参数 是否必选 参数类型 描述 mode 是 String 心跳模式push/pull。 port 否 Integer 端口。 interval 是 Integer 心跳间隔(秒),当值小于5秒时,按5秒注册。 times 是 Integer 最大尝试请求次数。 表6 DataCenterInfo 参数 是否必选 参数类型 描述 name 是 String 区 域名 字。 region 是 String 区域。 availableZone 是 String 可用区。
  • URI POST /v4/{project_id}/registry/microservices/{service_id}/instances 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 微服务引擎专业版,请填租户项目id,长度为1~64,获取方法请参考获取项目ID。也可以填固定值default。 微服务引擎专享版,请填固定值:default。 service_id 是 String 微服务唯一标识。字符长度为1~64,正则表达式为^.*$。获取方法请参考查询所有微服务信息。
  • 响应示例 状态码: 200 查询成功。 { "service": { "serviceId": "819706e21b7173306797d19922ce4231441c17c5", "appId": "default", "serviceName": "SERVICECENTER", "version": "2.4.8", "level": "BACK", "schemas": [ "servicecenter.grpc.api.ServiceCtrl", "servicecenter.grpc.api.ServiceInstanceCtrl" ], "status": "UP", "timestamp": "1616426688", "modTimestamp": "1616426688", "environment": "development" } }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 service MicroService object 微服务信息。 表4 MicroService 参数 参数类型 描述 serviceId String 微服务唯一标识。字符长度为1~64。正则表达式为^.*$。 environment String 用于区分微服务环境,取值为development、testing、acceptance、production。 appId String 应用App唯一标识。字符长度为1~160。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 serviceName String 微服务名称,同一个App要保证唯一。字符长度为1~128。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 version String 微服务版本号。字符长度为1~64。 正则表达式为^[0-9]$|^[0-9]+(.[0-9]+)$。 description String 微服务描述信息。字符长度不超过256。 level String 微服务层级:FRONT、MIDDLE、BACK。 registerBy String 微服务注册方式:SDK、PLATFORM、SIDECAR、UNKNOWN。 schemas Array of strings 微服务访问的契约内容。支持数字、字母,支持使用括号内字符做连接符(_-.),长度1-160字节,数组长度最大100个契约。 status String 微服务状态,UP表示上线,DOWN表示下线,默认值UP。 枚举值: UP DOWN timestamp String 微服务注册时间。 modTimestamp String 最后修改UTC时间。 framework Framework object 开发框架信息。 paths Array of ServicePath objects 服务路由信息。 表5 Framework 参数 参数类型 描述 name String 微服务开发框架,默认值为UNKNOWN。 version String 微服务开发框架版本号。 表6 ServicePath 参数 参数类型 描述 Path String 路由地址。 Property Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • URI GET /v4/{project_id}/registry/microservices/{service_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 微服务引擎专业版,请填租户项目id,长度为1~64,获取方法请参考获取项目ID。也可以填固定值default。 微服务引擎专享版,请填固定值:default。 service_id 是 String 微服务唯一标识。字符长度为1~64,正则表达式为^.*$,获取方法请参考查询所有微服务信息。
  • 运行时引擎微服务平台功能介绍 微服务平台(NUWA Runtime)托管了一个微服务运行的所有基础设施,微服务对基础设施的所有要求都通过基础设施即代码(Infrastructure as Code,简称IaC)来描述。NUWA Runtime根据IaC描述,对接相关的配置服务器,通过弹性伸缩管理平台接口,完成部署。应用托管到NUWA Runtime以后,Runtime提供IaC和管理台两种方式对集群进行变更。业务通过发布IaC版本,在运维中心执行IaC,即可对微服务集群进行变更。Runtime支持通过IaC指定集群配置、Sidecar版本、资源分配等;通过管理台可以对微服务本身及其相关的资源进行管理,如微服务生命周期管理、事件查看、更新配置、回滚、扩缩容等。 父主题: 通过微服务平台管理微服务及相关资源
  • 更多操作 表2 相关操作 操作 说明 修改环境信息 单击环境信息管理3.0列表操作列的“修改”,在弹出的窗口中重新选择环境,单击“确定”,修改环境信息。 删除环境信息 单击环境信息管理3.0列表操作列的“删除”,在弹出的提示框中单击“确定”,删除环境信息。 同步 单击环境信息管理3.0列表操作列的“同步”,在弹出的提示框中单击“确定”,将部署服务下服务环境管理中的环境信息同步至微服务平台。 撤销同步 单击环境信息管理3.0列表操作列的“撤销同步”,在弹出的提示框中单击“确定”,撤销同步的环境信息。