从传统开发服务走向持续集成

前言

从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

全局字段的意思即全局数据库引用此数据,便于后期其它应用接入做扩展处理。

服务模块划分:

为了更接近实际设计场景,这里做了大概规划,

基础服务,