微服务
Awesome Microservices ¶
A curated list of Microservice Architecture related principles and technologies.
Platforms¶
- Express Serverless - 开源、Kubernetes 原生、微服务和无服务器平台.
- Hook.io - Open source provider of microservice and webhook hosting.
- Jolie - 开源的面向微服务的编程语言.
- KintoHub © - 微服务包管理器使开发人员能够轻松构建和共享云就绪功能.
- Lightbend © - 用于在 JVM 上构建可扩展反应系统的平台.
- M3O - 用于微服务开发的无服务器平台.
- Netflix OSS - Netflix 开源软件生态系统.
- OpenWhisk - 无服务器、开源云平台,可执行功能以响应任何规模的事件.
- Pulumi - 用于云原生基础设施即代码的 SDK. 使用您喜欢的语言来预览和管理您的应用程序和基础架构的更新,并持续部署到任何云(不需要 YAML).
- STUPS - Zalando 的一组工具和组件,可为 AWS 上的多个自治团队提供方便且符合审计要求的 PaaS.
- Svix - Webhooks 服务,通过完整的重试计划、指数退避、签名验证和事件类型向您的用户发送 webhooks.
- Triton - 开源云管理平台,跨一个或多个数据中心提供下一代、基于容器、面向服务的基础设施.
- VAMP © - 轻松构建、部署和管理微服务.
- Wing - 面向云的编程语言. 它允许开发人员构建充分利用云功能的分布式系统,而无需担心底层基础设施.
Frameworks / Runtimes¶
- Akka - 用于在 JVM 上构建高度并发、分布式和弹性消息驱动应用程序的工具包和运行时.
- Axon © - 一个端到端的开发和基础设施平台,用于在 JVM 上轻松开发和运行任何 DDD、CQRS 和事件源应用程序.
- Ballerina - 云原生编程语言.
- Dapr - 用于使用任何编程语言编写高性能微服务的开源运行时.
- Deno - JavaScript、TypeScript 和 WebAssembly 运行时,具有安全默认值和出色的开发人员体验.
- Eclipse Microprofile - 一个开放式论坛,通过跨多个实现进行创新并以标准化为目标在共同感兴趣的领域进行协作,从而针对微服务架构优化企业 Java.
- Erlang/OTP - 用于构建具有高可用性要求的大规模可扩展软实时系统的编程语言.
- Finagle - 可扩展的JVM RPC系统,用于构建高并发服务器.
- Flogo - Flogo 是一个开源框架,用于简化构建高效和现代的无服务器功能和边缘微服务.
- GraalVM - 高性能运行时,可显着提高应用程序性能和效率,是微服务的理想选择.
- GPars - JVM 的并发和并行框架.
- Grenache - 一个基于 Bittorent-DHT 的微服务框架,支持多种传输上的 REQ/REP 和 PUB/SUB 模式.
- Helidon - Java 库的集合,用于编写在由 Netty 提供支持的快速 Web 核心上运行的微服务.
- Ice - Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python, and more.
- Lagom - JVM 的反应式微服务.
- Light-4j - 高吞吐量、低延迟、小内存占用和更高效的微服务平台.
- Micronaut - 一个现代的、基于 JVM 的全栈框架,用于构建模块化、易于测试的微服务应用程序.
- Microserver - Java 8 本机、零配置、基于标准、久经沙场的库,用于运行 Java REST 微服务.
- Moleculer - 用于 Node.js、Java、Go 和 Ruby 的快速而强大的微服务框架.
- Open Liberty - 用于构建快速高效的云原生 Java 微服务的轻量级开放框架.
- Orbit - JVM 语言的现代框架,可以更轻松地构建和维护分布式和可扩展的在线服务.
- SmallRye - 为云开发量身定制的 API 和实现,包括 Eclipse MicroProfile.
- Spin - 一个开源框架,用于使用 WebAssembly 构建和运行快速、安全且可组合的云微服务.
- Thorntail - 一种打包和运行 Java EE 应用程序的创新方法,方法是将它们与刚好足够的服务器运行时一起打包以“java -jar”您的应用程序.
- ScaleCube - 用于为 JVM 构建反应式微服务的工具包:低延迟、高吞吐量、可扩展和弹性.
- Vert.X - 用于在 JVM 上构建反应式应用程序的工具包.
- Vert.X Toolbox - 一组用于构建反应式微服务应用程序的 Vert.x 组件.
- Wangle - 一个框架,提供一组通用的客户端/服务器抽象,用于以一致、模块化和可组合的方式构建服务.
Service Toolkits¶
Polyglot¶
- 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 - 提供通用的面向代理的编程模型、锁定策略的运行时选择、使编写守护进程变得微不足道并简化网络服务器和客户端的实现的功能等.
- Lwan - 高性能和可扩展的网络服务器.
- Onion - 用于创建简单 HTTP 服务器和 Web 应用程序的 C 库.
C++¶
- AnyRPC - 提供一个通用系统来处理许多不同的远程过程调用标准,包括:JSON-RPC、XML-RPC、MessagePack-RPC.
- Cap’n Proto RPC - Cap'n Proto C++ RPC 实现.
- C++ Micro Services - 一个类似 OSGi 的 C++ 动态模块系统和服务注册表.
- Enduro/X - 基于 XATMI 的 GNU/Linux 服务框架.
- Pion - 用于构建轻量级 HTTP 接口的 C++ 框架.
- Pistache - 用 C++ 编写的高性能 REST 工具包.
- Poco - 用于构建基于网络的应用程序和服务器的 C++ 类库.
- Restbed - 为 C++11 应用程序带来异步 RESTful 功能.
- Served - 用于构建高性能 RESTful Web 服务器的 C++ 库.
- Sogou Workflow - 旨在满足大多数后端开发需求的企业级编程引擎.
- ULib - 用于编写 C++ 应用程序的高度优化的类框架.
CSharp¶
- Awesome Microservices .NET Core - .NET Core 中用于微服务的精彩培训系列、文章、视频、书籍、课程、示例项目和工具的集合.
- Akka.NET - 用于在 .NET 和 Mono 上构建高度并发、分布式和容错的事件驱动应用程序的工具包和运行时.
- Microdot - 开源 .NET 微服务框架.
- Nancy - 轻量级网络框架.
- Orleans - 提供构建分布式大规模计算应用程序的直接方法,无需学习和应用复杂的并发或其他扩展模式.
- Tye - Tye 是一种工具,可以更轻松地开发、测试和部署微服务和分布式应用程序. Project Tye 包括一个本地编排器,使开发微服务更容易,并能够以最少的配置将微服务部署到 Kubernetes.
D¶
- Vibe.d - 不会妨碍您的异步 I/O,用 D 编写.
Erlang VM¶
Elixir¶
Erlang¶
Go¶
- Echo - 用于 Go 的快速和不花哨的 HTTP 服务器框架. 比其他人快 10 倍.
- Enduro/X ASG - Go 的 Enduro/X 绑定允许用 Go 语言有效地编写基于 XATMI 的微服务. 使用 Unix 内核 IPC(队列)进行快速进程通信.
- Fiber - 建立在 Fasthttp 之上的受 Express 启发的 Web 框架,Fasthttp 是 Go 最快的 HTTP 引擎. 旨在简化事情以实现零内存分配和性能的快速开发.
- Gin - Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架. 它具有类似 Martini 的 API,具有更好的性能,速度最高可达 40 倍.
- Gizmo - 微服务工具包.
- Goa - Go 中基于设计的 HTTP 微服务.
- Gocraft - 用于构建网络应用程序的工具包. 包括路由、中间件堆栈、日志记录和监控.
- Goji - Go 的简约灵活的请求多路复用器.
- Go Chassis - 一个在 Go 中快速开发微服务的框架,易于与一些云生态系统集成.
- Go kit - 用于现代企业微服务的分布式编程工具包.
- go-api-boilerplate - 使用最佳实践、DDD、CQRS、ES、gRPC 的 Go Server/API 样板
- Go-micro - 分布式系统开发框架.
- go-zero - 一个web和rpc分布式系统开发框架.
- Gopencils - 使用 Go 轻松使用 REST API.
- Gorilla - 用于 Go 编程语言的 Web 工具包.
- Iris - 用于 Go 的快速、简单和高效的微型 Web 框架.
- Kite - Go 中的微服务框架.
- KrakenD - 使用中间件构建超高性能 API 网关的框架.
- Libchan - 超轻量级网络库,它让网络服务以与 goroutines 使用通道进行通信的方式相同的方式进行通信.
- Micro - 用于云及其他领域的分布式系统运行时.
- Nano - 一个简约的、传输不可知的和测试友好的微服务框架.
- Negroni - Golang 的惯用 HTTP 中间件.
- Neutrino - 实时/REST 后端服务.
- RPCX - 基于NET/RPC的分布式RPC服务框架,类似阿里巴巴Dubbo、微博Motan.
- Sleepy - 休息一下.
Haskell¶
- Scotty - 受 Ruby 的 Sinatra 启发的微型网络框架,使用 WAI 和 Warp.
- Servant - 类型级网络 DSL.
- Yesod - Haskell RESTful 网络框架.
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¶
- ActiveRPC - 用于复杂高负载分布式应用程序和类似 Memcached 解决方案的轻量级快速库.
- Airlift - 用于在 Java 中构建 REST 服务的框架.
- Armeria - 基于 Java 8、Netty、Thrift 和 gRPC 构建的开源异步 HTTP/2 RPC/REST 客户端/服务器库.
- Disruptor - 高性能线程间消息传递库.
- Dropwizard - 用于开发操作友好、高性能、RESTful Web 服务的 Java 框架.
- Dubbo - 阿里巴巴开源的高性能、基于java的RPC框架.
- HTTP Remoting - 用于定义和创建 RESTish/RPC 服务器和客户端的库,基于 Feign 或 Retrofit 作为客户端,使用 JAX-RS 服务定义作为服务器的 Dropwizard/Jersey.
- Ja-micro - 用于构建微服务的轻量级 Java 框架(与 go-micro 兼容).
- Jersey - Java 中的 RESTful 服务. JAX-RS 参考实现.
- MSF4J - 高吞吐量和低内存占用的 Java 微服务框架.
- QBit - 用于构建微服务的反应式编程库.
- Quarkus - 为 OpenJDK HotSpot 和 GraalVM 量身定制的 Kubernetes Native Java 堆栈,采用同类最佳的 Java 库和标准精心打造.
- 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-Server 和 Finagle 上的快速、可测试的 Scala HTTP 服务.
- Http4s - 用于 HTTP 的最小、惯用的 Scala 接口
- Play - 用于 Java 和 Scala 的高速 Web 框架.
- Scalatra - 简单、可访问且免费的网络微框架.
- Skinny Micro - 在 Scala 中构建 servlet 应用程序的微型网络框架.
- Squbs - 一套组件,可在大规模、托管的云环境中实现 Akka 和 Akka HTTP 应用程序/服务的标准化和操作化.
Node.js¶
- Actionhero - 具有集成集群功能和延迟任务的多传输 Node.js API 服务器.
- Baucis - 构建和维护可扩展的 HATEOAS/Level 3 REST API.
- BeeMS - 基于 Bee Queue 的极简工具包,用于构建快速、分散、可扩展和容错的微服务.
- ClaudiaJS - 轻松将 Node.js 项目部署到 AWS Lambda 和 API 网关.
- Cote - 用于构建零配置微服务的 Node.js 库.
- Express - 快速、独立、极简的 Node.js 网络框架
- Fastify - Fastify,用于 Node.js 的快速且低开销的 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、移动和物联网应用程序.
- Steriods Framework - Steroids 框架通过使开发人员能够更多地强调业务/领域逻辑而不是过多地关注技术细节,简化了使用 TypeScript 的无服务器微服务的开发.
Perl¶
- Cro - 用于使用 Perl 6 创建反应式分布式系统的库.
- Mojolicious - Perl 的下一代网络框架.
PHP¶
- API Platform - 基于 Symfony 的 API 优先 Web 框架,支持 JSON-LD、Schema.org 和 Hydra.
- Ecotone - 基于 DDD、CQRS 和事件溯源的架构原则的框架,提供构建块来创建可伸缩和可扩展的应用程序.
- Fat-Free - 一个功能强大但易于使用的 PHP 微框架.
- Flight - 一个可扩展的微框架.
- Hyperf - Hyperf 是一个基于 Swoole 4.5+ 的高性能和灵活的 PHP CLI 框架,由最先进的协程服务器和大量久经考验的组件提供支持.
- Lumen - 惊人的快速微框架.
- Phalcon - 作为 C 扩展提供的全栈 PHP 框架.
- Slim - 可帮助您快速编写简单但功能强大的 Web 应用程序和 API 的微框架.
- Swoft - 用于构建高性能 Web 系统、API、中间件和基础服务的 PHP 微服务协程框架.
- Symfony - 基于 Symfony 组件的微框架.
- Upswarm - 用于编写面向服务的应用程序的多处理、异步、容错微框架.
Python¶
- Aiohttp - 用于异步的 HTTP 客户端/服务器.
- Bottle - 用于 Python 的快速、简单和轻量级的 WSGI 微型网络框架.
- Connexion - 用于在 Flask 之上的 Python 的 Swagger/OpenAPI 框架,具有自动端点验证和 OAuth2 支持.
- Falcon - 用于构建非常快速的应用程序后端和微服务的裸机 Python Web API 框架.
- FastAPI - 现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.6+ 构建 API.
- Flask - 基于 Werkzeug 和 Jinja 2 的微服务 Python 框架.
- Nameko - 用于构建微服务的 Python 框架.
- Sanic - Sanic 是一个类似于 Flask 的 Python 3.5+ 网络服务器,其编写速度很快.
- Tornado - Web 框架和异步网络库.
- Twisted - 事件驱动的网络编程引擎.
- Web.py - Python 的极简 Web 框架.
- Zappa - 用于构建和部署无服务器 Python 事件驱动和 Web 应用程序的框架.
Ruby¶
- Grape - 用于创建类 REST API 的自以为是的框架
- Hanami - Ruby 的现代 Web 框架.
- Praxis - 用于设计和实施 API 的框架.
- Rails API - Rails 仅作为 API.
- Scorched - 用于 Ruby 的轻量级 Web 框架.
- Sinatra - Sinatra 是一种 DSL,用于以最小的努力在 Ruby 中快速创建 Web 应用程序.
Rust¶
- Are we web yet? - Rust 网络编程当前状态的总结.
- Actix - 强大、实用且极快的 Rust 网络框架.
- Tarpc - Rust 的 RPC 框架,侧重于易用性.
Frontend / UI¶
- Awesome Micro Frontends - 有关微前端的精选资源列表.
- Electrode - 通用 React/Node.js 应用平台.
- Micro Frontends - Extending the microservice idea to frontend development.
- MiniApp White Paper - 小程序标准化白皮书.
Capabilities¶
API Gateways / Edge Services¶
> 请注意 data and control plane 组件目前没有分类.
- Amalgam8 - 用于多语言微服务的基于内容的路由结构.
- Ambassador - 用于基于 Envoy 构建的微服务的 Kubernetes 原生 API 网关.
- Annon - 开源 API 网关,带有用 Elixir 编写的内置 API 管理、身份验证和状态页面.
- APIcast - APIcast 是一个建立在 NGINX 之上的 API 网关. 它是 Red Hat 3scale API 管理平台的一部分.
- Bunkerized-nginx - 默认情况下安全的 Web 应用程序托管和反向代理.
- Caddy - 具有自动 HTTPS 的可扩展 HTTP/2 Web 服务器.
- Camel - 使您能够使用各种特定于领域的语言定义路由和中介规则,包括基于 Java 的流畅 API、Spring 或蓝图 XML 配置文件以及 Scala DSL.
- Envoy - 开源边缘和服务代理,来自 Lyft 的开发人员.
- Express Gateway - 基于 Express.js 构建的微服务 API 网关.
- Fabio - 一个快速、现代、零配置的负载平衡 HTTP/S 路由器,用于部署由 Consul 管理的微服务.
- Gravitee - 网关能够根据您的需要将策略(即规则)应用于 HTTP 请求和响应,这意味着您可以通过添加转换、安全性和许多其他疯狂功能来增强请求和响应处理!
- HAProxy - 可靠、高性能的 TCP/HTTP 负载平衡器.
- Istio - 一个用于连接、管理和保护微服务的开放平台.
- Janus - 用 Go 编写的 API 网关.
- Keepalived - 用于 Linux 系统和基于 Linux 的基础设施的负载平衡和高可用性的简单而强大的设施.
- Kong - API 的开源管理层.
- KrakenD - 开源超高性能 API 网关.
- Kuma - 服务网格和微服务的平台无关开源控制平面.
- Linkerd - 云原生应用的弹性服务网格.
- Neutrino - 可扩展的软件负载平衡器.
- OpenResty - 构建在 Nginx 之上的快速 Web 应用程序服务器.
- Open Service Mesh - 轻量级和可扩展的云原生服务网格.
- 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 云中用于定位服务,以实现中间层服务器的负载平衡和故障转移.
- Microconfig - 现代而简单的微服务配置管理方式.
- Microphone - 在 Consul 或 Etcd 集群之上使用 Web Api 或 NancyFx 运行自托管 REST 服务的轻量级 .NET 框架.
- Nacos - 易于使用的动态服务发现、配置和服务管理平台.
- Registrator - Docker 的服务注册桥. 支持可插拔服务注册中心,目前包括 Consul、Etcd 和 SkyDNS 2.
- Shaman - 小型、轻量级、api 驱动的 DNS 服务器.
- SkyDNS - 用于发布和发现建立在 etcd 之上的服务的分布式服务. 它利用 DNS 查询来发现可用服务.
- SmartStack - Airbnb 的自动服务发现和注册框架.
- Spring Cloud Config - 为分布式系统中的外部化配置提供服务器端和客户端支持.
- ZooKeeper - 开源服务器,可实现高度可靠的分布式协调.
Coordination & Governance¶
- AWS Step Functions © - 使用可视化工作流协调分布式应用程序和微服务的组件.
- Azuqua © - 分布式应用程序的编排和治理平台.
- Cadence - 无故障的有状态代码平台.
- Conductor - 微服务编排引擎.
- Fission Workflows - 无服务器功能的基于工作流的可靠功能组合.
- Temporal - 用于以任何规模运行关键任务代码的开源微服务编排平台.
- Zeebe - 跨微服务定义、编排和监控业务流程.
Elasticity¶
- Hazelcast - 开源内存数据网格. 允许您跨服务器、集群和地理分布数据和计算,并管理非常大的数据集或高数据摄取率. 技术成熟.
- Helix - 通用集群管理框架,用于自动管理托管在节点集群上的分区、复制和分布式资源.
- Ignite - 高性能、集成和分布式内存平台,用于实时计算和处理大规模数据集,比传统的基于磁盘或闪存技术的速度快几个数量级.
- Libp2p - 用于构建对等网络应用程序的框架和协议套件.
- Marathon - 在 Apache Mesos 上大规模部署和管理容器(包括 Docker).
- Mesos - 从机器(物理或虚拟)中抽象出 CPU、内存、存储和其他计算资源,使容错和弹性分布式系统能够轻松构建和有效运行.
- Nomad - 分布式、高可用性、数据中心感知调度程序.
- Onyx - Clojure 的分布式、无主、高性能、容错数据处理.
- Ordasity - 旨在将持久性或长期存在的工作负载分散到多台机器上.
- Redisson - 在 Redis 服务器之上的分布式和可扩展的 Java 数据结构.
- Serf - 集群成员、故障检测和编排的分散式解决方案.
Job Schedulers / Workload Automation¶
- Celery - 基于分布式消息传递的异步任务队列/作业队列. 注重实时操作,支持调度.
- Chronos - Mesos 的容错作业调度程序,可处理依赖项和基于 ISO8601 的调度.
- Dkron - 分布式、容错作业调度系统.
- Fenzo - Mesos 框架的可扩展调度程序.
- JobScheduler - 用于企业级工作负载自动化的开源解决方案. 它用于启动可执行文件和 shell 脚本以及自动运行数据库过程.
- Rundeck - 作业调度程序和运行手册自动化. 启用对现有脚本和工具的自助访问.
- Schedulix - 开源企业作业调度系统为高级系统环境中 IT 流程的专业自动化制定了开创性的标准.
Logging¶
- Bunyan - 用于 Node.js 服务的简单快速的 JSON 日志记录库.
- Fluentd - 统一日志层的开源数据收集器.
- Graylog - 完全集成的开源日志管理平台.
- Kibana - 灵活的分析和可视化平台.
- LogDNA © - 集中式日志管理软件. 即时收集、集中和分析来自任何平台的任何数量的实时日志.
- Logstash - Tool for managing events and logs.
- Suro - 分布式数据管道,支持移动、聚合、路由、存储数据的服务.
Messaging¶
- ØMQ - 无代理智能传输层.
- ActiveMQ - 强大的开源消息传递和集成模式服务器.
- Aeron - 高效可靠的 UDP 单播、UDP 多播和 IPC 消息传输.
- Apollo - 更快、更可靠、更易于维护的消息代理是在原始 ActiveMQ 的基础上构建的.
- Ascoltatori - 节点的发布/订阅库.
- Beanstalk - 简单、快速的工作队列.
- Bull - 快速可靠的基于 Redis 的 Node 队列.
- Crossbar - 用于分布式和微服务应用程序的开源网络平台. 它实现了开放的 Web 应用程序消息传递协议 (WAMP).
- Disque - 分布式消息代理.
- Eventuate - 用于开发解决分布式数据管理问题的异步微服务的平台.
- Kafka - 将发布-订阅消息重新考虑为分布式提交日志.
- Malamute - ZeroMQ 企业消息代理.
- Mist - 分布式、基于标签的发布/订阅服务.
- Mosca - MQTT 经纪人作为一个模块.
- Mosquitto - 实现 MQTT 协议的开源消息代理.
- Nanomsg - Socket library that provides several common communication patterns for building distributed systems.
- Nanomsg-NG - 轻量级无代理消息传递.
- NATS - 开源、高性能、轻量级的云消息系统.
- NSQ - 实时分布式消息传递平台.
- Pulsar - 分布式发布-订阅消息系统.
- Qpid - 基于 AMQP 构建的跨平台消息传递组件.
- RabbitMQ - 可以正常工作的基于 Erlang 的开源消息代理.
- Redpanda - 面向开发人员的流数据平台:兼容 Kafka API,速度提高 10 倍,无 ZooKeeper 和 JVM.
- RocketMQ - 一个低延迟、可靠、可扩展、易用的面向消息的中间件,诞生于阿里巴巴海量消息业务.
- VerneMQ - Open source, scalable, Erlang-based MQTT broker.
Monitoring & Debugging¶
- Beats - Elasticsearch 和 Logstash 的轻量级托运人.
- Collectd - 系统统计收集守护进程.
- Elastalert - Elasticsearch 的简单灵活的警报.
- Ganglia - 用于集群和网格等高性能计算系统的可扩展分布式监控系统.
- Grafana - 适用于 Graphite、InfluxDB 和 OpenTSDB 的开源、功能丰富的指标仪表板和图形编辑器.
- Graphite - 可扩展的实时图形.
- IOpipe © - 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 的反应流 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¶
- Awesome Chaos Engineering - 精选的混沌工程资源列表.
- Hystrix - 延迟和容错库旨在隔离远程系统、服务和第三方库的访问点,停止级联故障并在故障不可避免的复杂分布式系统中实现弹性.
- Pathod - 为折磨 HTTP 客户端和服务器而精心设计的恶意软件.
- Raft Consensus - 旨在易于理解的共识算法. 它在容错和性能方面等同于 Paxos.
- Resilience4j - 为 Java8 和函数式编程设计的容错库.
- Resilient HTTP - 具有容错、动态服务器发现、自动平衡和反应恢复等超能力的智能 HTTP 客户端,专为分布式系统设计.
Security¶
- Dex - 带有可插拔连接器的自以为是的身份验证/目录服务. OpenID Connect 提供商和第三方 OAuth 2.0 委托.
- Identity Server - 用于 ASP.NET Core 的 OpenID Connect 和 OAuth 2.0 框架.
- JWT - JSON Web Tokens 是一种开放的行业标准 RFC 7519 方法,用于在两方之间安全地表示声明.
- Keycloak - 功能齐全且可扩展的授权服务. OpenID Connect 提供商和第三方 OAuth 2.0 委托.
- Light OAuth2 - 基于light-java的快速、轻量级云原生OAuth 2.0授权微服务.
- OAuth - 为网络应用程序、桌面应用程序、手机和客厅设备提供特定的授权流程. 许多实现.
- OpenID Connect - 实现当前 OpenID 规范和相关规范的库、产品和工具.
- ORY - 开源身份基础设施和服务.
- SCIM - 跨域身份管理系统.
- Vault - 保护、存储和严格控制对现代计算中的令牌、密码、证书、API 密钥和其他秘密的访问.
Serialization¶
- Avro - Apache 数据序列化系统以紧凑、快速的二进制数据格式提供丰富的数据结构.
- Bond - 用于处理模式化数据的跨平台框架,在 Microsoft 的大规模服务中广泛使用.
- 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 © - 大规模提供速度的高性能 NoSQL 数据库.
- ArangoDB - 分布式免费开源数据库,具有灵活的文档、图形和键值数据模型.
- AtlasDB - 键值存储之上的事务层.
- Citus - 分布式 PostgreSQL 作为扩展.
- ClickHouse - 面向列的数据库管理系统,允许实时生成分析数据报告.
- CockroachDB © - 以 Google Spanner 为模型的云原生 SQL 数据库.
- Couchbase - 为性能、可扩展性和简化管理而设计的分布式数据库.
- Crate © - 具有 NoSQL 优点的可扩展 SQL 数据库.
- Datomic - 完全事务性、云就绪的分布式数据库.
- Druid - 快速的面向列的分布式数据存储.
- Elasticsearch - 开源分布式、可扩展且高度可用的搜索服务器.
- Geode - 用于横向扩展应用程序的开源、分布式、内存数据库.
- Infinispan - 用于缓存的高度并发键/值数据存储.
- InfluxDB - 用于指标、事件和实时分析的可扩展数据存储.
- MemSQL © - 高性能内存数据库,结合了分布式系统的水平可扩展性和 SQL 的熟悉性.
- OpenTSDB - 在 Apache HBase 之上编写的可扩展和分布式时间序列数据库.
- Parquet - 列存储格式适用于 Hadoop 生态系统中的任何项目,无论数据处理框架、数据模型或编程语言的选择如何.
- Pilosa - 开源分布式位图索引,可显着加速跨多个海量数据集的查询.
- Reborn - 完全兼容redis协议的分布式数据库.
- RethinkDB - 开源、可扩展的数据库,使构建实时应用程序更加容易.
- Secure Scuttlebutt - 消息源的 P2P 数据库.
- Tachyon - 以内存为中心的分布式存储系统,能够跨集群框架以内存速度实现可靠的数据共享.
- TiKV - 分布式事务键值数据库.
- Voldemort - Amazon DynamoDB 的开源克隆
- VoltDB © - 内存中 ACID 兼容的分布式数据库.
Testing¶
- Goreplay - A tool for capturing and replaying live HTTP traffic into a test environment.
- Hikaku - 测试 REST-API 的实现是否符合其规范的库.
- Mitmproxy - 一个交互式控制台程序,允许拦截、检查、修改和重放流量.
- Mountebank - 跨平台、多协议测试在网络上翻倍.
- Pact - HTTP API 和非 HTTP 异步消息系统的合同测试框架.
- RestQA - 一种在本地管理微服务模拟、单元和性能测试的工具,具有一流的开发人员体验.
- Spring Cloud Contract - TDD 到软件架构级别.
- VCR - 记录您的测试套件的 HTTP 交互并在未来的测试运行期间重播它们以进行快速、确定性、准确的测试. 查看其他语言实现的端口列表.
- Wilma - 组合的 HTTP/HTTPS 服务存根和透明代理解决方案.
- WireMock - 用于存根和模拟 Web 服务的灵活库. 与通用模拟工具不同,它通过创建一个实际的 HTTP 服务器来工作,您的测试代码可以像连接真正的 Web 服务一样连接到该服务器.
- Hoverfly - 面向开发人员和测试人员的轻量级服务虚拟化/API 模拟工具.
Continuous Integration & Delivery¶
- Awesome CI/CD DevOps - 用于持续集成、持续交付和 DevOps 的精选工具列表.
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 测试生成的自动生成的片段相结合来记录 RESTful 服务.
- Swagger - A simple yet powerful representation of your RESTful API.
Standards / Recommendations¶
World Wide Web¶
- W3C.REC-Webarch - 万维网架构,第一卷.
- RFC3986 - 统一资源标识符 (URI):通用语法.
- RFC6570 - URI 模板.
- RFC7320 - URI 设计和所有权.
Self-sovereignty & Decentralisation¶
- DID - 去中心化标识符 (DID) 的 W3C 规范:一种新型标识符,可实现可验证的去中心化数字身份.
- DIDComm - 建立在 DID 去中心化设计之上的私人通信方法.
- DIDComm Protocols - 建立在 DIDComm 之上的协议注册,用于通过任何传输进行高信任、自主主权的交互.
- IDSA - 国际数据空间协会 (IDSA) 的使命是通过国际数据空间 (IDS) 创造全球数字经济的未来,这是一个安全的主权数据共享系统,所有参与者都可以在其中实现其全部价值数据.
HTTP/1.1¶
- RFC7230 - 消息语法和路由.
- RFC7231 - 语义和内容.
- RFC7232 - 有条件的请求.
- RFC7233 - 范围请求.
- RFC7234 - 缓存.
- RFC7235 - 验证.
- RFC7807 - HTTP API 的问题详细信息.
HTTP/2¶
- RFC7540 - 超文本传输协议版本 2.
QUIC¶
- QUIC-WG - IETF 工作组,负责为互联网提供下一个传输协议.
- QUIC-Transport - 基于 UDP 的多路复用和安全传输.
RPC¶
- JSON-RPC 2.0 - 无状态、轻量级远程过程调用 (RPC) 协议.
Messaging¶
- AMQP - 高级消息队列协议.
- [MQTT](https://mqtt.org/ - MQ 遥测传输.
- STOMP - 简单的面向文本的消息传递协议.
Security¶
- GNAP - Grant Negotiation and Authorization Protocol 定义了一种机制,用于将授权委托给一个软件,并将该委托传递给该软件. 这种委托可以包括访问一组 API 以及直接传递给软件的信息. 草稿
- OIDCONN - OpenID Connect 1.0 是 OAuth 2.0 协议之上的一个简单身份层. 它允许客户端根据授权服务器执行的身份验证来验证最终用户的身份,并以可互操作和类似 REST 的方式获取有关最终用户的基本配置文件信息.
- PASETO - Paseto 是您喜欢 JOSE(JWT、JWE、JWS)的一切,没有任何困扰 JOSE 标准的许多设计缺陷. 草稿
- RFC5246 - 传输层安全 (TLS) 协议版本 1.2.
- RFC6066 - TLS 扩展.
- RFC6347 - 数据报传输层安全版本 1.2.
- RFC6749 - OAuth 2.0 授权框架.
- RFC6962 - 证书透明度.
- RFC7515 - JSON Web 签名 (JWS) 代表使用基于 JSON 的数据结构的数字签名或消息身份验证代码 (MAC) 保护的内容.
- RFC7519 - JSON Web Token (JWT) 是一种紧凑的 URL 安全方式,用于表示要在两方之间传输的声明.
- RFC7642 - SCIM:定义、概述、概念和要求.
- RFC7643 - SCIM:Core Schema,提供平台中立的模式和扩展模型来表示用户和组.
- RFC7644 - SCIM:协议,一种应用程序级别的 REST 协议,用于在 Web 上配置和管理身份数据.
Web APIs¶
- HAL - JSON 超文本应用程序语言 (HAL) 是一种标准,它建立了使用 JSON 表达超媒体控件(例如链接)的约定. 草稿
- Hydra - 可互操作、超媒体驱动的 Web API 规范.
- OpenAPI - OpenAPI 规范 (OAS) 为 REST API 定义了标准的、与编程语言无关的接口描述,它允许人类和计算机发现和理解服务的功能,而无需访问源代码、附加文档或检查网络交通.
- WADL - Web 应用程序描述语言规范.
- WSDL - Web 服务描述语言 2.0 版规范.
Service Discovery¶
Data Formats¶
- RFC4627 - JavaScript 对象表示法 (JSON).
- RFC7049 - 简明二进制对象表示法 (CBOR).
- BSON - 二进制 JSON (BSON).
- JSON-LD - 用于链接数据的 JSON.
- SBE - 简单二进制编码 (SBE).
- MSGPACK - 消息包规范.
Vocabularies¶
- JSON Schema - 允许您注释和验证 JSON 文档的词汇.
- Schema.org - 以创建、维护和促进 Internet、网页、电子邮件消息等结构化数据模式为使命的协作性社区活动.
Unicode¶
- UNIV8 - Unicode 联盟. Unicode 标准,版本 8.0.0,(加利福尼亚州山景城:Unicode 联盟,2015 年.ISBN 978-1-936213-10-8).
- RFC3629 - UTF-8,ISO 10646 的一种转换格式.
Organization Design / Team Dynamics¶
- How Do Committees Invent? PDF - Melvin E. Conway,Datamation 杂志,1968 年.定义 Conway 定律的原始文章.
- Service per Team - 每个团队负责一个或多个业务功能(例如业务能力). 一个团队拥有一个由一个或多个模块组成的代码库. 它的代码库的大小不会超过团队的认知能力. 团队将其代码部署为一项或多项服务. 一个团队应该只有一项服务,除非已证明需要多项服务.
- Start with Team Cognitive Load - Team Topologies YT - DOES19 伦敦. “单体与微服务”的争论通常集中在技术方面,而忽略了战略和团队动力. 聪明的组织开始将团队认知负荷作为现代软件的指导原则,而不是技术. 在本次演讲中,我们将通过真实案例研究来解释如何以及为什么.
Enterprise & Verticals¶
- Commercetools - 无头商务平台.
- Elasticpath - 电子商务微服务.
- Equinox - Infosys Equinox 是一个以人为本的商业和营销平台,支持跨任何渠道和接触点的丰富、超个性化体验.
- Flamingo - 构建灵活和现代电子商务应用程序的框架.
- Medusa - 无头开源商务平台.
- Predix - 工业微服务平台.
Theory¶
Articles & Papers¶
- Awesome Scalability - 一个更新和有组织的阅读列表,用于说明可扩展、可靠和高性能的大型系统的模式. 著名工程师的文章和可靠的参考文献对概念进行了解释. 案例研究取自为数百万至数十亿用户提供服务的久经考验的系统.
- A Sidecar for Your Service Mesh - 简短的服务网格介绍.
- AKF Scale Cube - 描述扩展服务的维度的模型.
- Building Microservices? Here is What You Should Know - 基于现实世界经验的实用概述,了解构建微服务需要了解的内容.
- CALM PDF - 作为逻辑单调性的一致性.
- Canary Release - 降低在生产中引入新软件版本风险的技术,方法是在将更改推广到整个基础架构并让所有人都可以使用之前,将更改缓慢推广到一小部分用户.
- CAP Theorem - 指出分布式计算机系统不可能同时提供以下所有三个保证:一致性、可用性和分区容错性.
- Formal Foundations of Serverless Computing PDF - 无服务器计算抽象公开了几个低级操作细节,使程序员难以编写和推理他们的代码. 本文通过提出无服务器计算本质的操作语义 λ 来阐明这个问题.
- Introducing Domain-Oriented Microservice Architecture - Uber Engineering 介绍了微服务架构的通用方法,名为“面向领域的微服务架构”(DOMA).
- Java Microservices: A Practical Guide - 您可以使用本指南了解什么是 Java 微服务,以及如何构建和构建它们. 另外:查看 Java 微服务库和常见问题.
- Microservice Architecture - 将软件应用程序设计为可独立部署的服务套件的特定方式.
- Microservices – Please, don’t - 关于微服务方法的一些问题的重要建议.
- Microservices RefCard - 微服务入门.
- Microservices Trade-Offs - 思考微服务架构风格的成本和收益的指南.
- Reactive Manifesto - 反应系统定义.
- Reactive Streams - 主动为具有非阻塞背压的异步流处理提供标准.
- ROCAS PDF - 自适应系统的面向资源计算.
- SECO PDF - 了解软件生态系统:一种战略建模方法.
- Service Discovery in a Microservice Architecture - 发现和注册模式概述.
- Testing Strategies in a Microservice Architecture - 管理多个独立可部署组件的额外测试复杂性的方法.
- Your Server as a Function PDF - 描述了三个抽象,它们结合起来提供了一个强大的编程模型,用于构建安全、模块化和高效的服务器软件:可组合的期货、服务和过滤器.
- Microservices - The Journey So Far and Challenges Ahead PDF - 工业界和学术界的微服务状态概述.
Sites & Organizations¶
- Cloud Native Computing Foundation - Cloud Native Computing Foundation 构建可持续的生态系统,并围绕一系列高质量项目培育社区,这些项目将容器编排为微服务架构的一部分.
- CNCF Cloud Native Interactive Landscape - 云原生技术的交互景观.
- Microservices Resource Guide - Martin Fowler 精选的文章、视频、书籍和播客,可以让您更多地了解微服务架构风格.
- Microservice Patterns - 微服务架构模式和最佳实践.
- Microservice Antipatterns and Pitfalls - 微服务主要是已知的反模式和陷阱.
License¶
Contributing¶
请阅读 Contribution Guidelines 在提交您的建议之前.
随意地 open an issue 或者 create a pull request 加上你的补充.
谢谢!