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 @ 2018-11-04 12:53  AnAng  阅读(1140)  评论(0编辑  收藏  举报