CloudLab场景介绍
随着信息化的发展,企业每天会产生各式各样的结构化,半结构化的数据。如何高效低成本的存储和处理这些数据,如何充分发挥数据的价值是企业普遍面临的挑战。今天的CloudLab,会带大家手把手部署一个简易的消息系统,让大家体验一下,基于表格存储(TableStore)的Timeline模型可以快速开发一款企业内部的消息系统。同时本次云栖大会,表格存储(TableStore)会发布GlobalIndex和SearchIndex的功能,基于强大的检索赋能,表格存储(TableStore)可以在高效存储海量数据的同时提供便利的查询检索功能。下面就让我们一起动手体验下CloudLab的完整步骤吧。
CloudLab 环境准备
-
携带自己的开发笔记本,或者使用阿里云账号购买一台ECS,准备好java8环境。(备注:如果使用ECS的话打开8081端口)
- 创建ECS可以在控制台如下操作
-
Java8 可以在这里下载。
- 在表格存储控制台创建实例。(如果使用ecs建议使用同region的表格存储实例和VPC地址访问)
输入自己的实例名,这里主要需要region唯一,建议选一个个性化的实例名避免和已有的实例冲突。
我们的程序会自动创建表,这里可以不用手动建表,当然你也可以体验下在控制台自己创建数据表,并进行数据的读写操作。
- 查看阿里云账号的AK。
- 下载demo使用binary。 binary地址 http://danieldoc.oss-cn-hangzhou.aliyuncs.com/im-demo.jar
- 一键部署启动消息系统。
替换下面的实例信息为上面创建的实例和AK。
java -jar im-demo.jar \
--aliyun.tablestore.endpoint="xxxxx" \
--aliyun.tablestore.AccessKeyID="xxxxx" \
--aliyun.tablestore.AccessKeySecret="xxxxx" \
--aliyun.tablestore.instanceName="xxxxx"
- 通过网页。
http://localhost:8081 或者 http://ecs公网地址:8081 访问我们的IM聊天页面。通过网页进行简单的收发消息后,我们可以回到表格存储的官网控制台来做一些数据的查询操作。 - 进入实例所在region的控制台,点击进入实例详情
- 进入实例中表的数据管理页面可以进行数据查询,根据Lab中内容的介绍我们的demo中会主要有两张数据表一张是im_demo_timeline_SyncTable,这张是做消息分发同步用,另一张是im_demo_timeline_StoreTable,这张是一张全量消息表。我们可以做一个数据查询看看Timeline模型下数据会如何组织,点击数据管理。
im_demo_timeline_StoreTable,我们可以看下主键有两列,第一列是timelineid,在这里就是一个人的发件箱,即他的所有发出去的消息。第二列是一个自增列,我们的客户端可以通过这个自增的id做到消息的不丢顺序拉取。因为新来的消息在TableStore服务端对应生成更大的id号。消息内容我们的模型是自由的用户可以根据需要加密存储在我们这里或者序列化存储或者直接存储消息的原文字符串。这里为了演示方便,我们使用了明文string存放。
im_demo_timeline_SyncTable 也一样是timeline模型的表,只是这张表是消息写扩散后的表,每个timeline代表了一个用户的消息收件箱,同样使用自增列,客户端可以做到不丢顺序拉取新消息。
- 除了上面基础的数据查询功能,我们演示一个本次云栖大会我们新发布的SearchIndex功能,也就是通过索引的构建灵活的查询数据。具体新功能的介绍可以参考这里。
除了解决了灵活属性的检索,消息内容的全文检索以外,索引也可以帮助我们做一些快速的统计,例如消息数目的统计:
以上这些功能已经在这次云栖正式发布,大家可以申请邀测。申请邀测后你就可以在自己的控制台体验完整的上面的功能啦。
如果你没有及时走通整个流程,可以使用下面的地址直接体验:
http://101.132.45.75:8081/
后记
如果你有兴趣可以在这里下载demo的源码 进一步了解如何基于表格存储开发消息系统。
当然一切表格存储的问题欢迎扫码加群,我们会有研发进行专家服务。