-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f389580
commit 72175c0
Showing
9 changed files
with
188 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
# MySelfLogLinker | ||
Simple console app to replicate data from a production EventStore to a local instance | ||
# LinkerConsoleApp | ||
Simple .Net Core console app to replicate data from a production EventStore to a local instance. This is an example of Data Redundancy using Linker nuget package and replicate EventStore instances or clusters across different networks. Edit appsettings.json file to set origin and destination info. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio Version 16 | ||
VisualStudioVersion = 16.0.29209.62 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LinkerConsoleApp", "LinkerConsoleApp\LinkerConsoleApp.csproj", "{65DC6EF9-3BC9-49DE-AB2D-716F269909A8}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{65DC6EF9-3BC9-49DE-AB2D-716F269909A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{65DC6EF9-3BC9-49DE-AB2D-716F269909A8}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{65DC6EF9-3BC9-49DE-AB2D-716F269909A8}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{65DC6EF9-3BC9-49DE-AB2D-716F269909A8}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(ExtensibilityGlobals) = postSolution | ||
SolutionGuid = {F647AAB1-A0DC-4A82-A1D9-8257190709B5} | ||
EndGlobalSection | ||
EndGlobal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<TargetFramework>netcoreapp2.2</TargetFramework> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="EventStore.Client" Version="5.0.2" /> | ||
<PackageReference Include="Linker" Version="1.1.0" /> | ||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" /> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="2.2.4" /> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.2.4" /> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.2.0" /> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" /> | ||
<PackageReference Include="NLog" Version="4.6.7" /> | ||
<PackageReference Include="NLog.Extensions.Logging" Version="1.5.4" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<None Update="appsettings.json"> | ||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||
</None> | ||
<None Update="appsettings.prod.json"> | ||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||
</None> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
namespace LinkerConsoleApp | ||
{ | ||
public class Origin | ||
{ | ||
public string ConnectionString { get; set; } | ||
public string User { get; set; } | ||
public string Pass { get; set; } | ||
public string ConnectionName { get; set; } | ||
} | ||
public class Destination | ||
{ | ||
public string ConnectionString { get; set; } | ||
public string User { get; set; } | ||
public string Pass { get; set; } | ||
public string ConnectionName { get; set; } | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
|
||
<targets> | ||
<target name="logconsole" xsi:type="Console" /> | ||
</targets> | ||
|
||
<rules> | ||
<logger name="*" minlevel="Debug" writeTo="logconsole" /> | ||
</rules> | ||
</nlog> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
using System; | ||
using Linker; | ||
using NLog; | ||
|
||
namespace LinkerConsoleApp | ||
{ | ||
public class NLogger : ILinkerLogger | ||
{ | ||
private static Logger Log = LogManager.GetCurrentClassLogger(); | ||
public void Info(string message) | ||
{ | ||
Log.Info(message); | ||
} | ||
|
||
public void Warn(string message) | ||
{ | ||
Log.Warn(message); | ||
} | ||
|
||
public void Warn(string message, Exception ex) | ||
{ | ||
Log.Warn($"{message}: {ex.GetBaseException().Message}"); | ||
} | ||
|
||
public void Error(string message) | ||
{ | ||
Log.Error(message); | ||
} | ||
|
||
public void Error(string message, Exception ex) | ||
{ | ||
Log.Error($"{message}: {ex.GetBaseException().Message}"); | ||
} | ||
|
||
public void Debug(string message) | ||
{ | ||
Log.Debug(message); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using EventStore.ClientAPI; | ||
using EventStore.ClientAPI.SystemData; | ||
using Linker; | ||
using Microsoft.Extensions.Configuration; | ||
using NLog; | ||
|
||
namespace LinkerConsoleApp | ||
{ | ||
class Program | ||
{ | ||
private static Logger Log = LogManager.GetCurrentClassLogger(); | ||
static void Main(string[] args) | ||
{ | ||
Log.Info("Building services..."); | ||
|
||
var env = Environment.GetEnvironmentVariable("CORE_ENVIRONMENT"); | ||
var builder = new ConfigurationBuilder() | ||
.SetBasePath(Directory.GetCurrentDirectory()) | ||
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false) | ||
.AddJsonFile($"appsettings.{env}.json", optional: true, reloadOnChange: false) | ||
.AddEnvironmentVariables(); | ||
var config = builder.Build(); | ||
|
||
var origin = config.GetSection("origin").Get<Origin>(); | ||
var destination = config.GetSection("destination").Get<Destination>(); | ||
var filterService = new FilterService(new List<Filter> | ||
{ | ||
new Filter { FilterOperation = FilterOperation.Exclude, FilterType = FilterType.Stream, Value = "diary-*" }, | ||
new Filter { FilterOperation = FilterOperation.Include, FilterType = FilterType.Stream, Value = "*" } | ||
}); | ||
|
||
var service = new LinkerService(new LinkerConnectionBuilder(new Uri(origin.ConnectionString), | ||
ConnectionSettings.Create().SetDefaultUserCredentials(new UserCredentials(origin.User, origin.Pass)), | ||
origin.ConnectionName), new LinkerConnectionBuilder(new Uri(destination.ConnectionString), | ||
ConnectionSettings.Create().SetDefaultUserCredentials(new UserCredentials(destination.User, destination.Pass)), | ||
destination.ConnectionName), filterService, Settings.Default(), new NLogger()); | ||
service.Start().Wait(); | ||
|
||
Log.Info("Replica Service started"); | ||
Log.Info("Press enter to exit the program"); | ||
Console.ReadLine(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"Environment": "local", | ||
"origin": { | ||
"connectionString": "tcp://localhost:1112", | ||
"user": "admin", | ||
"pass": "changeit", | ||
"connectionName": "origin-01" | ||
}, | ||
"destination": { | ||
"connectionString": "tcp://localhost:2112", | ||
"user": "admin", | ||
"pass": "changeit", | ||
"connectionName": "destination-01" | ||
} | ||
} |