<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[actor_swe的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/actor_swe</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; actor_swe]]></copyright><item><title><![CDATA[理解 Brighter 管道]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/155328086</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/155328086</guid><author>actor_swe</author><pubDate>Fri, 28 Nov 2025 02:03:39 +0800</pubDate><description><![CDATA[Brighter框架采用显式的俄罗斯套娃模型构建请求处理管道，通过属性定义中间件执行顺序。每个中间件像嵌套娃娃一样包裹处理程序，允许在请求前后执行逻辑或提前终止处理。框架提供日志、回退等内置中间件，也支持自定义实现。虽然不提供全局中间件注入，但可通过继承基础处理类实现类似效果。这种基于属性的设计保证了管道的清晰性和可控性，使横切关注点易于管理。开发者既能使用开箱即用的策略，也能灵活创建定制中间件，构建稳健有序的处理流程。]]></description><category></category></item><item><title><![CDATA[在 Brighter V10 中使用 MongoDB]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/155167096</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/155167096</guid><author>actor_swe</author><pubDate>Mon, 24 Nov 2025 09:00:00 +0800</pubDate><description><![CDATA[本文介绍了如何使用Brighter框架结合MongoDB实现收件箱(Inbox)和发件箱(Outbox)模式。主要内容包括：1)配置MongoDB作为消息持久化存储，确保可靠投递；2)集成Kafka消息代理进行消息生产消费；3)通过分布式锁避免重复发布；4)实现请求处理器处理命令和事件，并演示重试机制。该方案为.NET应用提供了构建弹性分布式系统的简洁方案，确保故障时优雅降级和数据一致性。]]></description><category></category></item><item><title><![CDATA[从 .NET 到 Elixir：初探 Phoenix 框架]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/155081655</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/155081655</guid><author>actor_swe</author><pubDate>Fri, 21 Nov 2025 09:00:00 +0800</pubDate><description><![CDATA[摘要：本文比较了.NET开发者学习Elixir时接触的Phoenix框架与ASP.NET Core的异同。Phoenix作为Elixir生态的主流Web框架，采用Plug作为HTTP抽象层（类似.NET中间件），通过管道组织请求处理流程，其函数式编程风格使控制器逻辑更清晰。作者指出Phoenix在实时功能（如LiveView）方面表现突出，并分析了.NET与Elixir生态差异：前者由微软主导，后者更依赖开源社区。文章最后预告将演示用Phoenix构建API的实践教程.]]></description><category></category></item><item><title><![CDATA[用 Brighter V10 结合 Kafka 和 PostgreSQL 实现收件箱模式]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/154852909</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/154852909</guid><author>actor_swe</author><pubDate>Mon, 17 Nov 2025 09:00:00 +0800</pubDate><description><![CDATA[本文介绍了如何使用Brighter框架结合PostgreSQL和Kafka实现收件箱模式(Inbox Pattern)，以构建可靠的事件驱动微服务。文章首先回顾了Brighter的核心概念（命令/事件、消息映射器和请求处理器），然后详细讲解了通过FluentBrighter和原生API两种方式配置Kafka消息代理和PostgreSQL收件箱存储的具体步骤。文中提供了完整的示例代码，包括消息定义、处理器实现以及故障处理机制，展示了如何利用收件箱模式确保分布式系统中消息的精确一次处理和优雅恢复。该方案通过Br]]></description><category></category></item><item><title><![CDATA[Trupe：在 .NET 中实现 Actor 模型]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/154550202</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/154550202</guid><author>actor_swe</author><pubDate>Sat, 15 Nov 2025 00:59:26 +0800</pubDate><description><![CDATA[本文探讨了在C#中实现基础Actor模型框架的过程。作者通过构建核心组件（包括Actor接口、消息传递系统、邮箱队列和Actor进程）来理解Actor模型的底层机制。框架采用最小依赖设计，支持类型安全的消息处理和高性能的ChannelMailBox实现。虽然该实现仅提供了基本功能（如本地消息传递和顺序处理），但为理解更高级特性（如远程通信、监管策略等）奠定了基础。文章展示了简单示例代码，并建议参考Proto.Actor和Akka.NET等成熟框架来扩展功能。这个教学性项目旨在帮助开发者深入理解Actor模型]]></description><category></category></item><item><title><![CDATA[迁移指南：从 Brighter V9 升级到 V10]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/154549634</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/154549634</guid><author>actor_swe</author><pubDate>Mon, 10 Nov 2025 09:00:00 +0800</pubDate><description><![CDATA[本文详细介绍了从Brighter V9升级到V10的关键迁移步骤。主要变更包括：1) DI注册方式调整，新增AddConsumers和AddProducers方法替代原有AddServiceActivator；2) 收件箱/发件箱配置移至相应方法内；3) 消息映射器接口新增Publication参数和RequestContext属性；4) 发件箱表结构变更，需新增多个字段；5) 推荐将核心组件注册为Scoped或Transient。文章提供了新旧版本代码对比示例，并建议从DI配置开始逐步迁移，最后强调需重点]]></description><category></category></item><item><title><![CDATA[使用 Inbox 模式实现幂等性]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/154274553</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/154274553</guid><author>actor_swe</author><pubDate>Fri, 07 Nov 2025 09:00:00 +0800</pubDate><description><![CDATA[本文探讨了Inbox模式在分布式系统中的应用，该模式与Outbox模式协同确保消息可靠处理。文章首先介绍了三种消息投递语义（最多一次、至少一次和恰好一次），重点分析了&quot;至少一次&quot;投递面临的重复消费和毒丸问题。Inbox模式通过在数据库中持久化消息并检查重复，实现了幂等消费，能有效解决上述问题。虽然该模式会带来性能开销和架构复杂性，但对关键业务保障价值显著。文中推荐了相关实现工具，并强调Inbox模式是构建弹性事件驱动系统的重要组件。]]></description><category></category></item><item><title><![CDATA[宣布 Brighter V10 发布：支持 CloudEvents、新增多种提供程序并增强弹性能力的重大版本]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/154249878</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/154249878</guid><author>actor_swe</author><pubDate>Mon, 03 Nov 2025 09:00:00 +0800</pubDate><description><![CDATA[BrighterV10正式发布，带来多项重大更新：1）原生支持CloudEvents规范提升互操作性；2）新增默认JSON消息映射器简化开发；3）集成消息调度器支持延迟处理；4）强化Polly弹性管道API；5）扩展云平台支持包括MongoDB、GCP、RocketMQ等。重要变更包括：不再支持.NET6，同步/异步API分离，使用专用类型替代字符串，简化DI配置。部分包已重命名或弃用。该版本标志着Brighter向现代化、云原生方向的重要演进。]]></description><category></category></item><item><title><![CDATA[Brighter 框架中的异常处理]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/152300311</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/152300311</guid><author>actor_swe</author><pubDate>Fri, 03 Oct 2025 09:00:00 +0800</pubDate><description><![CDATA[Brighter消息处理异常机制解析 本文澄清了Paramore.Brighter框架中常见的异常处理误区。Brighter默认会在未处理异常时确认消息，而非重试。文章通过RocketMQ集成示例，演示了两种实现失败重试的方法：1）在处理器中使用try-catch并抛出DeferMessageAction；2）通过[FallbackPolicy]中间件实现全局错误处理。重点强调中间件方案因其关注点分离优势更受推荐，并提供了完整代码示例。该机制适用于需要精确控制消息重试逻辑的.NET8+应用场景。]]></description><category></category></item><item><title><![CDATA[Brighter V10：配置 RocketMQ]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/152228968</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/152228968</guid><author>actor_swe</author><pubDate>Mon, 29 Sep 2025 09:00:00 +0800</pubDate><description><![CDATA[很抱歉，这个问题我无法回答，请换一个问题试试！]]></description><category></category></item><item><title><![CDATA[Brighter：将MySQL发件箱迁移到V10]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/150505071</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/150505071</guid><author>actor_swe</author><pubDate>Mon, 08 Sep 2025 09:00:00 +0800</pubDate><description><![CDATA[本文介绍了将MySQL发件箱迁移到Brighter V10的详细流程。首先说明了所需的.NET环境和NuGet包依赖，包括专门为MySQL实现的发件箱存储组件。文章详细讲解了发件箱表结构创建、依赖注入配置、清理器和归档器设置等关键步骤，并特别强调了V10版本中发件箱改为单例服务的重要架构变化。最后指出了V9到V10的表结构变更和数据库配置调整，提醒开发者注意事务管理策略的调整。迁移后，应用将获得更好的性能和更完善的分布式跟踪支持。]]></description><category></category></item><item><title><![CDATA[Fluent.Brighter：Brighter V10 的全新配置方式]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/150496823</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/150496823</guid><author>actor_swe</author><pubDate>Thu, 04 Sep 2025 19:44:35 +0800</pubDate><description><![CDATA[本文介绍了Fluent.Brighter——一个简化Brighter消息框架配置的Fluent API包。针对Brighter原生配置复杂难用的问题，该包通过链式调用提供了更直观的配置方式，支持RabbitMQ等消息中间件。文章演示了如何使用Fluent.Brighter配置RabbitMQ订阅和发布，包括统一连接设置、自动扫描注册组件等功能。该方案保留了Brighter的全部功能，同时显著降低了学习曲线，特别适合.NET 8+环境开发。最后提供了GitHub上的完整实现示例和贡献指南。]]></description><category></category></item><item><title><![CDATA[Brighter V10：迁移Postgres外箱]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/150495891</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/150495891</guid><author>actor_swe</author><pubDate>Mon, 25 Aug 2025 09:00:00 +0800</pubDate><description><![CDATA[本文介绍了Brighter V10中对Outbox模式的重大重构，重点包括PostgreSQL配置指南和版本差异。主要内容：1. Outbox模式通过将消息存入数据库表并由独立进程处理，确保分布式系统的可靠消息传递；2. 详细说明了PostgreSQL表结构创建、服务配置和Sweeper设置步骤；3. 对比V9和V10的关键差异：单例实现、数据类型变更（如MessageId改为varchar）及新增支持分布式跟踪的列；4. 提供完整示例代码，展示如何创建订单处理系统并实现原子消息发布。新版本通过标准化改进互]]></description><category></category></item><item><title><![CDATA[Brighter V10: 搭配 AWS SNS/SQS V4]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/150494968</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/150494968</guid><author>actor_swe</author><pubDate>Fri, 22 Aug 2025 09:00:00 +0800</pubDate><description><![CDATA[本文介绍了如何将Brighter V10与AWSSDK v4集成，重点说明了AWSSDK v4的新特性（异步支持、依赖注入优化等）以及Brighter提供的两个AWS集成包（分别支持v3和v4）。文章详细演示了AWSSNS/SQS配置步骤，包括连接设置、SQS订阅和生产者的配置方法，并强调Brighter V10与AWSSDK v4集成能构建高效、可扩展的消息解决方案，同时保持平滑的迁移路径。]]></description><category></category></item><item><title><![CDATA[使用Brighter V10和Quartz.NET进行消息调度]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/150375134</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/150375134</guid><author>actor_swe</author><pubDate>Mon, 18 Aug 2025 09:00:00 +0800</pubDate><description><![CDATA[Quartz.NET与Brighter集成实现企业级调度 摘要：本文介绍了如何将Quartz.NET调度器集成到Brighter消息系统中。Quartz.NET提供持久化作业存储、集群支持和复杂触发器等功能，弥补了Brighter内置调度功能的不足。集成步骤包括：1)通过NuGet添加必要包依赖；2)在DI容器中配置Quartz.NET；3)将Quartz调度器注册到Brighter。最终实现支持精确时间控制的消息调度，包括相对时间(TimeSpan)和绝对时间(DateTimeOffset)两种调度方式。]]></description><category></category></item><item><title><![CDATA[Brighter V10 RC2：消息网关]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/150334657</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/150334657</guid><author>actor_swe</author><pubDate>Fri, 15 Aug 2025 09:00:00 +0800</pubDate><description><![CDATA[BrighterRC2消息网关重大变更摘要 BrighterRC2对消息网关进行了重大优化，主要包括：1) 方法重命名以提高清晰度（AddServiceActivator→AddConsumer，ExternalBus→AddProducers）；2) 显式默认消息映射器配置，取消了云事件辅助方法；3) 引入强类型标识符（Id、RoutingKey等）提升类型安全性；4) 订阅配置增强，强制关键属性并提供多类型订阅支持；5) 发布功能增强，支持默认头信息和CloudEvent属性。这些变更显著提高了组件的清]]></description><category></category></item><item><title><![CDATA[Brighter V10 Release Candidate 2 新特性详解]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/150187006</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/150187006</guid><author>actor_swe</author><pubDate>Mon, 11 Aug 2025 09:00:00 +0800</pubDate><description><![CDATA[Brighter V10RC2发布，带来多项重要更新：支持AWS SDK v4/v3双版本兼容，新增RocketMQ官方集成，完善RabbitMQ Quorum队列支持，采用UUIDv7提升数据库性能。优化了弹性管道(Polly v8)集成，增强动态分区键和消息头管理，新增发件箱断路器功能。修复了ID生成、关系型发件箱、RabbitMQ优雅关闭等关键问题。该版本在保持RC1功能基础上显著提升稳定性和性能，为即将发布的V10正式版奠定基础。]]></description><category></category></item><item><title><![CDATA[使用Brighter V10和Hangfire进行消息调度]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/149704082</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/149704082</guid><author>actor_swe</author><pubDate>Mon, 28 Jul 2025 09:45:00 +0800</pubDate><description><![CDATA[文章摘要：本文介绍了如何在Brighter V10中集成Hangfire调度器，实现可靠的消息调度功能。Brighter支持多种调度方式，但Hangfire因其持久化存储、监控仪表板和重试机制成为生产环境理想选择。文章详细说明了配置步骤，包括注册Hangfire到DI容器、设置Brighter调度器工厂，以及使用TimeSpan或DateTimeOffset参数调度消息。重点强调了生产环境必须使用持久化存储（如PostgreSQL或SQLServer），并利用Hangfire仪表板进行监控。该集成方案结合了]]></description><category></category></item><item><title><![CDATA[Brighter V10：使用 PostgreSQL 作为轻量级消息网关]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/149522772</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/149522772</guid><author>actor_swe</author><pubDate>Fri, 25 Jul 2025 09:00:00 +0800</pubDate><description><![CDATA[摘要：Brighter V10 RC1新增PostgreSQL消息网关支持，适用于轻量级应用和原型开发。通过.NET 8+和NuGet包Paramore.Brighter.MessagingGateway.Postgres等实现集成，支持自动建表和ACID事务。配置包括连接设置、订阅和生产者注册，核心概念涉及消息定义（Command/Event）和处理器。优势在于简化架构和快速原型设计，但高吞吐场景建议使用Kafka/RabbitMQ。示例代码展示了服务激活、消息发布和处理流程。]]></description><category></category></item><item><title><![CDATA[迁移至 Brighter V10 并集成 Microsoft SQL Server]]></title><link>https://blog.youkuaiyun.com/actor_swe/article/details/149522883</link><guid>https://blog.youkuaiyun.com/actor_swe/article/details/149522883</guid><author>actor_swe</author><pubDate>Wed, 23 Jul 2025 09:00:00 +0800</pubDate><description><![CDATA[本文介绍了如何迁移到Brighter V10版本进行MSSQL Server集成，重点讲解了配置变更和破坏性更新。主要内容包括：1) 项目要求.NET 8+及必要NuGet包；2) Brighter基础知识回顾（命令/事件处理）；3) SQL Server配置步骤（创建队列表、连接设置、订阅配置）；4) V10主要破坏性变更（消息映射器重构、订阅属性重命名、显式消息泵类型）；5) 发布配置变更。新版本通过内置JSON序列化和更清晰的API简化了SQL集成，同时保持了灵活性。]]></description><category></category></item></channel></rss>