1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/stoneson-stone-surging

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.EN.md

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();

Увеличение отказоустойчивости сервиса, принудительное понижение и обслуживание:

  • Увеличение стратегии отказоустойчивости Injection, локальная инъекция модуля:
[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.

Блог: https://www.cnblogs.com/fanliang11.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Surging — это движок микросервиса, который обеспечивает лёгкий, высокопроизводительный и модульный конвейер запросов RPC. Движок сервиса поддерживает протоколы HTTP, TCP, WS, gRPC, Thrift, MQTT, UDP и DNS. В качестве реестра он использует ZooKeeper и Consul и интегрируется с ними. Балансировка нагрузки осуществляется с помощью алгоритмов Hash,... Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/stoneson-stone-surging.git
git@api.gitlife.ru:oschina-mirror/stoneson-stone-surging.git
oschina-mirror
stoneson-stone-surging
stoneson-stone-surging
master