摘要:
NewLife.XCode是一个有20年历史的开源数据中间件,支持net6/net5/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 阅读全文
摘要:
NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 开 阅读全文
摘要:
NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 阅读全文
摘要:
对网络库NewLife.Net进行单机百万级长连接测试,并持续收发数据,检测网络库稳定性。
结论,8月1日晚达到200万,8月2日下午达到404万。 阅读全文
摘要:
所有查询的标准结构都是 Select xxx From table Where yyy Order By zzz Limit 0, 20
分组查询也不例外,仅仅是在where子句处做文章。 阅读全文
摘要:
100亿数据其实并不多,一个比较常见的数据分表分库模型:
MySql数据库8主8从,每服务器8个库,每个库16张表,共1024张表(从库也有1024张表) ,每张表1000万到5000万数据,整好100亿到500亿数据! 阅读全文
摘要:
XCode是充血模型,在实体类上附带有大量便捷操作,其中就包括各种目标数据类型的导入导出! 阅读全文
摘要:
现代管理信息系统绝大部分采用BS架构,无一例外需要用户角色权限的支持!
结合团队诸多兄弟姐妹的经验,设计了一个大小适中的用户权限系统Membership,目标是满足80%的使用场景,并具备一定的扩展性。 阅读全文
摘要:
如果说前面16篇讲的都是XCode的ORM功能,从这一篇开始,将超越ORM之外,从另一个角度讲解一个数据中间件!
实体接口IEntity,抽象实体对象的添删改存操作,支持访问脏数据和扩展属性!
实体工厂接口IEntityOperate,抽象提供实体类的元数据、查询、事务、设置! 阅读全文
摘要:
使用关系型数据库来做大数据,第一步必然是索引!
单表超过1000万数据,任何查询都必须走索引!否则数据库一定跟你说ByeBye! 阅读全文
摘要:
前文提到了以sql为key的数据层缓存,以及整表缓存的实体列表缓存,各自有其优缺点,适用于不同场合。
当单表数据较大(10万+)时,两者就无能为力了。天空一道巨响,对象字典缓存隆重登场!
对象字典缓存:以主键为key,缓存实体对象,以满足应用层的高频单点查询需求! 阅读全文
摘要:
在实际项目开发中,经常遇到有一些表数据很少(1000行以内),不会频繁修改(平均每行几个小时才会修改一次),例如配置表、分类表等。
这样的表,往往可以接受三五秒甚至更长的延迟,正是最适合使用缓存的地方。
实体缓存:一次性加载全表数据进入内存,供上层多维度查询! 阅读全文
摘要:
缓存是一把尖刀,合理使用可大大提升吞吐率! 阅读全文
摘要:
码农法则:数据库压力小于100qps时不要考虑指明select列来优化,大多数系统活不到需要优化的明天! 阅读全文
摘要:
XCode不支持多表关联查询,单表查询利于优化以及分表分库,一切Join都可以借助扩展属性实现,配合缓存使用可以达到更好的效果! 阅读全文
摘要:
事务,通俗来讲,同时干几件事,要么一起成功,要么一起失败! 阅读全文
摘要:
向 Meta.Factory.AdditionalFields 添加需要采用增量累加的字段,执行update时才生成 x=x+123 样子的语句 阅读全文
摘要:
在XCode中,每次执行实体类更新entity.Update时,都希望只更新修改过的字段,而不是update所有字段。
一方面,减少数据库压力以及通信流量;
另一方面,多线程同时更新同一行数据的不同字段,在未加锁的情况下,避免脏写。 阅读全文
摘要:
前文《XCode添删改》给大家展示了添删改数据的基本概况,本文将详解添删改高级功能。 阅读全文
摘要:
所谓数据初始化,就是在所有数据库操作之前,执行一些用户自定义操作!
一般应用系统部署都需要安装脚本,建立数据表以及导入基础数据,才能跑起来。
在XCode中,“建立数据表”这一步由反向工程包揽,再辅以一个“导入基础数据”的功能即可。
此外,系统在初步配置的过程中,经常可能出现需要清空某些表,然后重置到“出厂数据”的状态,例如魔方的菜单初始化。 阅读全文
摘要:
反向工程是XCode的大杀器,区别于其它ORM的最强功能!
通俗理解:基于XCode开发的应用,无需数据库安装脚本,连接字符串指向哪一台哪一种数据库,系统就自动在上面建库建表!
正式定义:基于实体类的表结构信息,在连接字符串指定的目标数据库上自动执行建库建表、添删改字段、创建索引等操作,支持各种数据库!
应用系统首次启动完成的时候,也是自动建表建库并初始化完成的时候。 阅读全文
摘要:
新生命团队的数据中间件NewLife.XCode,有其独特的配置方式,支持集成配置中心,代表作有百亿级大数据实时计算项目! 阅读全文
摘要:
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode。
整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中。 阅读全文
摘要:
数据模型文件是XCode数据库开发的中心,曾经流程和支持的DB First和Entity First,经过10多年优胜劣汰,只剩下Model First。 阅读全文
摘要:
NewLife.XCode是一个有10多年历史的数据中间件,以下简称XCode。
整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中。 阅读全文
摘要:
X组件缓存架构以ICache接口为核心,包括MemoryCache、Redis和DbCache实现,支持FX和netstandard2.0! 阅读全文
摘要:
经过十多年实战经验积累以及多方共同讨论,新生命团队(https://github.com/newlifex)制订了一种简单而又具有较好扩展性的RPC(Remote Procedure Call)协议。全称:简易远程消息交换协议,简称:SRMP(Simple Remote Messaging Protocol)
SRMP主要定位于以下场景:
内网高速通信,大吞吐量(>100万tps)、低延迟(<1ms)
外网远程通信,稳定可靠,海量连接(>10万)
物联网硬件设备,容易简单实现协议 阅读全文
摘要:
相当一部分大数据分析处理的原始数据来自关系型数据库,处理结果也存放在关系型数据库中。原因在于超过99%的软件系统采用传统的关系型数据库,大家对它们很熟悉,用起来得心应手。
在我们正式的大数据团队,数仓(数据仓库Hive+HBase)的数据收集同样来自Oracle或MySql,处理后的统计结果和明细,尽管保存在Hive中,但也会定时推送到Oracle/MySql,供前台系统读取展示,生成各种报表。
在这种场景下,数据库的读写性能就显得尤为重要! 阅读全文
摘要:
在ZTO大数据实时计算广泛应用,200多个Redis实例稳定工作一年多,每天处理近1亿包裹数据,日均调用量80亿次;
低延迟,Get/Set操作平均耗时200~600us(含往返网络通信);
大吞吐,自带连接池,最大支持1000并发;
高性能,支持二进制序列化; 阅读全文
摘要:
2017年6月,开始大数据分析的职业生涯,作为架构师,建立起一套基于.Net的小数据实时处理计算平台,这里记录学习过程中的点点滴滴!
数据分析的核心,可以理解为:Select xxx From table Where yyy Group By zzz 阅读全文
摘要:
魔方 是一个基于 ASP.NET MVC 的 用户权限管理平台,可作为各种信息管理系统的基础框架。 演示:http://cube.newlifex.com 源码 源码: http://git.newlifex.com/NewLife/NewLife.Cube海外: https://github.co 阅读全文
摘要:
本文目标是指引从未使用过Linux的.Neter,如何在CentOS7上安装.Net Core环境,以及部署.Net Core应用。 阅读全文
摘要:
为了便于大家学习测试netcore,我们计划提供1~3台公网Linux服务器(CentOS/Ubuntu),1vCPU+1G内存+100Mbps,为期1年,每周重置系统修改一次密码 阅读全文
摘要:
ThreadPool空有1000个最大线程数,实际上超过CPU个数的线程后,线程分配会放缓。在线程池执行的同步方法中等待异步方法完成,很容易产生死锁。 阅读全文
摘要:
微服务和消息队列的基础都是RPC框架,比较有名的有WCF、gRPC、Dubbo等,我们的NewLife.ApiServer建立在网络库NewLife.Net之上,支持.Net Core,追求轻量级和高性能。 阅读全文
摘要:
Tcp网络编程,必须要解决的一个问题就是粘包,尽管解决办法有很多,这里讲一个比较简单的方法。 阅读全文
摘要:
NewLife-Net压力测试,峰值4.2Gbps,50万pps,消息大小24字节,消息处理速度2266万tps!共集合20台高配ECS参与测试,主服务器带宽6Gbps、100万pps,16核心64G内存。 阅读全文
摘要:
网络程序应该注册成为系统服务,以保证其自启动以及稳定可靠运行!
这一场,讲讲怎么建立一个生产级别的网络服务。 阅读全文
摘要:
一个网络库,应该足够简单,让用户只需要关心只需要关心业务逻辑! 阅读全文