文档首页 > > 快速入门

快速体验微服务能力

更新时间: 2020/04/20 GMT+08:00

weathermap Demo简介

本文档通过一个示例向您展示微服务引擎的治理能力,以及对新服务快速开发和已有服务零改造接入的支持能力。示例是一个天气预报应用,该应用可以为您提供世界各地当前的天气详情以及未来5天的预报。

设计图如下:

  • Weather:当前天气。
  • Forecast:预报天气。
  • Fusionweather:汇聚服务,为前台界面提供数据。
  • Weathermapweb:界面服务。

通过weathermap介绍如何使用注册发现、服务降级以及灰度发布,其他功能的使用方法请参考治理微服务

配置服务治理策略后,需要等待配置刷新后生效,默认刷新时间为30秒。

环境准备

  1. 安装JDK

    1. JDK版本

      JDK版本要求1.8版本。

    2. JDK下载

      请到JDK官方地址下载。

  2. 安装NodeJS

    1. NodeJS版本

      NodeJS版本要求4.8.4以上。

    2. NodeJS下载

      请到NodeJS官方地址下载。

    安装完成后,执行npm -v命令:

    • 如果显示版本信息,则安装完成。
    • 如果不显示版本信息,请配置环境变量。

  3. 下载微服务应用:weathermap

    访问weathermap地址下载服务包。

注册发现

前提条件

在Windows环境下启动weathermap,需要获取AK/SK,若未获取请参考下载AK/SK

操作步骤

  1. 解压weathermap下载包,并记录解压路径。

    解压路径不允许包含中文字符。

  2. 进入weathermap解压路径,打开“credentials”文件,配置AK/SK,并新增如下行:

    project=ap-southeast-1

    所在Region的项目名称获取方法请参考获取项目名称

  3. (可选)配置Proxy代理。

    进入weathermap解压路径,打开“httpproxy.properties”,配置代理,说明如下。

    #proxy setting
    proxy.enabled=true      //true:使用proxy代理,false:不使用proxy代理。
    proxy.host=             //proxy代理服务器地址
    proxy.port=8080        //proxy代理端口号
    proxy.user=            //proxy代理用户名
    proxy.password=       //proxy代理密码
    
    #rest connect timeout setting
    rest.readtimeout=15000
    rest.connecttimeout=10000

  4. 编辑startup_all.bat脚本文件,在22行处新增如下行,并配置为微服务引擎服务中心的地址:

    set PAAS_CSE_ENDPOINT=       //所在region的微服务引擎服务中心地址

    示例:

    set PAAS_CSE_ENDPOINT=https://cse.ap-southeast-1.myhuaweicloud.com

    所在region的微服务引擎服务中心地址,可以在ServiceStage控制台的“基础设施 > 微服务引擎”页获取。

  5. 运行startup_all.bat脚本,自动启动所有微服务。

    • 如果PC存在两张网卡,需要把无用网卡禁用,避免出现cse域名无法解析问题。
    • Windows系统下,服务启动后进入后台运行,如果想停止服务,请关闭进程。

  6. 启动成功后,登录ServiceStage控制台,在左侧导航栏选择“基础设施 > 微服务引擎”,单击目标引擎的“查看控制台”,查看“服务目录”页面,选择“weathermap”应用,可以看到所有微服务自动注册:

  7. 启动成功后访问http://localhost:3000/,看到如下界面:

服务降级

  1. 登录ServiceStage控制台在左侧导航栏选择基础设施 > 微服务引擎,单击目标引擎的“查看控制台”,查看“服务治理”页面,单击fusionweather微服务进入治理界面。
  2. 选择“降级”页签,单击“新增”。

    1. 降级对象”选择forecast微服务的所有方法。
    2. 降级策略”选择“开启”。
    3. 单击“确定”保存更改。

  3. 重新访问http://localhost:3000/,可以看到预报天气不再展示。

    因为当前设置的降级规则为:与fusionweather有访问关系的forecast服务返回异常,服务间连接的管道已断开,界面也就获取数据失败。

    如下左侧当前天气有数据,右侧未来天气无数据。

  4. 单击策略名后的删除降级策略,刷新界面,应用功能正常。

灰度发布

  1. 服务目录”页面,单击weather服务进入服务详情界面。

    在天气预报这个demo中,weather服务的0.0.1版本不包含紫外线预报,0.0.2版本包含紫外线预报。

  2. 选择“灰度发布”,单击“添加发布规则”。
  3. 在弹框中进行以下操作。

    1. 发布规则”选择“自定义”。
    2. 规则名称”填写“test”。
    3. 版本”选择0.0.2,不选择0.0.1。
    4. 参数名”设置为“city”,“规则”设置为“=chengdu”。

      city为fusionweather中定义的请求参数。

    5. 单击“确定”保存更改。

  4. 访问http://localhost:3000/。

    搜索shenzhen天气:

    搜索chengdu天气:

    因为现在设置的灰度发布规则为:成都的天气预报请求都下发给weather服务的0.0.2版本。0.0.1版本没有做紫外线功能,0.0.2版本有做紫外线功能,所以当收到city名为chengdu请求时,界面展示紫外线。

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过200

反馈内容不能为空!

提交反馈 取消