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