微服务

Awesome Microservices Awesome

与微服务架构相关的原理和技术的精选列表.

Platforms

  • Ballerina -云原生编程语言.
  • Express Serverless -一个开源的Kubernetes原生微服务和无服务器平台.
  • Hook.io -微服务和Webhook托管的开源提供商. -[KintoHub![c]](https://www.kintohub.com)-微服务包管理器,使开发人员能够轻松构建和共享云就绪功能. -[Lightbend![c]](https://www.lightbend.com/)-用于在JVM上构建可伸缩反应系统的平台.
  • Mantl -快速部署全球分布式服务的平台.
  • Netflix OSS -Netflix开源软件生态系统.
  • OpenWhisk -无服务器的开源云平台,可以执行各种规模的事件响应功能.
  • Pulumi -用于云原生基础架构的SDK作为代码. 使用您喜欢的语言预览和管理对应用程序和基础结构的更新,并持续部署到任何云(无需YAML).
  • STUPS -Zalando的一组工具和组件,可为AWS之上的多个自治团队提供方便且符合审计要求的PaaS. -[VAMP![c]](http://vamp.io/)-轻松构建,部署和管理微服务.

Frameworks / Runtimes

  • Akka -用于在JVM上构建高度并发,分布式和弹性消息驱动的应用程序的工具包和运行时. -[Axon![c]](https://axoniq.io/)-一个端到端的开发和基础架构平台,用于在JVM上轻松开发和运行任何DDD,CQRS和事件源应用程序.
  • Baratine -用于构建松耦合的POJO微服务网络的平台.
  • Eclipse Microprofile -一个开放式论坛,通过跨多个实现进行创新并以标准化为目标在感兴趣的公共领域进行协作,从而为微服务架构优化Enterprise Java.
  • Erlang/OTP -用于构建对高可用性有要求的大规模可扩展软实时系统的编程语言.
  • Finagle -用于JVM的可扩展RPC系统,用于构建高并发服务器.
  • Flogo -Flogo是一个开放源代码框架,可简化构建高效,现代的无服务器功能和边缘微服务的过程.
  • GPars -JVM的并发和并行框架.
  • Grenache -基于Bittorent-DHT的微服务框架,支持多种传输上的REQ / REP和PUB / SUB模式.
  • Ice - Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python, and more.
  • Lagom -用于JVM的反应微服务.
  • Light-4j -高吞吐量,低延迟,较小的内存占用空间和更高生产率的微服务平台.
  • Micro -微服务开发运行时.
  • Microserver -Java 8本机,零配置,基于标准的,经过战斗加固的库,可以运行Java REST微服务.
  • Moleculer -适用于Node.js,Java,Go和Ruby的快速而强大的微服务框架.
  • Open Liberty -用于构建快速,高效的云原生Java微服务的轻量级开放框架.
  • Orbit -JVM语言的现代框架,使构建和维护分布式和可伸缩的在线服务变得更加容易.
  • SmallRye -专为云开发量身定制的API和实现,包括Eclipse MicroProfile.
  • Thorntail -通过将Java EE应用程序打包到足够的服务器运行时来打包和运行Java EE应用程序的一种创新方法,以“ java -jar”应用程序.
  • Quasar -JVM的光纤,通道和参与者.
  • ScaleCube -用于为JVM构建响应式微服务的工具包:低延迟,高吞吐量,可扩展且具有弹性.
  • Vert.X -用于在JVM上构建响应式应用程序的工具包.
  • Vert.X Toolbox -一组Vert.x组件,用于构建响应式微服务应用程序.
  • Wangle -一个框架,提供了一组通用的客户端/服务器抽象,以一致,模块化和可组合的方式构建服务.

Service Toolkits

Polyglot

  • Apex -用于部署和管理AWS Lambda功能的工具. 使用针对Lambda尚不支持的语言的垫片,您可以立即使用Golang.
  • CoAP -受限的应用协议实现.
  • GRPC - A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. Libraries in C, C++, Java, Go, Node.js, Python, Ruby, Objective-C, PHP and C#.
  • Hprose -一个非常新颖的RPC库,现在支持25种以上的语言.

C

  • Kore -易于使用的Web应用程序框架,用于用C编写可扩展的Web API.
  • Libasyncd -C的可嵌入的基于事件的异步HTTP服务器库.
  • Libslack -提供面向通用代理的编程模型,锁定策略的运行时选择,使编写守护程序变得微不足道并简化网络服务器和客户端&c的实现的功能.
  • Lwan -高性能和可扩展的Web服务器.
  • Onion -C库可创建简单的HTTP服务器和Web应用程序.
  • RIBS2 -可以建立高性能互联网服务系统的图书馆.

C++

  • AnyRPC -提供了一个通用系统来与许多不同的远程过程调用标准一起使用,包括:JSON-RPC,XML-RPC,MessagePack-RPC.
  • Cap’n Proto RPC -Cap'n Proto C ++ RPC实现.
  • C++ Micro Services -类似于OSGi的C ++动态模块系统和服务注册表.
  • Enduro/X -用于GNU / Linux的基于XATMI的服务框架.
  • Pion -用于构建轻量级HTTP接口的C ++框架.
  • Pistache -用C ++编写的高性能REST工具包.
  • Poco -用于构建基于网络的应用程序和服务器的C ++类库.
  • Restbed -为C ++ 11应用程序带来了RESTful异步功能.
  • Served -用于构建高性能RESTful Web服务器的C ++库.
  • ULib -用于编写C ++应用程序的高度优化的类框架.

CSharp

  • Akka.NET -用于在.NET和Mono上构建高度并发,分布式和容错事件驱动的应用程序的工具包和运行时.
  • Microdot -开源.NET微服务框架.
  • Nancy -轻量级的Web框架.
  • Orleans -提供了一种直接的方法来构建分布式大规模计算应用程序,而无需学习和应用复杂的并发或其他扩展模式.

D

  • Vibe.d -用D编写的不会妨碍您的异步I / O.

Erlang VM

Elixir

  • Phoenix -用于构建HTML5应用,API后端和分布式系统的框架.
  • Plug -Web应用程序之间可组合模块的规范和便利.

Erlang

  • Cowboy -用Erlang编写的小型,快速的模块化HTTP服务器.
  • Mochiweb -用于构建轻量级HTTP服务器的Erlang库.

Go

  • Echo -用于Go的快速而荒唐的HTTP服务器框架. 比其他产品快10倍.
  • Enduro/X ASG -Go的Enduro / X绑定允许使用Go语言有效地编写基于XATMI的微服务. 使用Unix内核IPC(队列)进行快速的进程通信.
  • Gin -Gin是用Go(Golang)编写的HTTP Web框架. 它具有类似于Martini的API,性能更高-快40倍.
  • Gizmo -微服务工具包.
  • Goa -Go中基于设计的HTTP微服务.
  • Gocraft -用于构建Web应用程序的工具包. 包括路由,中间件堆栈,日志记录和监视.
  • Goji -Go的简约灵活的请求多路复用器.
  • Go kit -用于现代企业中的微服务的分布式编程工具包.
  • Go-micro -可插拔的RPC微服务框架.
  • Gopencils -通过Go轻松使用REST API.
  • Gorilla -用于Go编程语言的Web工具包.
  • Iris -用于Go的快速,简单和高效的微型Web框架.
  • Kite -Go中的微服务框架.
  • KrakenD -使用中间件构建超高性能API网关的框架.
  • Libchan -超轻量级的网络库,可让网络服务以与goroutine使用通道进行通信相同的方式进行通信.
  • Martini -Martini是一个功能强大的软件包,用于在Golang中快速编写模块化的Web应用程序/服务.
  • Micro -Go中的微服务工具链.
  • Nano -简约,与运输无关且易于测试的微服务框架.
  • Negroni -Golang的惯用HTTP中间件.
  • Neutrino -实时/ REST后端服务.
  • RPCX -基于NET / RPC的分布式RPC服务框架,例如Alibaba Dubbo和Weibo Motan.
  • Sleepy -休息.
  • Vamp-router -服务路由,负载平衡和筛选应用程序.

Haskell

  • Scotty -微型Web框架,受Ruby的Sinatra启发,使用WAI和Warp.
  • Servant -类型级别的Web DSL.
  • Yesod -Haskell RESTful Web框架.

Java VM

Clojure

  • Compojure -用于Ring / Clojure的简洁路由库.
  • Duct -在Clojure中构建Web应用程序的最小框架,特别强调简单性.
  • Friboo -用于在Clojure中编写微服务的实用程序库,并支持Swagger和OAuth.
  • Liberator -帮助您将数据公开为资源,同时自动符合HTTP规范的所有相关要求的库.
  • Modularity -JUXT基于Clojure的模块化系统.
  • System -基于Stuart Sierra的组件库,提供了一组现成的组件.
  • Tesla -Otto.de的Clojure微服务的通用基础.

Java

  • Airlift -用Java构建REST服务的框架.
  • Armeria -基于Java 8,Netty,Thrift和gRPC构建的开源异步HTTP / 2 RPC / REST客户端/服务器库.
  • Disruptor -高性能线程间消息传递库.
  • Dropwizard -用于开发对ops友好的高性能RESTful Web服务的Java框架.
  • Dubbo -阿里巴巴开源的基于Java的高性能RPC框架.
  • HTTP Remoting -用于基于Feign或Retrofit定义和创建RESTish / RPC服务器和客户端的库,并使用JAX-RS服务定义作为服务器的Dropwizard / Jersey.
  • Ja-micro -用于构建微服务的轻量级Java框架(与go-micro兼容).
  • Jersey -Java中的RESTful服务. JAX-RS参考实现.
  • Micronaut - A modern, JVM-based, full-stack framework for building modular, easily testable microservice applications.
  • MSF4J -高吞吐量和低内存占用的Java微服务框架.
  • QBit -用于构建微服务的反应式编程库.
  • Ratpack -一组Java库,可促进快速,高效,可发展且经过良好测试的HTTP应用程序. 提供了对Groovy语言的特定支持.
  • Restlet -帮助Java开发人员构建遵循REST体系结构样式的Web API.
  • Spark -用于以最小的努力在Java 8中创建Web应用程序的微型框架.
  • Spring Boot -使创建基于生产的独立生产级Spring应用程序变得容易.

Kotlin

  • Http4k -用纯Kotlin编写的轻量级但功能齐全的HTTP工具包,可通过功能一致的方式来提供和使用HTTP服务.
  • Ktor -使用Kotlin编程语言在连接的系统中构建异步服务器和客户端的框架.

Scala

  • Akka HTTP -开源工具包,用于在Scala和Akka之上构建基于REST / HTTP的集成层.
  • Colossus -Scala的I / O和微服务库.
  • Finatra -建立在Twitter服务器和Finagle上的快速,可测试的Scala HTTP服务.
  • Http4s -HTTP的最小,惯用的Scala界面
  • Play -Java和Scala的高速Web框架.
  • Scalatra -简单,可访问且免费的Web微框架.
  • Skinny Micro -在Scala中构建servlet应用程序的微网络框架.
  • Squbs -一套组件,可在大规模托管云环境中实现Akka和Akka HTTP应用程序/服务的标准化和可操作性.

Node.js

  • Actionhero -具有集成集群功能和延迟任务的多传输Node.js API服务器.
  • Baucis -建立和维护可扩展的HATEOAS / Level 3 REST API.
  • ClaudiaJS -易于将Node.js项目部署到AWS Lambda和API网关.
  • Cote -用于构建零配置微服务的Node.js库.
  • Express -适用于Node.js的快速,不受限制的极简Web框架
  • Fastify -适用于Node.js的Fastify,快速且低开销的Web框架.
  • FeathersJS -适用于现代应用程序的开源REST和实时API层.
  • Graft -通过微服务的全栈javascript.
  • Hapi -用于构建应用程序和服务的丰富框架.
  • Hudson Taylor -用于构建自动记录的,经过验证的服务的库集.
  • Koa -Node.js的下一代Web框架
  • Loopback -用于创建API并轻松连接到后端数据源的Node.js框架.
  • Micro -异步HTTP微服务.
  • Micro Panda -Node.js工具包,可帮助构建微服务.
  • Micro-Whalla -用于在Node.js中编写微服务的简单,快速的框架,使用RPC / IPC进行通信.
  • Restify -专为使您能够构建正确的REST Web服务而构建的Node.js模块.
  • Seneca -用于Node.js的微服务工具包
  • Serverless -构建和维护在AWS Lambda和API网关(以前称为JAWS)上运行的Web,移动和IoT应用程序.
  • Steriods Framework -类固醇框架通过使开发人员能够将更多的精力放在业务/域逻辑上,而不是将精力放在技术细节上,从而简化了使用TypeScript的无服务器微服务的开发.
  • StdLib - Standard library for microservices.

Perl

  • Cro -使用Perl 6创建反应式分布式系统的库.
  • Mojolicious -Perl的下一代Web框架.

PHP

  • API Platform -Symfony之上具有JSON-LD,Schema.org和Hydra支持的API优先的Web框架.
  • Fat-Free -一个功能强大但易于使用的PHP微框架.
  • Flight -可扩展的微框架.
  • Lumen -惊人的快速微框架.
  • Phalcon -作为C扩展提供的全栈PHP框架.
  • Slim -微框架,可帮助您快速编写简单但功能强大的Web应用程序和API.
  • Symfony -基于Symfony组件的微框架.
  • Upswarm -用于编写面向服务的应用程序的多处理,异步,容错微框架.

Python

  • Aiohttp -用于异步的HTTP客户端/服务器.
  • Bottle -适用于Python的快速,简单,轻巧的WSGI微型网络框架.
  • Falcon -裸机Python Web API框架,用于构建非常快速的应用程序后端和微服务.
  • Flask -基于Werkzeug和Jinja 2的微服务Python框架.
  • Nameko -用于构建微服务的Python框架.
  • Sanic -Sanic是类似于Flask的Python 3.5+网络服务器,其编写速度很快.
  • Tornado -Web框架和异步网络库.
  • Twisted -事件驱动的网络编程引擎.
  • Web.py -适用于Python的简约Web框架.
  • Zappa -用于构建和部署无服务器Python事件驱动的Web应用程序的框架.
  • Connexion -Flask之上的Swagger / OpenAPI First Python框架,具有自动端点验证和OAuth2支持.

Ruby

  • Grape -用于创建类似REST的API的可靠框架
  • Hanami -Ruby的现代Web框架.
  • Praxis -设计和实现API的框架.
  • Rails API -Rails仅作为API.
  • Scorched -Ruby的轻量级Web框架.
  • Sinatra -Sinatra是一种DSL,用于以最少的工作量在Ruby中快速创建Web应用程序.

Frontend / UI

Capabilities

API Gateways / Edge Services

>注意 data and control plane 组件目前未分类.

  • Amalgam8 -用于多语言微服务的基于内容的路由结构.
  • Ambassador -用于基于Envoy的微服务的Kubernetes原生API网关.
  • Annon -具有以Elixir编写的内置API管理,身份验证和状态页面的开源API网关.
  • Caddy -具有自动HTTPS的可扩展HTTP / 2 Web服务器.
  • Camel -使您能够使用多种特定于域的语言定义路由和中介规则,包括基于Java的流畅API,Spring或Blueprint XML配置文件以及Scala DSL.
  • Envoy -来自Lyft开发人员的开源边缘和服务代理.
  • Express Gateway -基于Express.js构建的微服务API网关.
  • Fabio -快速,现代,零配置的负载均衡HTTP / S路由器,用于部署由Consul管理的微服务.
  • HAProxy -可靠的高性能TCP / HTTP负载平衡器.
  • Istio -连接,管理和保护微服务的开放平台.
  • Janus -用Go编写的API网关.
  • Keepalived -简单而强大的功能,用于Linux系统和基于Linux的基础架构的负载平衡和高可用性.
  • Kong -API的开源管理层.
  • KrakenD -开源超高性能API网关.
  • Linkerd -云原生应用的弹性服务网格.
  • Neutrino -可扩展的软件负载平衡器.
  • OpenResty -基于Nginx构建的快速Web应用程序服务器.
  • Otoroshi -具有轻量级API管理的现代HTTP反向代理.
  • Skipper -HTTP路由器,用于将路由与服务逻辑解耦.
  • Spring Cloud Gateway -Spring MVC之上的API网关. 旨在提供一种简单而有效的路由到API的方法.
  • Tengine -具有一些高级功能的Nginx发行版.
  • Træfɪk -现代化的HTTP反向代理和负载均衡器,可轻松部署微服务.
  • Traffic Server -云服务的高性能构建块.
  • Tyk -开源,快速且可扩展的API网关,门户和API管理平台.
  • Vulcand -由Etcd支持的程序化负载均衡器.
  • Zuul -边缘服务,提供动态路由,监视,弹性,安全性等.

Configuration & Discovery

  • Central Dogma -基于Git,ZooKeeper和HTTP / 2的开源高可用性版本控制的服务配置存储库.
  • Consul -服务发现和配置变得容易. 分布式,高可用性和数据中心感知.
  • ContainerPilot -用于自动发现和配置在容器中运行的应用程序的服务.
  • Denominator -使用Java或bash轻松控制DNS云.
  • Doozer -高可用性,完全一致的存储少量数据. 数据更改时,它可以立即通知连接的客户端.
  • Etcd -高可用性的键值存储,用于共享配置和服务发现.
  • Eureka -基于REST的服务,主要在AWS云中用于定位服务,以实现负载均衡和中间层服务器的故障转移.
  • Microphone -轻巧的.NET框架,可在Consul或Etcd群集之上使用Web Api或NancyFx运行自托管REST服务.
  • Registrator -Docker的服务注册表网桥. 支持可插拔服务注册表,当前包括Consul,Etcd和SkyDNS 2.
  • Shaman -小型,轻量,API驱动的DNS服务器.
  • SkyDNS -用于发布和发现基于etcd的服务的分布式服务. 它利用DNS查询来发现可用的服务.
  • SmartStack -Airbnb的自动服务发现和注册框架.
  • Spring Cloud Config -为分布式系统中的外部化配置提供服务器和客户端支持.
  • ZooKeeper -开源服务器,可实现高度可靠的分布式协调.

Coordination & Governance

-[AWS Step Functions![c]](https://aws.amazon.com/step-functions/)-使用可视化工作流协调分布式应用程序和微服务的组件. -[Azuqua![c]](https://azuqua.com/)-分布式应用程序的编排和治理平台. - Cadence -可以忽略故障的有状态代码平台. - Conductor -微服务编排引擎. - Fission Workflows -用于无服务器功能的基于工作流的可靠功能组合. - Zeebe -定义,协调和监视微服务中的业务流程.

Elasticity

  • Galaxy -开源高性能内存数据网格.
  • Grape -实时处理管道.
  • Hazelcast -开源内存数据网格. 允许您跨服务器,群集和地理位置分布数据和计算,并管理非常大的数据集或很高的数据摄取率. 技术成熟.
  • Helix -通用群集管理框架,用于自动管理托管在节点群集上的分区,复制和分布式资源.
  • Ignite -高性能,集成和分布式内存平台,用于实时处理和处理大规模数据集,比传统的基于磁盘或闪存的技术快几个数量级.
  • Marathon -在Apache Mesos之上大规模部署和管理容器(包括Docker).
  • Mesos -从计算机(物理或虚拟)中提取CPU,内存,存储和其他计算资源,从而可以轻松地构建和有效运行容错和弹性的分布式系统.
  • Nomad -分布式,高可用性,数据中心感知的调度程序.
  • Onyx -Clojure的分布式,无主控,高性能,容错数据处理.
  • Ordasity -旨在将持久或长期存在的工作负载分散到多台计算机上.
  • Redisson -在Redis服务器之上的分布式可伸缩Java数据结构.
  • Serf -集群成员,故障检测和编排的分散解决方案.

Job Schedulers / Workload Automation

  • Celery -基于分布式消息传递的异步任务队列/作业队列. 专注于实时操作并支持调度.
  • Chronos -Mesos的容错作业计划程序,可处理依赖项和基于ISO8601的计划.
  • Fenzo -Mesos框架的可扩展调度程序.
  • JobScheduler -用于企业级工作负载自动化的开源解决方案. 它用于启动可执行文件和Shell脚本并自动运行数据库过程.
  • Rundeck - Job scheduler and runbook automation. Enable self-service access to existing scripts and tools.
  • Schedulix -开源企业作业计划系统为高级系统环境中IT流程的专业自动化制定了突破性的标准.

Logging

  • Bunyan -用于Node.js服务的简单快速的JSON日志记录库.
  • Fluentd -用于统一日志记录层的开源数据收集器.
  • Graylog -完全集成的开源日志管理平台.
  • Kibana -灵活的分析和可视化平台. -[LogDNA![c]](https://logdna.com/)-集中式日志管理软件. 从任何平台,任何数量实时实时收集,集中和分析日志.
  • Logstash -用于管理事件和日志的工具.
  • Suro -分布式数据管道,使服务能够移动,聚合,路由,存储数据.

Messaging

  • ØMQ -无代理智能传输层.
  • ActiveMQ -强大的开源消息传递和集成模式服务器.
  • Aeron -高效可靠的UDP单播,UDP组播和IPC消息传输.
  • Apollo -从原始ActiveMQ的基础构建的更快,更可靠,更易于维护的消息传递代理.
  • Ascoltatori -Node的发布/订阅库.
  • Beanstalk - Simple, fast work queue.
  • Crossbar -用于分布式和微服务应用程序的开源网络平台. 它实现了开放的Web应用程序消息协议(WAMP).
  • Disque -分布式消息代理.
  • Eventuate -开发异步微服务的平台,解决了分布式数据管理问题.
  • Kafka -重新考虑发布-订阅消息传递为分布式提交日志.
  • Malamute -ZeroMQ企业消息传递代理.
  • Mist -分布式的,基于标签的发布/订阅服务.
  • Mosca -MQTT代理作为模块.
  • Mosquitto -实现MQTT协议的开源消息代理.
  • Nanomsg -套接字库,为构建分布式系统提供了几种常见的通信模式.
  • NATS -开源,高性能,轻量级的云消息传递系统.
  • NSQ -实时分布式消息传递平台.
  • Pulsar -分布式发布订阅邮件系统.
  • Qpid -建立在AMQP上的跨平台消息传递组件.
  • RabbitMQ -开源的基于Erlang的消息代理,它可以正常工作.
  • RocketMQ -低延迟,可靠,可扩展,易于使用的面向消息的中间件,该中间件源于阿里巴巴的大型消息业务.
  • VerneMQ -开源的,可扩展的,基于Erlang的MQTT代理.

Monitoring & Debugging

  • Beats -用于Elasticsearch和Logstash的轻型托运人.
  • Collectd -系统统计信息收集守护程序.
  • Elastalert -为Elasticsearch提供简便灵活的警报.
  • Ganglia -用于高性能计算系统(例如集群和网格)的可伸缩分布式监视系统.
  • Grafana -用于Graphite,InfluxDB和OpenTSDB的开源,功能丰富的指标仪表板和图形编辑器.
  • Graphite -可扩展的实时图形. -[IOpipe![c]](https://www.iopipe.com/)-监控Amazon Lambda的应用程序性能.
  • Jaeger -开源的端到端分布式跟踪
  • Microservice Graph Explorer -使用实际的应用程序连接实时浏览和浏览应用程序中的所有微服务.
  • OpenTracing -供应商中立的API和用于分布式跟踪的工具.
  • Parallec -快速并行异步HTTP / SSH / TCP / Ping客户端Java库.
  • Prometheus -开源服务监视系统和时间序列数据库.
  • REST Commander -快速并行异步HTTP客户端,作为监视和管理HTTP端点的服务.
  • Riemann -监视分布式系统.
  • Sensu -监视当今的基础架构.
  • SkyWalking -用于分布式系统的应用程序性能监视工具,特别是为微服务,云原生和基于容器(Docker,K8s,Mesos)的体系结构而设计的.
  • Trace -专为微服务设计的可视化堆栈跟踪平台.
  • Watcher -提醒Elasticsearch.
  • Zabbix -开源企业级监控解决方案.
  • Zipkin -分布式跟踪系统.

Reactivity

  • Reactor.io -第二代Reactive库,用于基于Reactive Streams规范在JVM上构建非阻塞应用程序.
  • Reactive Kafka -适用于Apache Kafka的Reactive Streams API.
  • ReactiveX - API for asynchronous programming with observable streams. Available for idiomatic Java, Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby, and others.
  • Simple React -适用于Java 8的强大的未来流和异步数据结构.

Resilience

  • Hystrix 延迟和容错库旨在隔离对远程系统,服务和第三方库的访问点,停止级联故障,并在不可避免发生故障的复杂分布式系统中实现弹性.
  • Pathod -恶意制作的折磨HTTP客户端和服务器.
  • Raft Consensus -易于理解的共识算法. 它在容错和性能上与Paxos等效.
  • Resilience4j -为Java8和功能编程设计的容错库.
  • Resilient HTTP -具有智能功能的智能HTTP客户端,具有容错能力,动态服务器发现,自动平衡和反应式恢复等超级功能,专为分布式系统而设计.
  • Saboteur -引起故意的网络混乱,以提高弹性.
  • Semian -用于Ruby的快速恢复工具包.
  • Simian Army -一套工具,可让您的云以最佳形式运行. Chaos Monkey是第一位成员,是一种弹性工具,可帮助确保您的应用程序可以容忍随机实例故障.
  • Toxiproxy -TCP代理,可模拟网络和系统状况以进行混乱和弹性测试.

Security

  • Crtauth -由公钥支持的客户端/服务器身份验证系统.
  • Dex -带有可插拔连接器的认证/目录服务. OpenID Connect提供程序和第三方OAuth 2.0委托.
  • Identity Server -适用于ASP.NET Core的OpenID Connect和OAuth 2.0框架.
  • JWT -JSON Web令牌是一种开放的行业标准RFC 7519方法,用于在双方之间安全地表示声明.
  • Keycloak -功能齐全且可扩展的身份验证服务. OpenID Connect提供程序和第三方OAuth 2.0委托.
  • Light OAuth2 -基于light-java的快速,轻量级和云原生OAuth 2.0授权微服务.
  • Login With - Stateless login-with microservice for Google, FB, Github, and more.
  • OAuth -提供针对Web应用程序,桌面应用程序,移动电话和客厅设备的特定授权流程. 许多实现.
  • OpenID Connect -实现当前OpenID规范和相关规范的库,产品和工具.
  • OSIAM -实施OAuth 2.0和SCIMv2的开源身份和访问管理.
  • SCIM -跨域身份管理系统.
  • Vault -保护,存储和严格控制对令牌,密码,证书,API密钥和现代计算中其他机密的访问.

Serialization

  • Avro -Apache数据序列化系统以紧凑,快速的二进制数据格式提供丰富的数据结构.
  • BooPickle -二进制序列化库,用于有效的网络通信. 对于Scala和Scala.js
  • Cap’n Proto -快速的数据交换格式和基于功能的RPC系统.
  • CBOR -以多种语言实现的CBOR标准(RFC 7049).
  • Cereal -用于序列化的C ++ 11库.
  • Cheshire -Clojure JSON和JSON SMILE编码/解码.
  • Etch -用于构建和使用网络服务的跨平台,独立于语言和传输的框架.
  • Fastjson -快速JSON处理器.
  • Ffjson -Go更快的JSON序列化.
  • FST -快速的Java序列化替换.
  • Jackson -用于处理JSON数据格式的多功能Java库.
  • Jackson Afterburner -使用字节码生成功能进一步加快数据绑定速度的Jackson模块(序列化,反序列化的吞吐量提高了30-40%).
  • Kryo -Java序列化和克隆:快速,高效,自动.
  • MessagePack -高效的二进制序列化格式.
  • Protostuff -带有内置支持的序列化库,用于向前-向后兼容性(模式演变)和验证.
  • SBinary -用于描述Scala类型的二进制格式的库.
  • Thrift -Apache Thrift软件框架,用于可扩展的跨语言服务开发.

Storage

  • Apache Hive -建立在Hadoop之上的数据仓库基础架构.
  • Apache Cassandra -面向列并提供高可用性,没有单点故障.
  • Apache HBase -大数据的Hadoop数据库. -[Aerospike![c]](http://www.aerospike.com/)-高性能NoSQL数据库,可大规模提供速度.
  • ArangoDB -具有用于文档,图形和键值的灵活数据模型的分布式免费开放源数据库.
  • AtlasDB -在键值存储之上的事务层.
  • ClickHouse -面向列的数据库管理系统,允许实时生成分析数据报告. -[CockroachDB![c]](https://www.cockroachlabs.com/)-以Google Spanner为模型的云原生SQL数据库.
  • Couchbase -为提高性能,可伸缩性和简化管理而设计的分布式数据库. -[Crate![c]](https://crate.io/)-具有NoSQL优点的可扩展SQL数据库.
  • Datomic -完全可交易的,可用于云的分布式数据库.
  • Druid -快速的面向列的分布式数据存储.
  • Elasticsearch -开源的分布式,可伸缩且高度可用的搜索服务器.
  • Elliptics -容错分布式键/值存储.
  • Geode -用于横向扩展应用程序的开源,分布式内存数据库.
  • Infinispan -用于缓存的高度并发的键/值数据存储.
  • InfluxDB -可扩展的数据存储区,用于指标,事件和实时分析.
  • Manta -具有集成计算功能的高度可扩展的分布式对象存储服务. -[MemSQL![c]](http://www.memsql.com/)-高性能的内存数据库,将分布式系统的水平可伸缩性与对SQL的熟悉结合在一起.
  • OpenTSDB -在Apache HBase之上编写的可扩展和分布式时间序列数据库.
  • Parquet -列型存储格式可用于Hadoop生态系统中的任何项目,无论选择数据处理框架,数据模型还是编程语言.
  • Reborn -完全兼容redis协议的分布式数据库.
  • RethinkDB -开源,可扩展的数据库,使构建实时应用程序更加容易.
  • Secure Scuttlebutt -消息源的P2P数据库.
  • Tachyon -以内存为中心的分布式存储系统,可跨群集框架以内存速度实现可靠的数据共享.
  • Voldemort -Amazon DynamoDB的开源克隆 -[VoltDB![c]](https://www.voltdb.com/)-符合内存中ACID的分布式数据库.

Testing

  • Goreplay -用于捕获实时HTTP流量并将其重播到测试环境中的工具.
  • Hikaku -一个库,用于测试REST-API的实现是否满足其规范.
  • Mitmproxy -交互式控制台程序,允许拦截,检查,修改和重放流量.
  • Mountebank -跨平台的多协议测试可在导线上加倍.
  • Pact -用于HTTP API和非HTTP异步消息传递系统的合同测试框架.
  • Spring Cloud Contract -TDD达到软件体系结构级别.
  • VCR -记录测试套件的HTTP交互,并在以后的测试运行期间重播它们,以进行快速,确定性和准确的测试. 请参阅端口列表以了解其他语言的实现.
  • Wilma -结合使用HTTP / HTTPS服务存根和透明代理解决方案.
  • WireMock -用于存根和模拟Web服务的灵活库. 与通用模拟工具不同,它通过创建一个实际的HTTP服务器来工作,您的被测试代码可以像真实的Web服务一样连接到该HTTP服务器.

Continuous Integration & Delivery

Web API Modeling & Documentation

GraphQL

  • GraphQL -查询语言,旨在通过提供直观,灵活的语法和系统来描述其数据需求和交互来构建客户端应用程序.

JSON

  • JSON:API -关于客户端应如何请求获取或修改资源以及服务器应如何响应这些请求的规范.

REST

  • Aglio -具有主题支持的API蓝图渲染器,可输出静态HTML.
  • API Blueprint -整个API生命周期的工具. 使用它与他人讨论您的API. 自动生成文档. 或测试套件. 甚至是一些代码.
  • Apidoc -REST服务的精美文档.
  • RAML -RESTful API建模语言,一种描述实际RESTful API的简单明了的方式.
  • ReDoc -OpenAPI / Swagger生成的API文档.
  • Slate -您API的精美静态文档.
  • Spring REST Docs -通过将手写文档与Spring MVC Test生成的自动生成的片段结合起来,记录RESTful服务.
  • Swagger -RESTful API的简单但功能强大的表示形式.

Standards / Recommendations

World Wide Web

HTTP/1.1

HTTP/2

  • RFC7540 -超文本传输​​协议版本2.

CoAP

  • RFC7252 -约束应用协议(CoAP)是一种专用的Web传输协议,可与物联网中的受约束节点和受约束网络一起使用.

RPC

  • BERT-RPC 1.0 -尝试指定与动态语言的哲学兼容的灵活的二进制序列化和RPC协议.
  • JSON-RPC 2.0 - A stateless, light-weight remote procedure call (RPC) protocol.

Messaging

  • AMQP -高级消息队列协议.
  • MQTT -MQ遥测传输.
  • STOMP -简单的面向文本的消息协议.

Security

  • RFC5246 -传输层安全性(TLS)协议版本1.2.
  • RFC6066 -TLS扩展.
  • RFC6347 -数据报传输层安全性版本1.2.
  • RFC6749 -OAuth 2.0授权框架.
  • RFC7515 -JSON Web签名(JWS)表示使用基于JSON的数据结构通过数字签名或消息身份验证代码(MAC)保护的内容.
  • RFC7519 -JSON Web令牌(JWT)是一种紧凑的,URL安全的方法,用于表示要在两方之间转移的声明.
  • RFC7642 -SCIM:定义,概述,概念和要求.
  • RFC7643 -SCIM:核心架构,提供与平台无关的架构和扩展模型,用于表示用户和组.
  • RFC7644 -SCIM:协议,一种应用程序级别的REST协议,用于在Web上配置和管理身份数据.
  • OIDCONN -OpenID Connect 1.0是基于OAuth 2.0协议的简单身份层. 它允许客户端基于授权服务器执行的身份验证来验证最终用户的身份,以及以可互操作且类似于REST的方式获取有关最终​​用户的基本配置文件信息.

Service Discovery

  • HAL -JSON超文本应用程序语言(HAL)是一种标准,该标准建立了使用JSON表达超媒体控件(例如链接)的约定. 草案
  • Hydra -可互操作,超媒体驱动的Web API的规范.
  • OpenAPI -OpenAPI规范(OAS)为REST API定义了标准的,与编程语言无关的接口描述,使人和计算机都可以发现和理解服务的功能,而无需访问源代码,附加文档或检查网络交通.
  • WADL -Web应用程序描述语言规范.
  • WSDL -Web服务描述语言版本2.0规范.

Data Formats

  • RFC4627 -JavaScript对象符号(JSON).
  • RFC7049 -简洁的二进制对象表示(CBOR).
  • BSON -二进制JSON(BSON).
  • JSON-LD -用于链接数据的JSON.
  • SBE -简单二进制编码(SBE).
  • MSGPACK -MessagePack规范.

Vocabularies

  • JSON Schema -词汇表,可用于注释和验证JSON文档.
  • LOV -链接的开放词汇.
  • Schema.org -协作性社区活动,其任务是创建,维护和促进Internet,网页,电子邮件以及其他内容中的结构化数据架构.

Unicode

  • UNIV8 -Unicode联盟. Unicode标准版本8.0.0((加利福尼亚州山景城:Unicode联盟,2015年.ISBN978-1-936213-10-8).
  • RFC3629 -UTF-8,ISO 10646的转换格式.

Real Life Stories

Enterprise & Verticals

-[Commercetools![c]](https://commercetools.com/)-无头贸易平台. - Flamingo -构建灵活和现代的电子商务应用程序的框架. -[Interact![c]](https://interact.io/)-CRM微服务,用于快速交付量身定制的解决方案. -[Moltin![c]](https://moltin.com/)-开发人员的电子商务API. - [预测的[C]!](https://predix.io/) - 工业微服务平台. -[Skava![c]](https://www.skava.com/)-为商店的所有功能提供微服务,以及将它们结合在一起的胶水.

Theory

Articles & Papers

Talks

Tutorials

Books

Sites & Organizations

Emerging Technologies

  • BigchainDB -可扩展的区块链数据库.
  • Blocknet -Blocknet使得可以在基于区块链的P2P网络架构上交付微服务.
  • Blockstack -一种新的分散式互联网,用户可以在其中控制数据并在其设备上运行应用.
  • CEPTR -用于分布式社交计算的可重组媒体,语义自描述协议栈以及用于仿生计算的分形相干上下文的创建者.
  • Edgware Fabric -物理世界中网络边缘系统的轻型,敏捷服务总线.
  • Hyperledger -创建开源协作成果以促进跨行业区块链技术. 这是由Linux基金会主办的全球合作,包括金融,银行,物联网,供应链,制造和技术领域的领导者.
  • Luna -视觉和文本功能编程语言,重点关注生产力,协作和开发人体工程学.
  • MultiChain -用于构建区块链的开放平台.
  • Node-RED -用于以新颖有趣的方式将硬件设备,API和在线服务连接在一起的可视化工具.
  • ops -免费的开放源代码工具,用于将现有linux应用程序作为unikernel构建,运行和部署.
  • Pony -开源,面向对象,参与者模型,功能安全的高性能编程语言.

License

CC0

Contributing

请阅读 Contribution Guidelines 在提交您的建议之前.

随意地 open an issue 要么 create a pull request 与您的补充.

:star2:谢谢!

[c]:https://cdn.rawgit.com/akullpp/23246ca832bda82bb505230bf3538e2a/raw/d9bcdb769bf025292f9c6bc1290f01f1fcd1f864/commercial.svg