zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    bzoj2004(矩阵快速幂,状压DP)
    bzoj1242(弦图判定)
    uva1659(最大费用循环流)
    bzoj1009
    bzoj2893(费用流)
    bzoj4873(最大权闭合子图)
    bzoj2879(动态加边费用流)
    51nod 1239 欧拉筛模板
    poj2774 sa模版
    洛谷3391文艺平衡树
  • 原文地址:https://www.cnblogs.com/AnAng/p/9903617.html
Copyright © 2011-2022 走看看