全部产品

SpringCloud 任务管理示例

更新时间:2020-07-24 18:53:55

1. 概要

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

  • 微服务注册与服务发现的集成使用;
  • 把一个微服务架构的系统在云开发平台上部署运行起来;
  • 日常、预发、正式环境的数据库使用配置;

1.1. 业务功能介绍

该方案TaskManager 是一款代办事项管理软件;

能够协助用户完成待办事务的管理与进度跟踪,比如工作计划、生日提醒、旅行安排等,以便更好的规划时间和安排生活。

image.png

1.2. 应用&架构说明

该产品共有2个应用,分别是:WEB服务、数据访问微服务;

应用间通过 “MSE微服务引擎” 提供的 nacos 引擎实现服务的注册与发现;

数据库模型有任务种类(categories)和任务列表(tasks)

image.png

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):记录系统操作的日志,可以协助排查问题;

    另外

    1、需要创建一个微服务引擎实例 ,为了节省费用,建议开通按量付费模式的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”

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

2.2 应用创建

1、“**任务管理器-Service服务端”**创建

这个解决方案路径在:技术场景->Microervice,如下图:

image.png

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

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

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

image.png

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

image.png

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

直接打开CloudIDE部署插件,进行应用部署:

image.png

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

image.png

H2控制台:

image.png

另外在微服务引擎(MSE)控制台,也可以看到一条服务注册信息:

image.png

2、任务管理器-Web客户端 创建

创建过程和 “任务管理器-Service服务端”创建过程一样。

最后输出的是系统自动生成的一个临时域名,有半个小时有效期。

image.png

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. 相关云产品