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不同的对象进行运算则会自动指定服务器进行运算

 

代码就不贴上了  只是非可靠部署的一些改变

序列化与负载均衡的下载地址:

负载均衡Demo

 

3、定时器与提醒

定时器与提醒地址

4、服务启动任务

一个Grain启动完成后执行的任务

官网Doc写的很好

链接

5、运行监控

现成的项目

https://github.com/OrleansContrib/OrleansDashboard

DEMO地址 

运行网关后访问127.0.0.1:8080 账号ABC 密码123

 

posted @   AnAng  阅读(1169)  评论(0编辑  收藏  举报
编辑推荐:
· 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 让容器管理更轻松!
点击右上角即可分享
微信分享提示