Orleans 之 监控工具的使用
这一节,我们来说说orleans 中的几个实用工具,OrleansHost、OrleansCounterControl、OrleansManager、ClientGenerator。
1.OrleansHost
这个工具是一个主机寄宿或者部署的一个控制台应用程序,下面我们看一下他的用法。
从那里获取呢,直接点的办法就是在源码包里找到这个项目然后编译后得到的就是你需要的。
另外一种就是当你创建服务端然后安装了Microsoft.Orleans.Server包的时候,编译这个项目也会在编译包下生成出来。
我是直接编译源码包得到,如下:
一些dll,值得注意的是那个Configuration包,里面有个文件OrleansConfiguration.xsd,这个就是服务端文件配置所需的xsd验证文件,如果我们不知道配置文件需要那些节点的时候
可以查看该文件,可以将其复制到你的vs安装目录的xml环境中,就可以获得智能提示了,如下:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Xml\Schemas
我的安装目录,如果你的安装目录有变,你可以灵活调整了
看图
然后我们在OrleansHost.exe所在目录下创建OrleansConfiguration.xml文件用vs打开
添加根节点OrleansConfiguration,然后增加xmlns="urn:orleans",我们就可以得到智能提示了,如下图
接下来,我们配置一个基本的配置文件,内容如下
<?xml version="1.0" encoding="utf-8" ?> <OrleansConfiguration xmlns="urn:orleans"> <Globals> <StorageProviders> <Provider Type="Orleans.Storage.MemoryStorage" Name="MemoryStore" /> <Provider Type="Orleans.Storage.MemoryStorage" Name="Default" /> <!--<Provider Type="Orleans.Storage.AzureTableStorage" Name="AzureStore"/>--> </StorageProviders> <SeedNode Address="localhost" Port="22222"/> <Messaging ResponseTimeout="30s"/> </Globals> <Defaults> <Networking Address="localhost" Port="22222"/> <ProxyingGateway Address="localhost" Port="40000" /> <Tracing DefaultTraceLevel="Info" TraceToConsole="true" TraceToFile="{0}-{1}.log" PropagateActivityId="false" BulkMessageLimit="1000"> <TraceLevelOverride LogPrefix="Application" TraceLevel="Info" /> <!-- <TraceLevelOverride LogPrefix="Runtime.Dispatcher" TraceLevel="Verbose" /> <TraceLevelOverride LogPrefix="AssemblyLoader.Silo" TraceLevel="Warning" /> --> </Tracing> <Statistics MetricsTableWriteInterval="30s" PerfCounterWriteInterval="30s" LogWriteInterval="300s" WriteLogStatisticsToTable="true" StatisticsCollectionLevel="Info"/> </Defaults> </OrleansConfiguration>
好我们来运行一下这个看看,双击StartOrleans.cmd,程序跑完,有日志文件生成,大概浏览一遍,不太顺畅,有一些错误,少了一些dll的引用,少了OrleansCodeGenerator.dll,OrleansDependencyInjection.dll,再到源码包中直接生成该项目,然后将其生成产物拷贝到StartOrleans目录下,再次运行,一切如预料的那样,成功:
这里我整理的一个OrleansHost的部署包:OrleansHost
如有需要的可以直接下载使用。
再来看看他的一些使用的参数:
该工具有如下参数:/? 、/help、-?、-help、/debug、deploymentid=[value]、deploymentgroup=[value]。
这次我们先冲控制台进入该程序所在目录:
cmd-> d: -> cd D:\demo\OrleansHost ,如下:
如果我们什么参数都不带,改程序就直接启动
如果下面我们带上如上参数看看效果:OrleansHost /? 这个是寻求帮助的一个命令
OrleansHost /debug 这个是以调试环境启动
OrleansHost deploymentid=[value] 这个是给部署的当前silo起一个部署时的名称然后启动(这里的value将来是设置为siloname的)
OrleansHost deploymentgroup=[value]这个值暂时还没有启用,说不定后续版本会有用处
有个了这个工具我们直接将开发好的grain编译好的程序发布到该程序目录下就可以了,然后重启,不信你可以试一试,哈哈!
2.OrleansCounterControl
在于OrleansHost相同的目录下还有一个exe,就是OrleansCounterControl
如下图:
我们先用cmd进入该程序所在目录下
cd C:\Demo
接下来,我们先看看OrleansCounterControl有哪些参数
OrleansCounterControl /r,/register、/u、/unregister、/f、/force、/pause、/?、/help,我们来看看这些参数命令。
以管理员运行,如果OrleansCounterControl不带任何参数的时候,将运行服务端的一些序列化初始化,并输出一些控制台日志,且注册windows计数器
/r 或/register windows计数器注册
/u 或/unregister 取消windows计数器
/f 或 /force 删除计数器
/pause 是否有退出时提示
/? 或/help 帮助提示.
这些命令可以组合使用,如下图:OrleansCounterControl /r /pause
OrleansCounterControl /r /?
总结:这个工具用来进行管理程序的windows计数器管理工具.
3.OrleansManager
命令行定位到该程序目录下(此工具主要是用来在客户端,或者别的地方查看服务端上silo或者grain的一些状态信息。)
接下来看看命令参数:
OrleansManager [ ] [/?] [-?] 执行这个命令时会有一些帮助提示
OrleansManager grainstats [silo1,silo2,...] 用来查看统计查看silo的address、激活的数量、grain类型等。
fullgrainstats [silo1,silo2,...] 查看全部的grain的状态
collect [silo1,silo2,...]
unregister [silo1,silo2,...] 取消注册
lookup [silo1,silo2,...]
grainreport [silo1,silo2,...]
具体就不再这里讲解了,大家在开发过程中可以去探索。
4.ClientGenerator
先来看看工具传入的参数
参数要用【""】 来包装字符串,字符串内的参数可以用多个用【;】来分割,每一段代表一个路径,绝对路径,或者网络服务地址。
具体参数使用如下:
/r:[path];[path];[path];[path]
/reference:[path];[path];[path];[path] 这个可以使用的是一个目录或者是一个文本文件内指定多个文件。
/in:[path] 如果是单个文件使用,如a.cs,或者b.cs 。
/bootstrap
/boot
/sources:
/src:
就说到这里吧。