任务管理器-微服务端

更新时间:

1. 概要

该解决方案旨在帮助您通过云开发平台构建服务形态的Serverless后端服务,主要传达了几个知识点:

  • 微服务注册与服务发现的集成使用;

  • 把一个微服务架构的系统在云开发平台上部署运行起来;

  • 日常、预发、正式环境的数据库使用配置;

    1.1. 业务功能介绍

    该方案TaskManager 是一款代办事项管理软件;能够协助用户完成待办事务的管理与进度跟踪,比如工作计划、生日提醒、旅行安排等,以便更好的规划时间和安排生活。[

    1.2. 应用&架构说明

    说明

    该产品共有2个应用,分别是:WEB服务、数据访问微服务;应用间通过 “MSE微服务引擎” 提供的 nacos 引擎实现服务的注册与发现;数据库模型有任务种类(categories)和任务列表(tasks)

1.2.1. WEB服务

  • 为用户提供Web操作页面,包含浏览器端运行的UI逻辑,以及与之相关的控制层逻辑;

  • 使用微服务技术和服务端进行通信:“任务服务”使用 Dubbo 客户端进行调用;“任务分类”服务,使用 Feign 实现远程调用;

    1.2.2. 数据访问微服务

    提供任务管理的各领域服务能力;

  • 持久化层:可以使用您在VPC已经开通的数据库,如果没有,默认使用内嵌的h2 内存数据库实现数据存储能力(每次重启后数据会被重置);

  • 服务层:对外暴露 dubbo 和 HTTP 两种协议接口,其中“任务”相关的服务使用 Dubbo 协议暴露,“任务分类”相关服务以 http 协议暴露;

    2. 部署&访问流程

    2.1 准备工作-需要开通的基础设施服务

  • API 网关(APIGateway):通过API网关向外透出http服务;

  • 容器镜像服务(CR):系统编译构建的镜像存储在镜像仓库中;

  • 负载均衡(SLB):提供私有网络的SLB服务,费用较低;

  • 专有网络(VPC) :整个系统的网络环境;

  • 弹性容器实例(ECI) :弹性容器服务,部署镜像的服务器;

  • 微服务引擎(MSE):微服务注册和发现;

  • 日志服务(SLS):记录系统操作的日志,可以协助排查问题;另外

  • 需要创建一个微服务引擎实例 ,为了节省费用,建议开通按量付费模式的MSE实例,不使用的时候可以及时释放掉。如下图:付费模式:按量付费;地域和可用区:选择您习惯使用的区域,本例选择的是:华东2(上海)引擎类型:Nacos引擎版本:随意,本例选择的是:1.1.3引擎规格:选择最低配置:1核2G集群节点数:设置1台专有网络:选择一个已创建的VPC,如果没有,可以在这里创建一个:VPC创建 , 本例是:“vpc数据库”。交换机:选择一个已创建的交换机,如果没有,可以在这里创建一个:交换机创建 , 本例是: “vswitch数据库”。公网带宽:因为是内网访问,设置0Mbps

  • 注意:VPC和交换机创建的区域,需要和您上面选择的区域保持一致,本例是:华东2(上海)image.png

  • 创建完MSE实例后,mse基本信息中会有内网地址选择,本例是:“mse-9e0c7c63-nacos-ans.mse.aliyuncs.com”

  • 如果不使用默认H2数据库,则需要自己开通一个RDS数据库(建议用默认H2数据库)。新开通或者已开通的数据库所在的VPC&交换机需要和MSE所在VPC&交换机保持一致。

    2.2 应用创建**

  • 登录云开发平台,点击「免费云开发」,点击「应用管理」,点击「新建应用」,选择「Java」,选择「通过模版创建」,选择「官方模板」,选择「任务管理器-微服务端(微服务架构)」,点击下一步,填写完信息之后,点击下一步,选择「计算服务」,开通项目所依赖的云服务,点击完成image.png

  • 应用创建完成后,点击「在线开发部署」,等待代码仓库完成初始化,自动进入 CloudIDE页面

  • 然后下一步设置应用基本信息,填写:应用名称、所属区域(这里应该填写VPC、交换机、MSE 所在的同一区域)、应用介绍。

  • 应用创建完后,需要完成“环境管理” 和 “应用配置” 的相关配置项操作:

  • 环境管理->高级设置中,需要选择 VPC(vpc数据库)和交换机(vswitch数据库),其它默认,如下图:image.png

  • 应用配置,需要填写刚才创建的MSE内网地址,本例是:“mse-9e0c7c63-nacos-ans.mse.aliyuncs.com”,user_namespace可以为空,系统默认会设置一个ID值。image.png

  • 这些准备好后,就可以进入到应用的实现和部署工作了,点击“开发部署” 将打开CloudIDE系统集成开发环境中,对相关逻辑进行开发实现(当然本例无需修改代码就能部署跑通);

  • 直接打开CloudIDE部署插件,进行应用部署:image.png

  • 部署成功后,会有一个系统自动生成的临时域名,有半个小时有效期,如果使用默认H2数据库可以访问到H2数据库的控制台,在浏览器打开域名,本例是:http://test1yi7f8mnrp8r779arh1.workbenchapi.com

  • H2控制台:

创建过程和 “任务管理器-Service服务端”创建过程一样。最后输出的是系统自动生成的一个临时域名,有半个小时有效期。3、配置补充说明

实际生产系统,一般日常开发环境的数据库和线上环境的数据库是不一样的,数据库配置可以定义成变量,比如application.properties中这样定义数据源:

  • spring.datasource.driver-class-name = ${ds_drivername}

  • spring.datasource.url= ${ds_url}

  • spring.datasource.username= ${ds_username}

  • spring.datasource.password= ${ds_password}

在应用管理->应用配置中,在日常环境、预发环境、线上环境配置相应的数据源信息,如下图:image.png

3. 相关云产品