2016-06-17 10 views
5

Ich habe eine Cluster-Konfiguration mit zwei Knotentypen angegeben in der ServiceManifest.xmlWie kann ich lokale Cluster für zusätzliche Knotentypen

<?xml version="1.0" encoding="utf-8"?> 
<ServiceManifest Name="MKopa.M2M.ConfigurationPkg" 
       Version="1.0.0" 
       xmlns="http://schemas.microsoft.com/2011/01/fabric" 
       xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <ServiceTypes> 
    <!-- This is the name of your ServiceType. 
     This name must match the string used in RegisterServiceType call in Program.cs. --> 
    <StatelessServiceType ServiceTypeName="ConfigurationType"> 
     <PlacementConstraints>(NodeType == Internal)</PlacementConstraints> 
    </StatelessServiceType> 
    </ServiceTypes> 

    <!-- Code package is your service executable. --> 
    <CodePackage Name="Code" Version="1.0.0"> 
    <EntryPoint> 
     <ExeHost> 
     <Program>MKopa.M2M.Configuration.Service.exe</Program> 
     </ExeHost> 
    </EntryPoint> 
    </CodePackage> 

    <!-- Config package is the contents of the Config directoy under PackageRoot that contains an 
     independently-updateable and versioned set of custom configuration settings for your service. --> 
    <ConfigPackage Name="Config" Version="1.0.0" /> 

    <Resources> 
    <Endpoints> 
     <!-- This endpoint is used by the communication listener to obtain the port on which to 
      listen. Please note that if your service is partitioned, this port is shared with 
      replicas of different partitions that are placed in your code. --> 
     <Endpoint Name="ServiceEndpoint" /> 
     <Endpoint Name="HttpEndpoint" Protocol="http" Port="8081"/> 
    </Endpoints> 
    </Resources> 
</ServiceManifest> 

Mein Problem konfigurieren, dass dies die Bereitstellung auf dem lokalen Cluster verursacht, wie dies zum Scheitern verurteilt NodeType ist im lokalen Cluster nicht vorhanden.

Ich habe erwähnt, die cluster.xml Datei und ich habe es gefunden, aber Änderungen daran scheint keine Wirkung zu haben. Ich habe einen Reset versucht, starte und stoppe aber der Reset überschreibt die Änderungen.

Ist hier hofft, dass die Antwort nicht die Dienste startet dynamisch :-)

Antwort

6

Ich weiß nicht, wie es funktioniert, während der Cluster ausgeführt wird, aber ich war in der Lage, es zu tun durch eine erneute Installation der lokalen Cluster. Das waren meine Schritte:

  • Zum C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\
  • Deinstallieren Sie die vorhandenen Cluster durch den Aufruf .\CleanCluster.ps1
  • Erstellen Sie eine Sicherungskopie der Datei C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\NonSecure\ClusterManifestTemplate.xml
  • Jetzt können Sie diese Datei anpassen und fügen Sie Placement-Eigenschaften zu jedem Knoten :
<NodeType ...> 
    <Endpoints>...</Endpoints> 
    <PlacementProperties> 
    <Property Name="NodeType" Value="Internal" /> 
    </PlacementProperties> 
</NodeType> 
  • neu erstellen Sie den Cluster von .\DevClusterSetup.ps1 Aufruf
+0

Dieses eine Behandlung funktionierte! –

+0

Wenn Sie mit Win7 arbeiten, müssen Sie die Vorlage "ClusterManifestTemplate_Win7.xml" ändern. – Creamstout10

+0

Gibt es eine Möglichkeit zum Hinzufügen von zusätzlichen Menüelement zu "Service Fabric Local Cluster Manager" für meine eigenen Konfigurationen? –