前言
从15年毕业离校,至17年初,一直在传统开发领域做开发,一个应用从前端后台还有app等集合成一块,然后发布到运维,整个一条线。17年元旦开始,开始负责深圳千万级别的项目的技术构架,从传统领域走向微服务开发,从整个业务流程的转换到整个开发流程的确认,从开发的流水线到自动集成发布,整个过程完全走产品化路线,集成化路线。
为了更好的做好讲解,本文将对校园问答平台的开发做一次技术性解析,从技术选型到发布的整个过程。
技术选型:
开发工具:JDK8、STS(Eclipse),Maven+Nexus;
主要技术栈:
服务注册与发现:Dubbo、Zookeeper;
缓存 : Redis
Http容器:Jetty
版本控制:SVN(淘宝svn)
异步消息:Kafka
前端:bootstrap3
持续集成平台:Jenkins
选型的技术应该常见,这是在某一角度上来说,并不是越新的技术越好,或者听起来越高大上的技术即是完美,具体按业务场景。
数据库设计
数据库使用mysql,单表设计,数据库脱离第三范式,将业务逻辑移至应用层,多冗余设计。
基本字段:
e_id 全局主键
e_env 全局环境
c_id 容器的id
t_id 商户的id
app_id 应用的id
全局字段的意思即全局数据库引用此数据,便于后期其它应用接入做扩展处理。
服务模块划分:
为了更接近实际设计场景,这里做了大概规划,
基础服务,