- 博客(17)
- 收藏
- 关注
原创 .NET6+中使用RabbitMQ详尽指南
RabbitMQ 是一个流行的开源消息队列系统,广泛用于实现异步通信、解耦组件、负载均衡等场景。在本篇博客中,我们将详细介绍如何在 .NET 6 中使用 RabbitMQ,包括生产者和消费者的实现,以及如何通过依赖注入来管理它们。接下来,我们需要定义连接 RabbitMQ 所需的配置选项。接下来我们来实现一个 RabbitMQ 生产者,用于发送消息到队列。接下来我们来实现一个 RabbitMQ 消费者,用于发送消息到队列。:适用于路由键完全匹配的消息分发。:适用于路由键完全匹配的消息分发。
2025-01-02 13:51:17
1963
原创 【FineReport】帆软是单细胞生物开发的吗?
本文吐槽了帆软报表(FineReport)在跨库数据合并方面的功能缺陷。作者遇到需要合并MySQL和Oracle两个数据库的数据需求时,发现FineReport无法对获取的数据集进行二次查询合并,直接导致系统宕机。相比PowerBI提供的PowerQuery功能,帆软官方仅建议预先清洗数据,无法满足简单的结果集合并需求。作者强烈质疑产品设计思路,认为这种普遍需求未被满足是产品经理的重大失误,并用"草履虫思维"讽刺其功能局限性。全文表达了开发者对工具功能不足的强烈不满。
2025-12-26 16:37:56
24
原创 [.Net8]RabbitMQ 解决方案(RabbitMQ.Client 7.2.0)
摘要:Net8RabbitMQ是基于.NET 8.0的RabbitMQ解决方案,包含Web应用和演示项目。演示项目实现了RabbitMQ多种通信模式,包括简单队列、工作队列、发布/订阅、路由、主题和RPC模式。项目通过统一接口IRabbitMqClient简化操作,提供完整代码示例展示不同模式的使用方法,适合作为RabbitMQ学习参考。
2025-12-04 15:28:50
274
原创 [.Net8] Kafka:车辆GPS定位点数据的消费者重试与死信队列模式分析
摘要:本文探讨了车辆GPS数据处理中重试与死信队列的实现方案。针对海量GPS数据可能遇到的临时故障和永久错误,提出了基于重试主题和死信主题的架构模式,通过错误分类实现自动重试或人工干预。在.NET8环境下,使用Confluent.Kafka客户端实现了包含指数退避重试、延迟消费和结构化错误诊断的完整解决方案,并强调了监控告警、幂等性处理和性能优化等最佳实践。该方案有效解决了数据处理中的阻塞、丢失和雪崩问题,构建了高容错的数据处理管道。
2025-12-02 09:53:09
754
原创 [.Net8] 使用Kafka详细指南
Beauty.Net.Kafka是一款基于Confluent.Kafka封装的.NET客户端库,提供了简洁易用的Kafka集成方案。该库支持单条/批量消息发送、事务消息、消息消费等核心功能,并内置依赖注入支持。通过NuGet安装后,开发者可快速配置Kafka服务,使用IKafkaProducer进行消息生产(支持同步/异步模式),或通过IKafkaConsumer实现消息订阅消费。库还提供手动提交偏移量、消息头支持等高级特性,相比原生API大幅简化了.NET项目中Kafka的集成复杂度。
2025-11-28 09:01:46
973
原创 【.Net8】环境下高性能租车服务平台完整架构方案
本文提出了一套完整的车辆租赁系统架构设计方案,采用微服务架构实现高并发处理能力。系统分为四层架构:客户端层、网关层、微服务层(订单、支付、车辆服务等)和基础设施层。技术栈基于.NET 8+生态,使用DotNetty实现设备通信,gRPC进行服务间调用,Redis缓存热点数据,Kafka处理异步消息,InfluxDB存储时序数据。重点设计了车辆数据接入服务、实时定位服务、订单服务和支付服务的实现细节,包括协议处理、分布式事务、状态机等核心逻辑。通过数据库分表、读写分离、多级缓存等优化策略提升性能,并采用Kub
2025-11-19 09:55:08
194
原创 【.Net8】分布式事务方案:预订单与多订单统一提交
本文提出了一种基于Saga模式的分布式事务解决方案,用于实现多服务协同下单(机票、酒店、租车等)的原子性操作。系统采用.NET8技术栈,结合RabbitMQ、Redis、EntityFrameworkCore等组件,通过订单协调服务管理Saga事务生命周期。核心设计包括三阶段处理流程:预占阶段(资源检查与锁定)、确认阶段(顺序提交)和补偿阶段(异常回滚)。方案特别关注高并发下的资源竞争问题,使用分布式锁确保预占原子性,并设计了超时自动释放机制。通过本地事务表、Saga状态机和重试策略保障最终一致性,同时提供
2025-11-15 09:42:55
895
原创 【.Net8】Beauty.Net 是一个基于.Net8的服务集成工具箱,让小白也可以体验快速集成服务
Beauty.NetWebApi是一个基于.NET 8的微服务框架,集成了缓存、消息队列、搜索引擎等核心组件。采用模块化设计,包含Consul服务发现、Ocelot API网关等模块,提供统一接口简化开发。支持Redis、RabbitMQ、Elasticsearch等多种技术栈,通过中间件实现日志记录和统一响应格式。项目结构清晰,包含Beauty.Net.Cache、Beauty.Net.Consul等独立模块,各模块可单独使用或组合部署。该框架适用于构建企业级微服务应用,提供开箱即用的功能组件和标准化实现
2025-11-15 09:22:10
1418
原创 【.Net8】接入车联网方案
本文介绍了基于.NET8的车联网系统实现方案。系统采用MQTT协议进行通信,由车载终端、通信网络、云平台和应用服务组成。.NET8凭借高性能、跨平台和云原生等优势成为理想选择。文章详细展示了MQTT客户端实现、车辆数据采集上报、远程控制功能,并提供了与Azure IoT Hub和AWS IoT Core的集成方案。同时强调了安全性考虑,包括安全MQTT连接和JWT令牌验证。完整代码结构清晰,包含数据服务、控制服务、云平台集成等模块,为车联网应用开发提供了全面参考。
2025-10-09 10:26:13
903
原创 【.Net8】 关于HttpClientFactory请求证书问题
摘要:项目从.Net6升级到.Net8并修改域名后,某数据上传工具出现SSL连接错误。经排查证书配置无异常,最终发现是.Net8对HttpClient的证书验证更严格所致。解决方案是修改HttpClientHandler配置,明确指定TLS版本并关闭证书吊销检查等选项,从而修复了"The SSL connection could not be established"错误。该问题凸显了框架升级时可能存在的兼容性问题。
2025-09-22 10:21:28
376
原创 .Net6+阿里云OSS的STS授权Token获取
在开发种,有些图片的上传,例如用户反馈链接、聊天图片等,走自己的服务器会产生很多的流量费用,阿里为我们考虑到了这一点儿,正好匹配了这一方案。减少我们自己的流量使用,只拿取stsToken授权,再上传文件到阿里的oss,返回地址保存。
2025-04-30 11:26:37
835
原创 C# 反射的简单使用
C# 反射是一种在运行时动态获取类型信息并操作对象的机制,其核心在于通过命名空间实现元数据解析。1.获取类型信息,使用typeofGetType()或获取类型的Type可进一步获取类型名称、命名空间、基类等信息。2.动态创建实例,通过 3.调用方法,使用通过:动态加载外部程序集,扩展功能。:运行时解析类型依赖。:遍历对象属性生成 JSON/XML。:动态调用被测方法,验证逻辑。
2025-04-25 10:05:56
532
原创 (C#小技巧)C#中List分割为字符串和分割字符特征转List
在C#代码编写中经常看到分隔符转List;List转分割符的操作。通常情况下大多数程序员都会想着使用for循环。这样的代码时不太优雅的,且可读性是比较差的,虽然有些程序员老哥会说这样内存开销比较小。但是2025年了,老哥你都是耗材了,为啥要为难自己,要老板多花点儿钱去多弄点儿内存。减少自己代码的不可维护性,增加稳定性。简洁又轻松,高效的摸鱼才是手段。低效的代码编码速度就是浪费时间。深入了解.net提供的自带Api还是比较舒服的。有一点儿代码洁癖和关于雷村优化和减少关于for循环使用的小技巧。
2025-04-24 11:45:23
359
原创 .NET6+获取真实IP中间件
在平时开发过程中,很多内部系统,我们都是期望能够获取到用户的真实ip,但是经过层层代理后,真实ip变得模糊,为了全局日志方便记录和简约大气的实现整体架构。我们可以以中间件的方式去获取下真实IP。在 IApplicationBuilder 时首先定义全局跨域后,就可以使用真实IP获取中间件了。定义一个中间件 RealIpMiddleware。以上我们就完成了真实ip获取的中间件。
2025-01-07 09:03:20
331
原创 .Net6+及以上Server-Sent Events(SSE)轻量级主动推送和Redis发布订阅
客户端向服务器发送请求,服务器收到请求后,如果有新的数据,立即返回给客户端;如果没有新数据,服务器会等待一定时间(比如30秒超时时间),在这段时间内,如果有新数据,就返回给客户端,否则返回空数据。WebSocket 是基于 TCP 的长连接,和HTTP 协议相比,它能实现轻量级的、低延迟的数据传输,非常适合实时通信场景,主要用于交互性强的双向通信。服务端推送,也称为消息推送或通知推送,是一种允许应用服务器主动将信息发送到客户端的能力,为客户端提供了实时的信息更新和通知,增强了用户体验。
2025-01-02 13:43:59
2346
原创 .Net6+异常和响应中间件服务
期望自己用什么库什么样的日志写入方式,就可以依次精简,这是Serilog比较灵活的地方,一切基于配置。在.Net Core3.1及以上的开发操作中,我们通常对日志记录及响应记录,还有一些其他的事物性记录需要严苛的监控或者说本系统内部的数据流向追踪,异常查找很是繁琐。为了解决数据流向追踪,我们研究了下中间(Middleware),中间件的好处就是对代码无侵入,只用注入一次,则会全局使用,相对于拦截器来说更加方便轻量。为什么说是一条龙服务请看图,返回结果的uuid可以看到生命周期,从一而终,
2024-08-14 20:35:11
1633
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅