Orleans的深入
1、序列化 序列化配置有几个坑这里我写出来
2、负载均衡
3、定时器与提醒
4、服务启动执行代码
5、监控
序列化
新建实体类
引用的包
Microsoft.Orleans.Core V2.12
Microsoft.Orleans.OrleansCodeGenerator.Build V2.12
Microsoft.Orleans.Serialization.Bond V2.12
using Bond; using System; namespace Entity { [Schema] [Serializable] public class GoodsEntity { public int ID { get; set; } public string GoodsName { get; set; } } }
两个标签缺一不可
所有的简仓全部需要配置 包括用来做网关的
网关使用BondSerializer
添加包
Microsoft.Orleans.OrleansGoogleUtils V2.12
var builder = new SiloHostBuilder() .Configure<SerializationProviderOptions>(d => { d.SerializationProviders.Add(typeof(ProtobufSerializer).GetTypeInfo()); d.FallbackSerializationProvider = typeof(ProtobufSerializer).GetTypeInfo(); })
所有的客户端全部需要配置
IClusterClient client = new ClientBuilder() .Configure<SerializationProviderOptions>(d => { d.SerializationProviders.Add(typeof(ProtobufSerializer).GetTypeInfo()); d.FallbackSerializationProvider = typeof(ProtobufSerializer).GetTypeInfo(); })
然后传递就可以用对象保存了
开启新的服务
网关需要引用实力类库 对于非可靠部署
如果添加新的实体需要重启网关
2、 负载均衡
若是使用同一个对象进行长时间运算则添加特性[StatelessWorker]
若是new不同的对象进行运算则会自动指定服务器进行运算
代码就不贴上了 只是非可靠部署的一些改变
序列化与负载均衡的下载地址:
3、定时器与提醒
4、服务启动任务
一个Grain启动完成后执行的任务
官网Doc写的很好
5、运行监控
现成的项目
https://github.com/OrleansContrib/OrleansDashboard
运行网关后访问127.0.0.1:8080 账号ABC 密码123
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!