<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[temp0504的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/temp0504</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; temp0504]]></copyright><item><title><![CDATA[.NET 微服务 Ocelot 网关实现方案]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/151061024</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/151061024</guid><author>temp0504</author><pubDate>Mon, 01 Sep 2025 09:23:11 +0800</pubDate><description><![CDATA[Ocelot是.NET生态中常用的API网关，能够实现路由转发、负载均衡、限流和安全管控等核心功能。通过以上配置，Ocelot网关可以为.NET微服务架构提供统一的入口，简化客户端调用，并增强系统的安全性和可扩展性。]]></description><category></category></item><item><title><![CDATA[.NET 微服务日志系统：Serilog + Loki + Grafana 实践指南]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/151060446</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/151060446</guid><author>temp0504</author><pubDate>Mon, 01 Sep 2025 09:05:24 +0800</pubDate><description><![CDATA[点击左侧菜单；点击，选择 Loki 数据源；配置图表类型：日志列表：展示原始日志，适合实时查看；柱状图：统计不同日志级别的数量（如 Error/Warning/Info 的占比）；表格：按字段（如 OrderId、UserId）汇总日志，便于排查特定业务问题；保存仪表盘，命名为“Order-Service 日志监控”，后续可直接访问。]]></description><category></category></item><item><title><![CDATA[.net 微服务jeager链路跟踪]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/151060140</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/151060140</guid><author>temp0504</author><pubDate>Mon, 01 Sep 2025 08:55:42 +0800</pubDate><description><![CDATA[Route[HttpGet// 创建自定义跨度 using var customSpan = _tracer . StartActiveSpan("CustomWeatherProcessing");try {// 添加自定义标签 customSpan . SetAttribute("location" , "Beijing");]]></description><category></category></item><item><title><![CDATA[C# 日志写入loki]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150993242</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150993242</guid><author>temp0504</author><pubDate>Fri, 29 Aug 2025 18:34:50 +0800</pubDate><description><![CDATA[在 C# 中实现日志写入 Loki 最常用的方式是结合日志框架和扩展包。]]></description><category></category></item><item><title><![CDATA[不要在构造函数中进行数据库查询，io操作]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150972928</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150972928</guid><author>temp0504</author><pubDate>Fri, 29 Aug 2025 08:35:57 +0800</pubDate><description><![CDATA[保证对象创建的安全性：避免因外部操作失败导致对象处于无效状态。提升代码可维护性：分离初始化与业务逻辑，降低耦合度。增强可测试性：便于隔离外部依赖，编写稳定的单元测试。实际开发中，应优先通过“依赖注入+显式初始化方法”或“工厂模式”实现资源操作与对象构造的分离，让代码更健壮、更易扩展。]]></description><category></category></item><item><title><![CDATA[处理异常时，finally关键字有什么作用？]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150972841</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150972841</guid><author>temp0504</author><pubDate>Fri, 29 Aug 2025 08:32:44 +0800</pubDate><description><![CDATA[finally的核心价值是保证“清理逻辑的必然性”，尤其适用于需要手动管理的资源（文件、数据库连接等）。在实际开发中，结合using语句（自动资源管理）和finally块（手动特殊清理），可有效避免资源泄漏，提升程序的健壮性。]]></description><category></category></item><item><title><![CDATA[C#中常见的异常类有哪些？]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150972799</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150972799</guid><author>temp0504</author><pubDate>Fri, 29 Aug 2025 08:30:01 +0800</pubDate><description><![CDATA[抛出具体异常：避免直接抛出Exception，而是选择最匹配的子类（如参数为null时抛针对性捕获：根据业务场景捕获特定异常（如文件操作捕获），避免滥用。查看文档：不确定方法会抛出哪些异常时，可参考 .NET 官方文档（如的文档会说明可能抛出的异常）。通过合理使用异常类，能让错误信息更清晰，便于调试和问题定位。]]></description><category></category></item><item><title><![CDATA[Ocelot VS Nginx ]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150862794</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150862794</guid><author>temp0504</author><pubDate>Tue, 26 Aug 2025 16:52:16 +0800</pubDate><description><![CDATA[Ocelot是 .NET 微服务的“最佳拍档”，功能丰富且贴近业务，适合中低流量、强业务定制场景。Nginx是性能优先的通用网关，适合高并发、跨语言架构，作为流量入口或基础反向代理。选择时需结合技术栈、流量规模和业务复杂度综合判断，必要时可采用分层网关架构发挥两者优势。]]></description><category></category></item><item><title><![CDATA[如何在C#中使用Ocelot构建微服务网关？]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150860409</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150860409</guid><author>temp0504</author><pubDate>Tue, 26 Aug 2025 16:20:20 +0800</pubDate><description><![CDATA[在C#中使用Ocelot构建微服务网关是一个常见且高效的方案，Core/.NET 5+设计，提供了完整的微服务网关功能。]]></description><category></category></item><item><title><![CDATA[在 C# 中使用 Consul 客户端库实现服务发现]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150857489</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150857489</guid><author>temp0504</author><pubDate>Tue, 26 Aug 2025 15:16:17 +0800</pubDate><description><![CDATA[在 C# 中使用 Consul 客户端库实现服务发现，主要通过查询 Consul 服务器获取指定服务的健康实例列表。]]></description><category></category></item><item><title><![CDATA[consul的作用]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150777223</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150777223</guid><author>temp0504</author><pubDate>Mon, 25 Aug 2025 18:57:28 +0800</pubDate><description><![CDATA[Consul 是 HashiCorp 公司推出的一款，核心作用是解决分布式系统中服务的“定位、通信、管控与安全”问题，确保微服务或分布式架构下各组件能高效、可靠地协同工作。其功能覆盖服务发现、配置管理、健康检查、分段隔离等核心场景，广泛应用于云原生、微服务、多数据中心等架构中。]]></description><category></category></item><item><title><![CDATA[Consul 在 Windows 上的启动方法]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150777105</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150777105</guid><author>temp0504</author><pubDate>Mon, 25 Aug 2025 18:54:25 +0800</pubDate><description><![CDATA[Consul 是一个支持服务发现和配置共享的工具，以下是如何在 Windows 系统上启动 Consul 的详细步骤。通过以上步骤，您可以轻松在 Windows 系统上启动并运行 Consul。consul agent -dev -client <你的IPv4地址>，如果能看到 Consul 的 Web UI，则启动成功。，点击“编辑”，添加 Consul 的安装路径（如。在“高级”选项卡中，点击“环境变量”。的访问，以便正常使用 Web UI。保存后，在任意命令行窗口中输入。并回车，打开命令行窗口。]]></description><category></category></item><item><title><![CDATA[ASP.NET Core 中的构建者模式]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150770608</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150770608</guid><author>temp0504</author><pubDate>Mon, 25 Aug 2025 15:20:14 +0800</pubDate><description><![CDATA[理解ASP.NETCore 框架中的构建者模式后，可尝试自定义构建者类，模拟框架设计思路。示例：自定义一个 "订单构建者"csharp// 复杂对象：订单set;set;set;set;// VIP打9折// 构建者接口// 构建者实现// 返回自身，支持链式调用// 构建最终对象前的计算// 使用构建者.SetProduct("笔记本电脑", 5000m).Build();构建者模式是ASP.NET。]]></description><category></category></item><item><title><![CDATA[领域驱动中IUnitOfWork是干什么的]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150588117</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150588117</guid><author>temp0504</author><pubDate>Thu, 21 Aug 2025 17:41:03 +0800</pubDate><description><![CDATA[在领域驱动设计（DDD）中，（工作单元接口）是一种设计模式，主要用于。它的核心作用是将一组相关的数据库操作（如新增、修改、删除）封装为一个 “原子单元”，要么全部成功提交，要么全部失败回滚，避免部分操作成功导致的数据不一致问题。]]></description><category></category></item><item><title><![CDATA[CQRS 的优缺点]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150586762</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150586762</guid><author>temp0504</author><pubDate>Thu, 21 Aug 2025 16:52:19 +0800</pubDate><description><![CDATA[CQRS 的价值在于解决复杂系统中读写场景的差异化需求，通过分离职责实现针对性优化，但代价是系统复杂度和一致性管理成本的上升。因此，它更适合高并发、读写压力不均衡、业务逻辑复杂的大型系统，而对于简单应用则可能 "得不偿失"。实际使用中，常结合 DDD、事件驱动等思想，平衡其优势与挑战。]]></description><category></category></item><item><title><![CDATA[在.NET 8 中使用中介模式优雅处理多版本 API 请求]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150575208</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150575208</guid><author>temp0504</author><pubDate>Thu, 21 Aug 2025 10:02:47 +0800</pubDate><description><![CDATA[首先我们定义中介者和处理器的核心接口：data);data);data);在.NET 8 中使用中介模式处理多版本 API 请求，为我们提供了一种优雅、可扩展的解决方案。它不仅解决了 API 版本管理的核心问题，还带来了松耦合、易扩展、易维护等诸多优势。这种设计模式特别适合中大型 API 项目，能够有效应对业务需求的变化和系统的长期演进。通过集中化的中介者协调不同版本的交互，我们可以更专注于业务逻辑的实现，而不必过多关注版本间的依赖和兼容性处理。]]></description><category></category></item><item><title><![CDATA[软件开发：一场精密的生命构建]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/150220974</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/150220974</guid><author>temp0504</author><pubDate>Mon, 11 Aug 2025 17:31:58 +0800</pubDate><description><![CDATA[忽视任何一环，系统便如残缺的生命：架构薄弱则“骨质疏松”；唯有深刻理解并精心雕琢每一部分，让骨骼强健、经络通畅、肌肉有力、血液鲜活、皮肤润泽，方能构建出真正强大、灵动、持久的软件生命体。想象构建一个生命体：它需要支撑的骨骼、传导能量的经络、驱动行动的肌肉、维系生机的血液、感知世界的皮肤。软件开发亦是如此，它并非冰冷代码的堆砌，而是一场精密、有机的系统构建工程。如同骨骼为人体的形态、运动与生长提供基础框架，架构是软件系统的核心骨架。业务逻辑如同遍布周身的经络，虽不可见，却是驱动系统行为的核心脉络。]]></description><category></category></item><item><title><![CDATA[win11 命令禁用客户体验改善计划]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/149834553</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/149834553</guid><author>temp0504</author><pubDate>Fri, 01 Aug 2025 15:15:07 +0800</pubDate><description><![CDATA[若问题持续，需进一步排查其他系统服务或硬件兼容性问题。重启系统后再次检查事件查看器，确认。的条目，双击进入属性窗口。并回车打开服务管理器。启动本地组策略编辑器。服务，最后确认退出。在右侧策略列表中双击。]]></description><category></category></item><item><title><![CDATA[使用 SourceTree 合并多次提交：轻松实现批量 Cherry Pick]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/149598704</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/149598704</guid><author>temp0504</author><pubDate>Thu, 24 Jul 2025 11:14:57 +0800</pubDate><description><![CDATA[本文介绍使用SourceTree合并多个提交的方法：首先找到待合并提交的共同祖先节点，通过&quot;变基&quot;功能进入合并模式；然后选中最后一个提交，使用&quot;squash&quot;功能批量合并相关提交；接着编辑合并后的统一提交信息；最后将整合后的提交通过cherrypick应用到其他分支。这一操作能简化提交历史，提升跨分支代码管理效率，特别适合功能开发完成后统一提交到测试或生产分支的场景。]]></description><category></category></item><item><title><![CDATA[避坑：C# json反序列化为float精度丢失]]></title><link>https://blog.youkuaiyun.com/temp0504/article/details/149573551</link><guid>https://blog.youkuaiyun.com/temp0504/article/details/149573551</guid><author>temp0504</author><pubDate>Wed, 23 Jul 2025 15:46:06 +0800</pubDate><description><![CDATA[场景推荐做法需要高精度计算使用decimal需要保留原始字符串格式使用或字符串不需要精度（如图形坐标）floatdouble可接受如需进一步处理高精度 JSON 数值（如科学计数法或超长小数），建议使用decimal或自定义进行转换。]]></description><category></category></item></channel></rss>