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

  • 相关阅读:
    MySQL8.0 不能使用group by解决方法
    xtrabackup备份恢复
    pycharm使用
    CMDB开发(三)
    Restful接口规范
    django-rest-framework框架(一)
    CMDB开发(二)
    CMDB开发(一)
    数据可视化之matplotlib模块
    数据分析之pyecharts v1版本
  • 原文地址:https://www.cnblogs.com/AnAng/p/9903617.html
Copyright © 2011-2022 走看看