概述git
在互联网应用中,因为系统要考虑高并发,高可用,大数据,扩展性等需求,因此有别于传统的企业级项目开发。github
互联网领域主要的技能大体能够归纳为4个部分:通讯框架,消息中介,分布存储,搜索引擎。数据库
因为互联网系统的特性,必须系统是分布式的。由于高并发的场景下,单机很难承担如此的负载。还有,大数据不可能存储在单一的机器上,须要一个集群。并发
分布式的系统中最重要的就是通讯框架,无论是服务/API仍是数据之间的交互,都须要和通讯打交道。虽然当前出现了Dubbo这样优秀的产品,可是我仍是但愿本身能从头开始开发一个支持分布式的轻量级框架,不少东西是借鉴了Dubbo的思路,可是实现方式上可能会有所不一样。框架
除了通讯框架,我还想提供一个统一的Repository访问层,相似于当前比较流行的DB proxy。可是不只限于此,这个统一的Repository访问层最好可以透明的完成不一样的关系型数据库或者NOSQL之间的调用。这部分没有彻底想好,仍然有待完善。分布式
还有一个就是消息中介。系统间的解耦,以及生产消费速度解耦。这都须要消息中介来支持。消息大致可分为两种。一种是强事务型的,好比下订单。这种消息适合用JMS标准的消息中间件来实现。另外一种是弱事务,可是量很是大的消息,如点击日志。这种消息适合用Kafka这样的分布式消息中介来处理。我也打算像Repository的访问层同样,提供一个统一的Mq访问层。模块化
我会把本身的心得持续更新这个博客系列中。高并发
系统目标单元测试
1. 尽可能使用开源框架搭建一个高可用,分布式,低耦合,透明化的系统。 测试
2. 代码结构清晰易懂,具备良好的设计和可读性,以及最大限度复用。
3. 争取作到技术代码和业务代码彻底分离。能用第三方开源组件作的,就不本身实现。争取充分挖掘第三方开源产品的可行性。
4. 模块化。彻底隔离和解耦各个模块。
5. 完成一些业务模块,用于检测和提炼框架。如RBAC,帐户和工做流模块。
项目地址
https://github.com/terrymanu/miracle-framework
感谢您用宝贵的时间阅读本博客系列。请多提意见,多指教。目前代码已经陆续放上去了,欢迎你们指点。
如下是会持续更新的系列博文: