Anduin Xue
Anduin Xue

Anduin's Tech Blog

Featured Posts


微信的架构是如何实现分布式消息分发?

这篇文章详细探讨了微信的分布式网络架构设计及其在实际使用中的表现。文章指出,微信采用的是去中心化的服务器架构,服务器仅作为消息中转站和临时存储,而不保存用户的聊天记录,这使得微信能够在不同设备间快速传递信息,并具备高可用性和灵活性。文章还解释了一些用户常见的疑问,例如为何需要手机扫码登录PC端、更换设备后聊天记录丢失的原因以及无法得知是否被好友拉黑等问题。这些现象都与微信的服务器架构设计密切相关。此外,文章还将微信的设计与QQ的传统集中式部署进行了对比,指出腾讯在设计微信时选择了完全不同的技术路线,以应对全球化和高并发的需求。最后,文章对产品经理提出建议,强调理解系统设计的本质对于产品开发的重要性,并提醒产品经理不要盲目模仿微信的功能,而应深入理解其背后的技术逻辑。--DeepSeek

Web WeChat Distributed Messging IM Distributed Systems

EF second layer cache to enhance your SQL database performance based on Redis

文章介绍了在ASP.NET Core应用中使用Entity Framework Core进行数据库查询优化的方法,特别是通过添加二级缓存来提升性能。文章首先介绍了内存缓存的实现方法,使用了EFCoreSecondLevelCacheInterceptor库,并详细说明了如何配置和使用该库。接着,文章扩展到Redis分布式缓存的应用场景,介绍了如何安装必要的NuGet包(如EasyCaching.Redis),并展示了如何在应用程序中配置Redis缓存提供程序以替代内存缓存。最后,文章提到了如何在appsettings.json文件中添加Redis的连接信息,并通过Azure Redis Cache示例说明了如何获取必要的配置参数。整个过程无需修改业务代码即可显著提升应用性能,展示了使用Redis作为分布式缓存的优势。--DeepSeek

ASP.NET Core C# SQL Server SQL Entity Framework Core Azure Redis Caching Cache

HTTP post file from .NET Core new HTTP client

本文介绍了在 .NET Core 3 中使用新的 HTTP 客户端上传文件的方法。通过 `MultipartFormDataContent` 类,可以轻松处理多部分表单数据,实现文件上传。文章提供了代码示例,展示了如何创建 `MultipartFormDataContent` 对象、添加文件流以及发送 POST 请求。此外,还讨论了与传统表单 URL 编码内容的区别,并强调了使用新客户端的优势。你是否也遇到了需要在 .NET Core 中上传文件的需求?了解这些步骤后,你是否能想到更多优化上传过程的方法?--DeepSeek

ASP.NET Core C# .NET Core HTTP Web File HTTP Client POST

Get an ideal flight simulator free based on X-Plane 11 (Free plugins)

这篇文章介绍了多个适用于X-Plane 11的插件和工具,旨在提升飞行模拟体验和操作 realism。其中包括: 1. **ZL-777 插件**:支持波音777的详细功能,如APU、空调系统等。 2. **Airport Navigator**:帮助玩家在机场滑行时定位当前位置,避免迷路。 3. **XSquawkBox**:连接 VATSIM 网络,实现与其他飞行模拟用户和真实空管的互动。 4. **X-RAAS**:模拟 Honeywell 的跑道意识与警告系统,提升飞行安全。 5. **XTouchDownRecorder**:记录降落时的关键参数,如垂直速度和过载,帮助分析着陆质量。 6. **HeadShake**:通过相机抖动增强飞行中的真实感,配合 REP 包效果更佳。 7. **X-Plane 插件商店**:提供大量付费插件,涵盖飞机、机场、天气等内容,丰富模拟体验。 这些工具和插件为 X-Plane 用户提供了更全面的功能支持,从飞行操作到网络互动,再到数据记录和视觉增强,满足不同需求的飞行爱好者。--DeepSeek

X-Plane Flight simulation Flight Plugins Plane Configuration Free

Tips to get better performance for Entity Framework Core

根据上述内容,以下是针对如何优化Entity Framework Core查询性能的一些建议: 1. **使用AsNoTracking禁用跟踪**:当不需要更新或保存更改时,添加AsNoTracking可以提高查询性能。 2. **避免使用Include函数**:尽量不要使用Include来加载关联表,而是通过Select投影只获取所需的数据。这样可以减少SQL复杂性并提升性能。 3. **使用FirstOrDefaultAsync替代SingleOrDefaultAsync**:对于已知唯一的结果(如主键查找),使用FirstOrDefaultAsync比SingleOrDefaultAsync更高效,因为它避免了多余的TOP 2查询。 4. **防止客户端评估**:尽量让EF Core在服务器端执行计算。如果遇到无法翻译为SQL的操作,提前在代码中计算好条件值,再进行查询以避免客户端评估带来的性能损失。 5. **选择投影(Select)而非Include**:通过使用Select来定义所需的字段和关联数据,可以更高效地获取数据,同时避免不必要的表连接操作。 这些优化技巧可以帮助提升EF Core查询的效率和整体应用性能。--DeepSeek

Entity Framework SQL Performance Database Entity Framework Core Query Optimization