摘要: 通过引入分布式幂等性框架,可以有效处理分布式系统中的重复操作问题,确保系统稳定运行并保持数据的一致性。 阅读全文
posted @ 2024-03-05 17:01 路过秋天 阅读(717) 评论(2) 推荐(5) 编辑
 
摘要: 在经过漫长的技术沉淀,终于又为 .Net 及 .Net Core 的微服务系列框架贡献当中的一个重要组件。Taurus.DistributedLock is a distributed lock for .net or .net core.【支持:Redis、MemCache、Database、Local、File 五类锁】 阅读全文
posted @ 2024-02-23 13:47 路过秋天 阅读(927) 评论(5) 推荐(6) 编辑
 
摘要: 在发布完:开源:Taurus.DTC 微服务分布式事务框架,之后想想,好像除了事务外,感觉里面多了一个任务发布订阅的基础功能,本想既然都有了基础发布订阅功能了,那要不要顺带加上延时发布功能呢?加上了会不会让事务组件不纯了? 经过一翻深思......于是就有了这个Taurus.DTS 任务组件,而且功能除了原有的即时任务发布订阅,和本来想加上的延时任务,后面又补上了基于Cron表达式的定时任务,和广播群发任务。 今天发布的 Taurus.DTS 组件,为 .Net 和 .Net Core 微服务系列又又贡献了一个新的组件。 阅读全文
posted @ 2024-01-18 14:26 路过秋天 阅读(983) 评论(3) 推荐(4) 编辑
 
摘要: 在经过1年多的深思,十几年的框架编写技术沉淀下,花了近一个月的时间,终于又为 .Net 及 .Net Core 的微服务系列框架贡献当中的一个重要组件。原本的设计是作为 Taurus.Mvc 微服务系列中的一个插件,单独内部集成使用,后来想了想,还是在设计中独立了出来,支持在任意 Mvc 框架中使用。 阅读全文
posted @ 2024-01-12 08:58 路过秋天 阅读(1130) 评论(1) 推荐(11) 编辑
 
摘要: .NET的框架造多了,今天就为IOS造一个了,本文介绍Sagit框架的起缘故事及简介... 阅读全文
posted @ 2017-12-13 14:47 路过秋天 阅读(9926) 评论(24) 推荐(30) 编辑
 
摘要: [更新于2022-06-13]关于可视化调试这一块内容,网上一搜,相关的信息全部是我自己以前发过的文章,悲催就一个字。看来没啥人研究这一块,好在苍天不负有心人,还是被我突围了,最后研发出了这么轻易就能获得的实用性工具: 阅读全文
posted @ 2016-11-03 17:11 路过秋天 阅读(25907) 评论(94) 推荐(442) 编辑
 
摘要: 为什么要创造Taurus.MVC:记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的:项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点着点着就挂了。一开始招了几个实习的大学生在那玩,搞不定了,终于忽悠的我了,哈哈。。。当时进去的第一感觉是重做,不过呵呵,老板的心思你不猜不行。 阅读全文
posted @ 2016-08-05 11:19 路过秋天 阅读(36703) 评论(86) 推荐(236) 编辑
 
摘要: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了。群里的网友:太平说:记得一年前你开源另一个项目的时候我就说过 这么多年 秋天有两点没变 一是还是单身 另外一个就是cyq.data还没开源 终于等到开源了!也许吧,只有把cyq.data最终开源了,才能解决单身问题,不然我在这上面花的时间太多,都没时间和妹子聊天了。 阅读全文
posted @ 2016-07-04 10:31 路过秋天 阅读(20561) 评论(81) 推荐(165) 编辑
 
摘要: 随着岁月的推进,不知不觉已在.NET这领域上战斗了十年了,青春还没来得急感受,就已经进入老年痴呆的节奏了。趁着还有点记忆,得赶紧把硬盘里那私藏的80G除外的东西,和大伙分享分享。人生,本就是一个传承的过程:开源,只是一种的方式。好吧,人生叹个三两句啰嗦完,得回正题了: 阅读全文
posted @ 2016-05-13 09:10 路过秋天 阅读(55752) 评论(142) 推荐(209) 编辑
  2024年5月21日
摘要: 这两天重新注册苹果开发者账号,发现注册时间变短了。 主要是DUNS邓白氏码,注册时间变短了,即申请即通过,没有了一两周的卡顿,整个流程时间感知就变短了。 在注册付款时,却遇到了一个问题,款付了,账号即未开通。 经邮箱与之联系,被工作人员告知如下: 由于我的手机(绑定的AppleID)之前存在过给其它 阅读全文
posted @ 2024-05-21 16:24 路过秋天 阅读(93) 评论(0) 推荐(0) 编辑
  2024年4月29日
摘要: 经过前面几个部分学习,相信学过的同学已经能够掌握 .NET Emit 这种中间语言,并能使得它来编写一些应用,以提高程序的性能。随着 IL 指令篇的结束,本系列也已经接近尾声,在这接近结束的最后,会提供几个可供直接使用的示例,以供大伙分析或使用在项目中。 阅读全文
posted @ 2024-04-29 14:48 路过秋天 阅读(715) 评论(1) 推荐(10) 编辑
  2024年4月25日
摘要: 新改进提供的Taurus Rpc 功能,可以简化微服务间的调用,同时可以不用再手动输出模块名称,或调用路径,包括负载均衡,这一切,由框架实现并提供了。新的Taurus Rpc 功能,将使得服务间的调用,更加轻松、简约、高效。 阅读全文
posted @ 2024-04-25 10:45 路过秋天 阅读(347) 评论(0) 推荐(3) 编辑
  2024年4月20日
摘要: 前言: 做为一名程序员,怎么能每天花那么多时间沉迷在抖音里呢,有时间多看点技术文章,写点技术框架它不香吗。 跟着我一起来,动动手: 1、点开抖音 2、我的 3、设置 4、个人信息管理 5、关掉:个性化内容推荐 回去,再去刷刷抖音,你就会发现,刷的都是什么玩意~~一点吸引人的内容都木有,什么破抖音~ 阅读全文
posted @ 2024-04-20 18:30 路过秋天 阅读(323) 评论(0) 推荐(1) 编辑
  2024年4月19日
摘要: 在.NET Emit编程中,我们探讨了运算操作指令的重要性和应用。这些指令包括各种数学运算、位操作和比较操作,能够在动态生成的代码中实现对数据的处理和操作。通过这些指令,开发人员可以灵活地进行算术运算、逻辑运算和比较操作,从而实现各种复杂的算法和逻辑......本篇之后,将进入第七部分:实战项目 阅读全文
posted @ 2024-04-19 09:57 路过秋天 阅读(375) 评论(0) 推荐(4) 编辑
  2024年4月16日
摘要: 上次发布了:Taurus.MVC 性能压力测试(ap 压测 和 linux 下wrk 压测):.NET Core 版本,今天计划准备压测一下 .NET 版本,来测试并记录一下 Taurus.MVC 框架在 .NET 版本的性能,以便后续持续优化改进。 为了方便对比,本文章的电脑环境和测试思路,尽量和上文保持一致,以便方便对比,看在文章的最后,能不能压出个10万+。 阅读全文
posted @ 2024-04-16 10:52 路过秋天 阅读(364) 评论(0) 推荐(2) 编辑
  2024年4月15日
摘要: .NET Core 8 部署在 IIS 的简单三步,如下。 阅读全文
posted @ 2024-04-15 18:39 路过秋天 阅读(2068) 评论(0) 推荐(2) 编辑
摘要: 在本教程的第六部分中,我们深入探讨了 ILGenerator 中的类型转换指令。通过了解这些指令,你可以在动态生成的代码中执行各种类型转换操作,从而更好地控制程序的行为和数据流。类型转换指令在 .NET 开发中非常有用,特别是在需要进行数据类型转换或操作时。通过本教程,你应该已经了解了如何使用 ILGenerator 来生成这些转换指令,并且知道它们在 IL 代码中的具体用法和语法。掌握 ILGenerator 中的类型转换指令将为你的动态代码生成带来更大的灵活性和效率。 阅读全文
posted @ 2024-04-15 09:59 路过秋天 阅读(251) 评论(0) 推荐(4) 编辑
  2024年4月12日
摘要: 经过前面几篇的学习,我们了解到指令的大概分类,如:参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令。参数存储指令,其指令以 St 开头,将栈中的数据,存储到指定的变量中,以方便后续使用。创建实例指令,其指令以 New 开头,用于在运行时动态生成并初始化对象。方法调用指令,该指令以 Call 开头,用于在运行时调用其它方法。本篇介绍分支条件指令,该指令通常以 Br、或 B、C 开头,用于在运行分支条件时跳转指令。 阅读全文
posted @ 2024-04-12 14:38 路过秋天 阅读(464) 评论(5) 推荐(8) 编辑
  2024年4月10日
摘要: 对于 API 压测:旧电脑轻松就打满CPU,主要是被ab和其它应用吃了资源,所以压测上不去,去掉虚拟机两核后,还能压出2万3的qps,已经很不容易了。新电脑上限太高,连 wrk 都压不住,都上10万+了,CPU也才20%左右,可见一个高效的CPU对并发的提升是多么明显。最后部署在 Linux,可以感觉性能明显比 Window 运行高一些,Window 需要调试参数才10万+,而 Linux 上随便调试都10万+,但因wrk给的压力也有限,10万+后无法再测试了。 阅读全文
posted @ 2024-04-10 09:57 路过秋天 阅读(828) 评论(13) 推荐(10) 编辑
  2024年4月9日
摘要: 使用 ab 工具无法压测到性能极限时,就可以使用 wrk 来压测,但 wrk 只支持 linux,因此本文记录一下安装过程。 阅读全文
posted @ 2024-04-09 15:25 路过秋天 阅读(339) 评论(0) 推荐(0) 编辑
  2024年4月8日
摘要: 本文探讨了.NET Emit 入门教程的第六部分,聚焦于ILGenerator中的方法调用指令。通过详细分析 ILGenerator 的使用方法和方法调用指令,读者可以更深入地了解.NET平台下动态生成代码的实现机制。通过本文的阅读,读者可以更加熟练地使用 ILGenerator 来动态生成高效、灵活的代码,为.NET应用程序的开发和优化提供更多可能性。 阅读全文
posted @ 2024-04-08 13:59 路过秋天 阅读(447) 评论(0) 推荐(2) 编辑
  2024年4月7日
摘要: 在.NET Emit 入门教程的第六部分中,我们深入探讨了 ILGenerator 指令方法,特别是关于创建实例指令的详细解释。ILGenerator 是.NET框架中的一个强大工具,用于在运行时生成和执行IL代码。在这篇文章中,我们学习了如何使用 ILGenerator 来创建实例,其中主要涉及到了两种指令方法:newobj 和 newarr。通过 newobj 指令,我们可以在IL代码中调用构造函数来创建类的实例,而 newarr 指令则用于创建数组实例。通过学习这些内容,读者可以更深入地理解 ILGenerator 的使用,并在实际项目中应用动态代码生成的技术。 阅读全文
posted @ 2024-04-07 13:56 路过秋天 阅读(414) 评论(1) 推荐(4) 编辑
  2024年4月3日
摘要: 上一篇介绍了 IL 指令的分类以及参数加载指令,该加载指令以ld开头,将参数加载到栈中,以便于后续执行操作命令。本篇开始介绍参数存储指令,其指令以st开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 阅读全文
posted @ 2024-04-03 14:05 路过秋天 阅读(383) 评论(1) 推荐(8) 编辑
  2024年4月2日
摘要: 本篇教程深入探讨了 ILGenerator 中的参数加载指令,通过详细解释Ldarg、Ldarga、Ldloc和Ldloca等指令的使用,读者能够清晰地认识到Ld指令用于加载参数或本地变量到堆栈,而St指令用于将值从堆栈存储到参数或本地变量中。这些指令为动态方法的生成提供了基础,帮助开发者更好地掌握IL代码的生成和调试。 阅读全文
posted @ 2024-04-02 18:15 路过秋天 阅读(499) 评论(0) 推荐(3) 编辑
  2024年3月28日
摘要: 经过前面几大部分的学习,已经掌握了 Emit 的前因后果,今天来详细讲解 Emit 中 IL 的部分内容。如前文所讲,通过 DynamicMethod(或 MethodBuilder)可获得 ILGenerator 这个用于编写 IL 指令的类,并用它来编写 IL 指令。本篇主要讲解 ILGenerator 的介绍,以及主要的辅助方法,详细的指令方法,则拆分到下一篇介绍。 阅读全文
posted @ 2024-03-28 16:28 路过秋天 阅读(575) 评论(1) 推荐(10) 编辑
  2024年3月27日
摘要: 本篇主要介绍了 IL 指令,包括IL指令的基本结构、常见指令类型和示例应用。IL 指令是构成IL代码的基本单位,通过不同指令的组合实现对数据的操作和流程控制。在学习 IL 指令时,需要理解指令的作用、操作码和操作数的含义,以及如何正确使用IL指令构建有效的IL代码。 阅读全文
posted @ 2024-03-27 15:22 路过秋天 阅读(631) 评论(0) 推荐(4) 编辑
  2024年3月26日
摘要: 在本文的第五部分中,我们深入探讨了 .NET Emit 中动态生成方法的两种方式:MethodBuilder 和 DynamicMethod。通过 MethodBuilder,我们可以在运行时动态创建和定义方法,为其添加参数、自定义属性等元数据信息。而 DynamicMethod 则提供了一种更灵活的动态方法生成方式,特别适合于需要高性能的动态代码生成场景。 阅读全文
posted @ 2024-03-26 14:36 路过秋天 阅读(629) 评论(2) 推荐(4) 编辑
  2024年3月25日
摘要: 构建类型是动态代码生成过程中的关键一环,通过灵活运用 TypeBuilder 和相关工具,我们可以实现各种复杂类型的动态生成,为程序的灵活性和可扩展性提供有力支持。总的来说,本章节通过演示如何使用 Emit 来动态创建类型,包括定义字段、方法、属性和事件等, 帮助读者理解如何在运行时生成和操作类型信息。 阅读全文
posted @ 2024-03-25 14:27 路过秋天 阅读(597) 评论(0) 推荐(10) 编辑
  2024年3月22日
摘要: 嗯,构建模块,一行代码的事情,愣是让我写成了一篇教程,太难了。在这个入门教程的第三部分中,我们学习了如何使用.NET Emit 构建模块(Module)。通过创建和定义模块,我们可以更好地组织和管理我们的代码。在这个过程中,我们了解了如何使用 AssemblyBuilder 和 ModuleBuilder 来动态生成模块。通过学习构建模块的过程,我们可以更深入地理解.NET Emit 的强大功能,并且能够在运行时动态地生成和加载代码。 阅读全文
posted @ 2024-03-22 13:47 路过秋天 阅读(1010) 评论(5) 推荐(13) 编辑
  2024年3月21日
摘要: 在本章节中,我们讨论了如何使用 C# Emit 来构建动态程序集,以获得 AssemblyBuilder 这个程序集构建器,开启构建程序集的第一步。同时我们也讨论了如何使用 C# Emit 来构建动态程序集以及程序集的持久化。同时还分享了自己的干货,如何使用 CodeDom 和 Roslyn 来构建静态程序集。通过本章节的内容,读者可以掌握如何利用 C# Emit 技术构建动态程序集和静态程序集,从而实现灵活、动态的程序设计和开发。 阅读全文
posted @ 2024-03-21 14:15 路过秋天 阅读(1277) 评论(5) 推荐(11) 编辑
  2024年3月20日
摘要: Emit 技术是一种强大的动态生成IL代码的技术,通过使用 System.Reflection.Emit 命名空间中的类,开发人员可以在运行时创建和修改程序集、类型和方法。它为开发人员提供了更高级别的灵活性,使他们能够根据需要动态生成和执行代码。 阅读全文
posted @ 2024-03-20 15:01 路过秋天 阅读(3285) 评论(13) 推荐(42) 编辑
  2024年3月18日
摘要: 在 CYQ.Data 版本更新的这么多年,中间过程的版本都在完善各种功能。基于需要支持或兼容的代码越多,很多时候,常规思维,都把相关功能完成,就结束了。实现过程中,无法避免的会用到大量的反射、锁等对性能有所影响的逻辑代码。CYQ.Data 从V5.9 版本开始,开始大规模的优化调整代码,目前稳定在 V5.9.2.7 版本,下面看一下更新记录 阅读全文
posted @ 2024-03-18 16:00 路过秋天 阅读(634) 评论(5) 推荐(4) 编辑
  2024年3月13日
摘要: 前几天,点开自己的博客,看了一下 CYQ.Data V5系列 都有哪些文章,发现了一篇2019年写的:CYQ.Data 对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。感觉文章中有些表述存有问题,,不过不是重点。 重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的更新,有没有进步呢。为了和之前的版本进行对比,好在当年有留下代码,就直接拿当年的代码来测试一下。 阅读全文
posted @ 2024-03-13 11:37 路过秋天 阅读(447) 评论(0) 推荐(5) 编辑
  2024年3月10日
摘要: 1、KingBaseES 人大金仓数据库 是多数据库、多模式。2、public 为默认模式,因此,默认情况下,我们可以在 public 模式下新建表即可。总的来说,使用 CYQ.Data 框架操作 KingBaseES 数据库可以简化开发流程,提高开发效率,同时也增强了系统的稳定性和安全性 阅读全文
posted @ 2024-03-10 14:43 路过秋天 阅读(400) 评论(5) 推荐(2) 编辑
路过秋天