架构初探(一)

记录游玩路线的软件系统的架构

构想

用户通过手机app,可实时查看后台数据库中的游玩路线,游玩路线由路线及路线上的景点或商家构成。
用户可以在app中开启轨迹记录,然后定位当前所处的景点或商家,然后在app中组合成游玩路线上传到后台。
浏览器登录web端,可以对不同游玩路线进行对比分析,提前规划。

目标

我是A,我从天安门出发,开始记录轨迹,然后我到了天安门东,拍照、摄影,然后我去了天安门西,继续拍照、摄影,然后。。。
最后我回到家里,觉得这一趟玩下来特别好,可以将线路推荐给别人。于是我手动合成线路,然后发布到后台。
故宫
我是B,想去天安门玩,可是之前没去过,于是在app上浏览路线列表并选中了A的游玩路线,点开1、2、3,可以看到A上传的图片信息及视频,以及A对美景的赞叹和对商家的推荐语。
于是我跟随A的路线走了一趟,不过我感觉B错过了一些美景,比如外金水桥,于是我在A的基础上,提交了我自己的线路。
这里写图片描述
我是C,也是一个想去天安门但是没去过的人,在手机上看到了A和B的游玩路线以及其他的上百个,于是苦恼该选择哪一个,然后我打开电脑在浏览器登录进网站,然后采用网页中的分析工具以及设置喜好,最终找到了最符合自己的路线,并保存起来,第二天可以直接在手机中调出并使用。

系统架构

这里写图片描述
前端:包括android和web端,android端使用高得地图为基础,加载GeoServer发布的WMS、WFS服务和存储于spatialite中的空间数据,web端使用openlayers框架。
后台:分为两大块,一块是GeoServer,另一块是springcloud的微服务系统。
数据库:postgresql主要用于存储和计算空间数据,mysql主要存储业务数据,redis作缓存以及存储令牌。

技术清单

nginx:需要掌握反向代理和负载均衡配置,静态资源服务器配置
html:需要掌握openlayers框架,包括加载高得地图作为底图及加载GeoServer发布的图层,通过openlayers的点击和画多边形,调用WFS服务进行查询。
SpringCloud:注册中心eureka-server,服务eureka-client,路由器zuul,服务之间调用feign,配置mybatis操作数据库,redis配置
GeoServer:连接postgresql或者直接加载shapefile文件,自定义style,发布图层
postgresql:空间数据的存储以及相关函数操作,如坐标系的转换、距离计算、空间图形之间的各种运算,数据库的备份及还原
mysql:数据库的备份及还原
redis:增删改查,数据过期时间修改

总结

这是我自己的一点小想法,所有的努力只限于这篇博客,还一行代码都没有写。不过以上的架构已经在实际工作中运用过,所以完成只是时间问题。目前最大的问题是没有时间,所以只是随便写写。。。

猜你喜欢

转载自blog.csdn.net/m0_37659871/article/details/80887217