上篇我们讲了Orleans学习总结(三)--持久化篇,这一篇我们来说说集群配置,毕竟这个才是Orleans的看家本领
Orleans支持热起动,支持自动节点发现,能够断线重发等一系列黑科技。
我这篇是以Zookeeper为例说明。
一、开启Zookeeper
Zookeeper是什么和怎么配置我就这里就不赘述,自行百度。官方推荐至少开5个,我这做测试就只开1个。
二、安装Orleans的Zookeeper的依赖库
三、Host配置
1、在上篇里提到的OrleansConfiguration.xml配置文件
删除
<SeedNode Address="localhost" Port="11111" />
添加这一行
<SystemStore SystemStoreType="ZooKeeper"
DeploymentId="ZooKeeper"
DataConnectionString="192.168.0.68:2181"/>
DataConnectionString="192.168.0.68:2181",如果有多个Zookeeper,用,分开
<?xml version="1.0" encoding="utf-8"?><OrleansConfiguration xmlns="urn:orleans"> <Globals> <SystemStore SystemStoreType="ZooKeeper" DeploymentId="ZooKeeper" DataConnectionString="192.168.0.68:2181"/> <StorageProviders> <!--名字为Default1的持久化方式,MySQL--> <Provider Type="Orleans.Storage.AdoNetStorageProvider" Name="Default1" AdoInvariant="MySql.Data.MySqlClient" DataConnectionString="Server=192.168.0.209;Database=orleans;User Id=dbuser;Password=dbuser;" UseJsonFormat="true" /> </StorageProviders> </Globals> <Defaults> <!--Silo和Silo之间通信用的IP和端口--> <Networking Address="localhost" Port="11111" /> <!--Client用来链接Silo的IP和端口--> <ProxyingGateway Address="localhost" Port="40000" /> <!--Log配置--> <Tracing DefaultTraceLevel="Info" TraceToConsole="true" TraceToFile="..\log\{0}-{2}-{1}.log" WriteMessagingTraces="false"> <TraceLevelOverride LogPrefix="Application" TraceLevel="Info" /> <TraceLevelOverride LogPrefix="AssemblyLoader.Client" TraceLevel="Info" /> </Tracing> </Defaults> </OrleansConfiguration>
四、Client配置
在生成目录创建一个ClientConfiguration.xml文件
<?xml version="1.0" encoding="utf-8"?><ClientConfiguration xmlns="urn:orleans"> <SystemStore SystemStoreType="ZooKeeper" DeploymentId="ZooKeeper" DataConnectionString="192.168.0.68:2181"/> <Tracing DefaultTraceLevel="Info" TraceToConsole="false" TraceToFile="{0}-{2}-{1}.log" WriteMessagingTraces="false"> <TraceLevelOverride LogPrefix="Application" TraceLevel="Info" /> <TraceLevelOverride LogPrefix="AssemblyLoader.Client" TraceLevel="Warning" /> </Tracing></ClientConfiguration>
这里的DataConnectionString="192.168.0.68:2181,一定要和上面的一样。
2、 客户端加载这个配置
五、测试
在多台机器上开Host,和Client,然后尝试关闭某个Host,看Client是否能正常运行。