surging
Surging — это распределённая микросервисная среда, которая обеспечивает высокопроизводительные RPC-вызовы удалённых служб с использованием Zookeeper и Consul в качестве регистрационного центра для сервисов Surging. Она интегрирует хеш, случайный выбор и опрос в качестве алгоритма балансировки нагрузки, а также использует Netty для интеграции RPC и асинхронную передачу данных.
var host = new ServiceHostBuilder()
.RegisterServices(builder =>
{
builder.AddMicroService(option =>
{
option.AddServiceRuntime();//
// option.UseZooKeeperManager(new ConfigInfo("127.0.0.1:2181")); //Использование управления Zookeeper
option.UseConsulManager(new ConfigInfo("127.0.0.1:8500"));//Использование управления Consul
option.UseDotNettyTransport();//Использование передачи через Netty
option.UseRabbitMQTransport();//Использование передачи RabbitMQ
option.AddRabbitMQAdapt();//На основе потребления адаптация службы RabbitMQ
builder.Register(p => new CPlatformContainer(ServiceLocator.Current));//Инициализация контейнера внедрения
});
})
.SubscribeAt() //Новостные ленты
.UseServer("127.0.0.1", 98)
//.UseServer("127.0.0.1", 98,“true”) //Автоматическое создание токена
//.UseServer("127.0.0.1", 98,“123456789”) //Фиксированный пароль токена
.UseLog4net("Configs/log4net.config") //Использование log4net для создания журнала
.UseLog4net() //Использование log4net для создания журнала
.UseStartup<Startup>()
.Build();
using (host.Run())
{
Console.WriteLine($"Сервер успешно запущен, {DateTime.Now}。");
}
ServiceLocator.GetService< ISubscriptionAdapt >().SubscribeAt();
Увеличение отказоустойчивости сервиса, принудительное понижение и обслуживание:
[Command(Strategy= StrategyType.Injection ,Injection = @"return null;")]
[Command(Strategy= StrategyType.Injection ,Injection = @"return
Task.FromResult(new Surging.IModuleServices.Common.Models.UserModel
{
Name=""fanly"",
Age=18
});",InjectionNamespaces =new string[] { "Surging.IModuleServices.Common"})]
[Command(Strategy= StrategyType.Injection ,Injection = @"return true;")]
Добавить следующие функции в методы бизнес-интерфейса:
[Command(Strategy= StrategyType.Failover,FailoverCluster =3,RequestCacheEnabled =true)] //RequestCacheEnabled =true — включить кэш
Как перехватить доступ к кэшу?
Добавить следующие функции в методы бизнес-интерфейса:
[InterceptMethod(CachingMethod.Get, Key = "GetUser_id_{0}", Mode = CacheTargetType.Redis, Time = 480)]
Как перехват удалить кэш?
Добавить следующие функции в методы бизнес-интерфейса:
[InterceptMethod(CachingMethod.Remove, "GetUser_id_{0}", "GetUserName_name_{0}", Mode = CacheTargetType.Redis)]
Как добавить ключ кэша?
В атрибуте бизнес-модели для добавления. Следующие функции могут поддерживать несколько…
[CacheKey(1)]
Настройка перехватчиков:
.AddClientIntercepted(typeof(CacheProviderInterceptor))
IDE: Visual Studio 2017 15.3 Preview, vscode.
Framework: .NET core 2.0.
Если есть какие-либо вопросы, можно присоединиться к QQ группе: 542283494 или Gitter: not room.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )