示例Demo

本章节为您展示一个使用Spring Cloud Glodon完成支持多云适配的示例工程。工程中用到了云中立对象存储object-storage-spring-boot-starter和消息队列message-queue-spring-boot-starter

本示例工程的工作过程为(以阿里云环境为例):

1.提供一个简单的注册页面,项目配置完毕运行后,访问该注册页面,填入用户名、密码、邮箱以及上传头像,然后注册

2.后台将用户的头像上传到阿里云对象存储的bucket;将用户信息写入到阿里云rds;将用户信息发送到阿里云rocketmq队列中;然后该工程中的rocketmq消费者会读取到该用户信息,并且解析出用户邮箱,最后给该邮箱发送“注册成功”的邮件。

3.同理,如果您是华为云的配置,那么对象存储和rds服务都应该是华为云的;如果是本地服务,那么对象存储使用的是minio,数据库用的是本地mysql

操作步骤

1.maven的settings.xml配置文件添加仓库地址

<!-- scg maven仓库 -->
<repository>
    <id>scg-private</id>
    <name>maven-scg-private</name>
    <url>http://packages.glodon.com/artifactory/maven-scg-private/</url>
</repository>

2.下载示例工程taikeystone-demo

打开后的工程示例如下图所示

3.配置工程(以阿里云为例)

由于该示例项目内含3套不同环境的演示,所以请针对您自己的需求进行配置。可在阿里云、华为云和本地进行配置。本示例以阿里云配置为例进行说明。

本示例工程中阿里云的配置文件为application-ali.yaml。(华为云配置文件:application-huawei.yaml;本地配置文件:applicaton-dev.yaml

请在启动实例时指定配置文件 java -Dspring.profiles.active=ali -jar taikeystone-1.0.0-SNAPSHOT.jar

如果您使用idea,请在VM options中指定您使用的配置文件 -Dspring.profiles.active=ali

3.1在阿里云rds服务上创建数据库和表

本示例工程提供了运行所需要的建表语句,直接在rds上运行示例工程目录下的user.sql文件即可。

或者在您的rds上直接执行如下sql

SET FOREIGN_KEY_CHECKS=0;

CREATE DATABASE `test` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(64) NOT NULL,
  `passwd` varchar(64) NOT NULL,
  `email` varchar(64) NOT NULL,
  `createtime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updatetime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

3.2修改邮件配置

由于工程中用到了spring提供的邮件服务,所以此处需要改为您自己的邮箱配置

3.3rds服务配置

将示例中的数据源配置修改为您的数据源

3.4阿里云 rocketmq 配置

修改阿里云rocketmq的配置项为您自己在阿里云的配置。

3.5阿里云对象存储配置

3.6在阿里云创建bucket

如果您阿里云的对象存储服务中还没有您配置的上述bucket,请登录阿里云对象存储控制台手动创建该bucket并授予权限。

4.部署

修改完上述配置后,将该项目打包成jar包,然后部署到您的阿里云环境中。

step1 打包:mvn clean package -DskipTests=true

step2 启动:java -jar -Dspring.profiles.active=ali taikeystone-1.0.0-SNAPSHOT.jar

也可以部署在容器中。总之,可以部署该应用。

5.测试

部署完毕后,浏览器访问服务http://your.aliyun.address:8080/register,进入注册页面,如下所示。

依次填入用户名、密码、确认密码、邮箱以及上传头像后,点击“注册”按钮。此时页面会显示“注册成功! 欢迎您成为广联达的一员 的提示。

此时,头像的图片已经上传到了您在yaml配置文件中object-storage下对应的bucket中,您可登录阿里云对象存储控制台查看。

注册成功后,您注册的邮箱会收到一封注册成功的邮件提醒,表明该用户信息已经在阿里云rocketmq中进行了消息创建与消费。您也可以登录阿里云rocketmq控制台进行查看。

最后,注册成功后,您也可以从首页进行登录。

6.切换云厂商

您也可以切换华为云进行测试,华为云使用application-huawei.yaml进行配置,在该配置文件配置您的华为云,然后使用:

step1 打包:mvn clean package -DskipTests=true

step2 启动:java -jar -Dspring.profiles.active=huawei taikeystone-1.0.0-SNAPSHOT.jar

本地测试使用的是application-dev.yaml,在该配置文件配置您本地的配置,然后使用:

step1 打包:mvn clean package -DskipTests=true

step2 启动:java -jar -Dspring.profiles.active=dev taikeystone-1.0.0-SNAPSHOT.jar

::: tip 注意

示例代码中包含的华为云、阿里云账号资源仅限于本Dome的测试验证,随时可能回收,最终解释权归云平台。

:::