今天整理一下内容,将推出一个开源的开发基础平台,项目的背景是依托全品类的内容,整体架构设计为soa的。 1,首先介绍一下项目的内容,根据现有的互联网产品的特点,规划产品的内容有: - 用户中心:支撑所有子系统及后来规划服务的用户统一处理中心,分布式开发,分布式部署的特点,并且支撑大数据量的存储。采用分库分表的设计,具体的实现在后面的详细环节进行讲解。
- 动态内容:提供博客的内容方式,实现类似微信朋友圈的效果。内容的发布设计采用nosql来存储,本身支持分布式大数据量的存储。
- 商品中心:也可理解为商城,根据产品的发展不同阶段,可以对商品中心继续拆分,后端采用微服务的设计进行详细的模块拆分。对事物要求较高的数据采用关系型数据库mysql,非事物性的数据采用nosql来存储。在考察Tidb的数据库正式版,后期对接Tidb分布式数据库。
- 支付中心:可以理解为支付产品,类似支付宝微信支付类的产品,事物要去很高的数据依旧采用mysql来实现,后端会主从复制及读写分离。对数据量大的表进行分库分表设计,可以考虑后期的发展,前期采用开源的数据库中间件,后期如果发展很好一定会自开发数据库中间件。
- 聊天消息:主要为移动产品设计,类IM的产品,前期采用开源或者第三方的IM产品,开源的话暂时使用openfire来定制开发实现,对数据的存储计划采用Cassandra数据库来存储。
- 广告中心:提供对整个产品线的广告设计及内容管理,采用配置化管理的设计功能,实现内容接口的实现,使用关系型数据库来存储。
- 设置中心:提供所有平台和所有子系统中配置化的管理和配置参数的设置。
- 搜索引擎:独立的搜索引擎,采用elasticsearch实现搜索引擎中心的功能,配合产品的内容进行整合。
以上是暂定的产品,可以根据需要单独使用其中的一个产品。所有后台的rpc前期使用dubbox,根据发展和技术人才的发展,会考虑使用zeroc或者其他rpc组件。
2,微服务的设计,微服务的设计是基于上面大服务的内容进行扩展或者拆分,也可以根据系统的需要单独需要微服务来实现,例如会员中心,积分中心等。 以支付中心大服务为例,支付中心后面的微服务前期设计的有:充值提现中心,订单中心,红包中心,金融中心等,核心的是支付网关,对接的每个支付网关都将是独立的微服务,实现配置化管理。
3,整个项目的管理采用maven,模块开发,更容易进行包依赖和项目管理依赖。
|