Albianj2

分布式业务层数据层框架
授权协议 BSD
开发语言 Java
所属分类 服务器软件、 分布式应用/网格
软件类型 开源软件
地区 国产
投 递 者 羊舌和安
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Albianj是一套分布式统一框架。主要面向海量数据处理、海量数据 访问、并解决互联网开发中经常会碰到的数据海量增长问题,也一并解决 互联网开发团队 中,因开发人员的水平参差不齐而导致的代码质量不可控问题。它主要有简单小巧的IoC, ORM,数据路由,缓存集成,分布式唯一id等等功能。

albianj诞生于2011年,它的创建并不是为了解决某个公司的问题,而纯粹是为了度过我的 业余时间。当时的想法其实很简单,就是想把我这几年来对于互联网的理解用技术的形式 表现出来。其实2011年写完v1.0后,除了我把它开源了以外,我就再也没有去管过它。直 到2015年的4月份,当时我已经在阅文集团任职,我们需要把阅文集团的所有内容都统一起 来,形成一个内容中心。当确定下来要做这个内容中心的时候,我们面对的是亿级别的数 据和千万级别的访问量。我们想到了需要一个统一的框架来完成我们的工作。这个框架必 须满足几个条件:

1. 必须容易使用,必须容易维护,必须快速上手  
2. 必须可以方便的处理现有的海量的数据  
3. 必须能方便的进行业务的扩容  
4. 必须能抗住当前的访问量,并且能抗住未来5年左右的业务扩展说带来的访问量增长

从这些条件出发,我从记忆中翻出来了albianj(所以对于albianj的出身有疑问的同学就不 要猜疑了。albianj并不出身于盛大创新院,也不是从腾讯带出来的。而是完全自主开发的 )。当时albianj的主体已近全部完成,并不需要更多的修改,就是在易用性和可控制性上 还表现的不够好,我们又对albianj进行了扩展。形成了我们现在开源出来的albianj2.

后来,随着技术的发展,我们对于现有的腾讯文学、起点中文网等阅文集团旗下的站点也 进行了重构。在重构过程中,我们也都使用albianj作为底层框架来使用。

所以呢,从我们的使用的真实情况出发,albianj2是能抗住海量数据处理和大并发、大访 问量的。既然已近在我们的系统中得到了验证,我们现在把我们修改过的albianj2开源出 来,以方便大家使用。

附albianj2的功能列表

1. 一个简单的Service服务,比spring轻量很多很多  
2. 一个简单的ORM框架  
3. 数据路由服务  
4. 分布式事务服务(支持强、弱两种模型)  
5. 简单的缓存服务  
6. 统一的Id服务  
7. 日志服务(这部分有待扩展)  
8. 密码安全服务  
9. 简单的restful服务  
10. 一个轻量级的配置服务

Albianj2的适用范围:

albianj2主要的适用范围是互联网企业。并不是那么的适合传统行业。这个还得从两个行 业的特殊性说起。对于传统行业来说,他们更加注重的是业务的复杂性,所以这个特有的 业务会给数据库设计带来很大的烦恼和限制。传统行业基本上用户量固定,数据量固定, 增长量也是固定的,所以在一个系统搭建完毕之后,几乎很少会去动数据库设计,也不会 后期去对数据进行拆分。这些类似的种种都是因为传统行业特有的属性决定的。

而互联网就完全不一样了。互联网首先讲究的是快,快速的开发,快速的搭建。然后是讲 究架构重构简单。因为互联网企业经常会碰到数据爆发式增长,用户量井喷式涌入这些问 题。我们就会想法设法的保证系统的快速和稳定。对于数据库,也是会随着数据的增加需 要进行相应的拆库拆表。这些在传统行业不太碰到的问题在互联网行业看来就是家常便饭 的事情。而在业务开发上,互联网也比较特殊,互联网的表之间几乎很少有很复杂的关系 ,99%都是单表操作。所以互联网的模型最后就是演变成了单表+分库分表。而albianj就是 为了解决问题出现的。albianj不支持join,也不支持多表查询。因为这些对于一个互联网 系统来说,这些都会大大的损耗数据库的性能。数据库本来就是单点的存在,我们需要尽 可能快速的来访问数据库,所以在这些方面albianj做了很大的限制,这也导致了不是太符 合传统企业的业务。albianj2从开始设计的时候其实主要考虑的都是互联网的业务,albianj 几乎适合做互联网所有的业务,不管你是想阿里一样的电商还是想腾讯一样的社交。几乎 都可以选择使用albianj来作为基础框架。

 相关资料
  • 链接 Web API Controllers 动态WebApi层 集成OData 集成Swagger UI ASPNET Core 集成OData

  • 5.2 ABP表现层 - 动态WebApi层 5.2.1 建立动态WebApi控制器 这是一篇关于ASP.NET Web API的文档。如果你对ASP.NET感兴趣,请阅读ASP.NET Core文档。 Abp框架能够通过应用层自动生成web api: public interface ITaskAppService : IApplicationService {

  • 5.3 ABP分布式服务 - 集成OData 5.3.1 简介 开放数据协议(Open Data Protocol,缩写OData)是一种描述如何创建和访问Restful服务。你可以在Abp中使用OData,只需要通过Nuget来安装Abp.Web.Api.OData. 5.3.2 安装 1. 使用Nuget安装 首先应该使用Nuget安装Abp.Web.Api.OData到我们的WebApi项目

  • 5.1 ABP分布式服务 ASP.NET Web API Controllers 5.1.1 简介 ABP已经把 ASP.NET Web API Controllers 集成到了 Abp.Web.Api,你只要通过Nuget安装它。正如你一直那样做得,你可以创建常规的ASP.NET Web API Controllers, 依赖注入可以解析常规的ApiControllers。 为了能够享受使用AB

  • 5.4 ABP分布式服务 - 集成SwaggerUI 5.4.1 简介 从官网得知,开启Swagger,你可以获得一个交互式的文档,生成和发现客户端SDK。 5.4.2 ASP.NET Core 1. 安装 你可以很容易的集成Swagger到基于ASP.NET Core的 ABP项目。 2. 安装Nuget包 安装 Swashbuckle nuget包到你的Web项目。 3. 配置 在 Start

  • 5.5 ABP分布式服务 - ASPNET Core 集成OData 5.5.1 简介 开放数据协议(Open Data Protocol,缩写OData)是一种描述如何创建和访问Restful服务。你可以在Abp中使用OData,只需要通过Nuget来安装Abp.AspNetCore.OData. 5.5.2 安装 1. 使用Nuget安装 首先应该使用Nuget安装Abp.AspNetCore

  • 业务流模板一旦建立,在基础数据图层里就可以应用 操作指南: 1.新建图层,选择业务流类型,选择要引用的模板,然后自定义图层名称。 2.打开该图层,可以看出来,已经自动按照模板流程,建立了子图层,注意:只可以在第一个阶段(即第一个子图层)手动添加网点,然后填写信息,往下流转 权限: 新建图层:团队负责人、团队管理员、地图管理员 画点权限:在“协作/权限”里面,可以自由配置每个阶段、每个功能点权限,建

  • 本文向大家介绍分层数据模型,包括了分层数据模型的使用技巧和注意事项,需要的朋友参考一下 分层数据模型是最早的数据模型之一。该模型是基于文件的模型构建,就像树一样。在此树中,父节点可以与多个子节点关联,但是一个子节点只能有一个父节点。 对于目录和文件,可以说单个目录进一步包含多个文件或目录,然后这些目录包含更多文件,依此类推。 这可以表示为- 示例 使用关系数据库的层次模型的示例如下- <员工> E