前提的基于java的开发,然后再java的基础上进行扩展和优化。根据开发的技术要求,从前到后的技术要求整体是前后端分离,前端采用nodejs或者angularjs框架来实现,并实现简单的业务及mvc。后端以提供接口为主来实现。这里主要讲解的后端架构及设计。
1,整体开发技术要求,以稳定的开源技术为主,扩展或者重写部分内容。
开发框架:spring springmvc mybatis为主的开发框架
技术要求:实现多线程,高并发的要求,java通信机制
性能扩展:ehcache本地容器缓存,redis集群缓存,mysql分库分表及读写分离,es搜索引擎,mq集成
远程调用:dubbox,zeroc
api设计:采用restfull思想,并且模块明确的api设计,后期拆分更合理,扩展更容易
高可用:服务端采用集群部署,nginx+keepalive进行双活设置。服务都是最少2个的部署方式。数据存储mysql以主从为主,兼顾读写分离(atlas)。
微服务:spring-boot为主来快速开发,并整合相关的技术。
版本管理:git,使用oschina的码云,会开源,后期会给出项目链接地址,会包括多个分支,纯净版的分支,拿过去实现自己的业务,基础版分支,实现核心基础插件,并且都是模块化管理,可以单独依赖某个或某些模块,快速的实现分布式开发。最终版的,实现相应业务逻辑的产品。
2,开发要求,需要熟悉java的核心概念及线程的相关内容,熟悉spring4之后的功能及设计,熟悉spring-boot的相关开发。可以重写数据库操作层orm的相关内容,涉及到数据的操作最后会成为瓶颈,要么重写功能,要么写中间件,要么异步化,借助消息机制,很多可能,根据自己的需要来定制不同的开发需要。