Dubbo 3.0实现了和HSF框架的技术统一。所以,在EDAS中,可以便捷的将HSF应用升级为Dubbo 3.0应用。升级之后,HSF应用可沿用原有开发方式,还可以使用EDAS为Dubbo应用提供的更加完善的服务治理功能。

背景信息

EDAS对Dubbo应用的服务治理更加完善,且会不断通过迭代进行更新。所以,如果HSF应用想使用更加完善的服务治理能力,可以升级为Dubbo 3.0应用。

一个HSF应用包含应用程序以及应用运行环境(EDAS-Container)。EDAS-Container包含Java环境、Ali-Tomcat和Pandora。EDAS-Container 4.x版本,正是Dubbo 3.0的商业化输出形式之一。在EDAS控制台将HSF应用的Pandora升级为4.0.0版本,即可将HSF应用升级为Dubbo 3.0应用。

EDAS为Dubbo应用提供了一系列服务治理功能。

重要 请先在测试环境进行升级并验证,然后再升级线上应用。

将ECS集群中的HSF应用升级为Dubbo 3.0应用

  1. 登录EDAS控制台
  2. 在左侧导航栏单击应用列表
  3. 应用列表页面顶部菜单栏选择地域,在页面上方选择微服务空间,在集群类型的下拉列表中选择ECS集群,然后单击目标HSF应用的应用名称。
  4. 在应用的基本信息页面右上角单击运行时环境升降级
  5. 运行时环境升降级对话框中将Pandora版本设置为4.0.0,其它环境和部署参数根据实际需求选择,然后单击确定
    运行时环境升降级
    应用会重新部署,大概需要几分钟时间。您可以在应用变更详情中查看变更进度,具体操作,请参见查看变更详情

将K8s集群中的HSF应用升级为Dubbo 3.0应用

HSF应用可以通过WAR包部署,也可以通过镜像部署。本文分别介绍WAR包和镜像部署在K8s集群中的应用如何升级到Dubbo 3.0。

将WAR包部署的HSF应用升级到Dubbo 3.0

  1. 登录EDAS控制台
  2. 在左侧导航栏单击应用列表
  3. 应用列表页面顶部菜单栏选择地域,在页面上方选择微服务空间,在集群类型的下拉列表中选择容器服务/Serverless K8s集群,然后单击目标HSF应用的应用名称。
  4. 基本信息页面右上角选择部署应用
  5. 部署模式选择页面分批发布区域单击开始部署
  6. 分批发布页面将应用运行环境设置为EDAS-Container 4.0.0【支持FatJar部署】,根据实际需求设置其它参数,然后单击确定
    其它参数的设置说明,请参见使用控制台分批发布应用(K8s)
    应用部署大概需要几分钟时间。您可以在应用变更详情中查看变更进度,具体操作,请参见查看变更详情

将镜像部署的HSF应用升级到Dubbo 3.0

EDAS中推荐您使用Dockerfile构建镜像,所以本文也以Dockerfile为例介绍如何将HSF应用升级为Dubbo 3.0应用。构建HSF应用镜像的Dockerfile示例,请参见HSF应用的Dockerfile示例

# Using the centos7 + openjdk8 + ali tomcat7 + pandora 3.5.9 for the base 
FROM apaas/edas-centos-openjdk8-alitomcat7:latest
MAINTAINER Alibaba Cloud EDAS Team<edas-dev@list.alibaba-inc.com>

ENV TZ="Asia/Shanghai"

# Default put your application package into /home/admin/app/
ENV APP_HOME /home/admin/app/

#####----> First case: deploy a fat-jar file 
ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/HSF_PROVIDER.jar

#####----> Second case: deploy a war file, simply change the file name your wanted.
#ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/HSF_PROVIDER.war

#####----> Third case: deploy a local storage file.
#ARG APP_LOCATION=/Users/yanliang.lyl/workspace/java/demo/HSF_PROVIDER.war

# Then download to package into /home/admin/app/
ADD ${APP_LOCATION} ${APP_HOME}/

# Default working dir is set to /home/admin
# WORKDIR /home/admin

# Entry point set to /home/admin/bin/start.sh, 
# which including inside basic image (apaas/edas-centos-openjdk8-alitomcat8)
# CMD ["/home/admin/bin/start.sh"]             
  1. 在HSF应用的Dockerfile文件中增加如下配置,将HSF应用的运行环境EDAS-Container(Pandora)的版本升级为4.0.0。
    # 设置 EDAS-Container/Pandora 应用容器版本
    ENV UPGRADED_CONTAINER_VERSION 4.0.0        
    RUN /home/admin/bin/upgradecontainer.sh            
  2. 进入Dockerfile所在的目录,执行docker build命令构建镜像。
    docker build -t [标签名称,最好取应用名]:[版本号] .
    或docker build -t [标签名称,最好取应用名]:[版本号] -f /path/to/custom_dockerfile_name .  # 假如您创建好的Dockerfile在其他位置或名称不为Dockerfile时适用。

    例如:

    docker build -t hsf-provider:1.0.0 .            
  3. 执行docker images | grep<镜像标签名称> 命令查看本地打包好的镜像。
  4. 将本地镜像上传到镜像仓库。
    推荐您使用阿里云的容器镜像服务ACR,上传镜像的具体操作,请参见使用企业版实例推送和拉取镜像
  5. 将构建好的Dubbo 3.0应用镜像部署到EDAS的K8s集群中。具体操作,请参见在K8s环境中通过镜像部署微服务应用

结果验证

将HSF应用升级为Dubbo 3.0应用后,可以在微服务治理的HSF和Dubbo两个框架下看到对应的服务列表。也可以对升级后的Dubbo应用进行服务治理验证。