美文网首页Spring Boot分布式系统实践
Spring Boot分布式系统实践【1】-架构及选型

Spring Boot分布式系统实践【1】-架构及选型

作者: 逸如风飞 | 来源:发表于2019-02-28 14:38 被阅读51次

    前言

    【第一次尝试去写一个系列,肯定会有想不到的地方,欢迎大家留言指正】

    本系列将介绍如果从零构建一套分布式系统。同时也是对自己过去工作的一个梳理过程。

    本文先整理出构建系统的主要技术选型,以及技术框架。其实在形成如下框架前,我参考了许多资料和结构,也结合中小型公司的时间以及人力等因素综合。

    选型

    分布式调用框架

    可选的有 dubbox, SpringCloud

    dubboX:当当基于dubbo搞的,还在维护可以一用,推荐。

    SpringCloud:整合了大量组件,相关文档比较复杂,需要针对性的进行阅读,学习成本还是需要一些。

    最后选择:dubbox + zk +Spring Boot

    云平台

    可选方案:阿里云、腾讯云、百度云、华为云等等

    image

    大概就是比较不同平台相同配置价格,以及同一平台下不同区域间的价格等等,最终选择阿里云。

    Redis

    用来做缓存自建成本有点高,选择使用阿里的redis

    负载均衡

    可选方案: SLB, Nginx.

    SLB要收钱,但是比较便宜,有保证,不会挂。 但是可配置的很少,不能根据域名做ip映射等

    最后为了减少维护成本,直接使用SLB【测试环境还是要搭建nginx】

    CDN

    用来缓存静态文件等,七牛、阿里可选

    最终选择七牛,服务好,反应及时【价格也会低一些】

    身份认证

    可选方案:session+redis、jwt

    从扩展性来说确实jwt比较适合,但是有一个小麻烦,就是处理token的失效问题。【其实主要问题是使用token增加了代码复杂度】

    最终选择session+redis

    扩展:有人会说浏览器可以很好支持cookie但是移动端很难支持,其实移动端支持也不难。iOS端可以从HTTPCookieStorage读取cookie,请求时设置cookie。Android端使用Cookiejar。

    权限控制

    shiro:一直都在用shiro,也比较简单

    数据库

    oracle:使用阿里云的话自建oracle还是比较麻烦的

    mysql:可以自建也可以用阿里的RDS

    最终选择阿里云数据库RDS

    持久层框架

    常用Mybatis,那就继续用吧

    部署架构图

    image

    附一张阿里的部署架构图供大家参考

    image

    完整流程图地址:https://www.processon.com/view/5b4d9b26e4b09a67416e1611

    相关文章

      网友评论

        本文标题:Spring Boot分布式系统实践【1】-架构及选型

        本文链接:https://www.haomeiwen.com/subject/mhwhuqtx.html