Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Traefik | 44,778 | 27 | 2 days ago | 183 | July 24, 2023 | 635 | mit | Go | ||
The Cloud Native Application Proxy | ||||||||||
Patroni | 5,754 | 1 | 3 days ago | 67 | August 03, 2023 | 51 | mit | Python | ||
A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes | ||||||||||
Discovery | 5,312 | 1 | 2 months ago | 436 | March 20, 2023 | 10 | apache-2.0 | Java | ||
☀️ Nepxion Discovery is a solution for Spring Cloud with blue green, gray, route, limitation, circuit breaker, degrade, isolation, tracing, dye, failover, active 蓝绿灰度发布、路由、限流、熔断、降级、隔离、追踪、流量染色、故障转移、多活 | ||||||||||
Light 4j | 3,505 | 129 | 29 | 2 days ago | 180 | August 08, 2023 | 30 | apache-2.0 | Java | |
A fast, lightweight and more productive microservices framework | ||||||||||
Surging | 3,198 | 7 | 30 | 6 months ago | 27 | April 21, 2019 | 251 | mit | C# | |
Surging is a micro-service engine that provides a lightweight, high-performance, modular RPC request pipeline. support Event-based Asynchronous Pattern and reactive programming ,The service engine supports http, TCP, WS,Grpc, Thrift,Mqtt, UDP, and DNS protocols. It uses ZooKeeper and Consul as a registry, and integrates it. Hash, random, polling, Fair Polling as a load balancing algorithm, built-in service governance to ensure reliable RPC communication, the engine contains Diagnostic, link tracking for protocol and middleware calls, and integration SkyWalking Distributed APM | ||||||||||
Dynamic Tp | 2,878 | 4 days ago | 7 | June 13, 2022 | 32 | apache-2.0 | Java | |||
🔥🔥🔥轻量级动态线程池,内置监控告警功能,集成三方中间件线程池管理,基于主流配置中心(已支持Nacos、Apollo,Zookeeper、Consul、Etcd,可通过SPI自定义实现)。Lightweight dynamic threadpool, with monitoring and alarming functions, base on popular config centers (already support Nacos、Apollo、Zookeeper、Consul, can be customized through SPI). | ||||||||||
Dockerfiles | 1,160 | 2 months ago | 15 | mit | Shell | |||||
50+ DockerHub public images for Docker & Kubernetes - DevOps, CI/CD, GitHub Actions, CircleCI, Jenkins, TeamCity, Alpine, CentOS, Debian, Fedora, Ubuntu, Hadoop, Kafka, ZooKeeper, HBase, Cassandra, Solr, SolrCloud, Presto, Apache Drill, Nifi, Spark, Consul, Riak | ||||||||||
Nagios Plugins | 1,105 | 2 months ago | 66 | other | Python | |||||
450+ AWS, Hadoop, Cloud, Kafka, Docker, Elasticsearch, RabbitMQ, Redis, HBase, Solr, Cassandra, ZooKeeper, HDFS, Yarn, Hive, Presto, Drill, Impala, Consul, Spark, Jenkins, Travis CI, Git, MySQL, Linux, DNS, Whois, SSL Certs, Yum Security Updates, Kubernetes, Cloudera etc... | ||||||||||
Jim Framework | 534 | 10 months ago | 11 | apache-2.0 | Java | |||||
一些公共组件及学习应用:RPC/统一配置中心/基于注解的分布式锁/dubbo请求级缓存/调用链追踪/RabbitMQ/Elasticsearch/zookeeper/Sping boot | ||||||||||
Traefik Certs Dumper | 375 | 2 months ago | 37 | December 12, 2021 | 15 | other | Go | |||
Dump ACME data from Traefik to certificates |
surging
,,,.net core surging.net core,
CRUD
service host,eventbus,rpc
docker k8srancherdocker
2.ServiceId RoutePath
3.surging
Devops,
docker hub : docker pull serviceengine/surging:
nuget:Install-Package surging -Version
var host = new ServiceHostBuilder()
.RegisterServices(builder =>
{
builder.AddMicroService(option =>
{
option.AddServiceRuntime();//
option.AddRelateService();//
option.AddConfigurationWatch();//
// 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
// option.UseProtoBufferCodec();//protobuf
option.UseMessagePackCodec();//MessagePack
builder.Register(p => new CPlatformContainer(ServiceLocator.Current));//
});
})
.SubscribeAt() //
//.UseServer("127.0.0.1", 98)
//.UseServer("127.0.0.1", 98true) //Token
//.UseServer("127.0.0.1", 98123456789) //Token
.UseServer(options=> {
options.Ip = "127.0.0.1";
options.Port = 98;
//options.IpEndpoint = new IPEndPoint(IPAddress.Any, 98);
//options.Ip = "0.0.0.0";
options.ExecutionTimeoutInMilliseconds = 30000; //
options.Strategy=(int)StrategyType.Failover; //
options.RequestCacheEnabled=true; //
options.Injection="return null"; //
options.InjectionNamespaces= new string[] { "Surging.IModuleServices.Common" }); //
options.BreakeErrorThresholdPercentage=50; //
options.BreakeSleepWindowInMilliseconds=60000; //
options.BreakerForceClosed=false; //
options.BreakerRequestVolumeThreshold = 20;//10
options.MaxConcurrentRequests=100000;//
options.ShuntStrategy=AddressSelectorMode.Polling; //
options.NotRelatedAssemblyFiles = "Centa.Agency.Application.DTO\\w*|StackExchange.Redis\\w*"; //
})
//.UseLog4net("Configs/log4net.config") //log4net
.UseNLog(LogLevel.Error, "Configs/NLog.config")// NLog
//.UseLog4net(LogLevel.Error) //log4net
//.UseLog4net() //log4net
.Configure(build =>
build.AddEventBusFile("eventBusSettings.json", optional: false))//eventBusSettings.json
.Configure(build =>
build.AddCacheFile("cacheSettings.json", optional: false))//cacheSettings.json
.UseProxy() //Proxy
.UseStartup<Startup>()
.Build();
using (host.Run())
{
Console.WriteLine($"{DateTime.Now}");
}
{
"ConnectionString": "${Register_Conn}|127.0.0.1:8500", // ${} |,
"SessionTimeout": "${Register_SessionTimeout}|50",
"ReloadOnChange": true
}
{
"Ip": "${Server_IP}|127.0.0.1",
"WatchInterval": 30,
"Port": "${Server_port}",
"Token": "true",
"Protocol": "${Protocol}|Tcp", //Http,Tcp
"RootPath": "${RootPath}",
"RequestCacheEnabled": false
}
{
"Ip": "${Server_IP}|0.0.0.0",//IP
"WatchInterval": 30,
"Port": "${Server_port}|98",//
"MappingIp": "${Mapping_ip}",//IP
"MappingPort": "${Mapping_Port}",//
"Protocol": "${Protocol}|Tcp", //Http,Tcp
"Token": "true",
"RootPath": "${RootPath}",
"RequestCacheEnabled": false
}
[ServiceBundle("api/{Service}")]
JWT
[Authorization(AuthType = AuthorizationType.JWT)];
AppSecret
[Authorization(AuthType = AuthorizationType.AppSecret)];
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.5,vscode
.NET core 2.1
QQ615562965