6 个仓库
Educational materials covering the design trade-offs and implementation patterns of various inter-service communication protocols.
Distinguishing note: Focuses on the architectural comparison and usage patterns of RPC frameworks like gRPC within distributed systems.
Explore 6 awesome GitHub repositories matching software engineering & architecture · Communication Protocols. Refine with filters or upvote what's useful.
This project is a comprehensive educational resource focused on the principles, patterns, and trade-offs required to design scalable, reliable, and high-performance distributed systems. It provides a structured curriculum that covers the fundamental architectural strategies necessary for building modern software infrastructure, ranging from high-level system decomposition to low-level networking and data management. The repository distinguishes itself by offering deep dives into complex architectural patterns, such as microservices-based decomposition, event-driven communication, and command-
gRPC is a modern open-source high-performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancin
This project is a service mesh platform designed to manage, secure, and observe service-to-service communication within Kubernetes clusters. It functions as a control plane that orchestrates transparent sidecar proxies, which intercept and manage network traffic to provide reliable connectivity for microservices. By automating the injection of these proxies, the platform ensures that infrastructure-level policies are applied consistently across all workloads without requiring manual configuration changes. The platform distinguishes itself through its focus on zero-trust security and cross-clu
Overrides automatic protocol detection by explicitly defining the communication protocol for specific service ports.
This project is a decentralized, privacy-focused messaging platform designed to eliminate reliance on central servers and persistent user identifiers. By utilizing a metadata-minimizing protocol, it ensures that all communication remains end-to-end encrypted and that user identities are stored exclusively on the local device. The architecture relies on relay-based message routing and identity-free network addressing to maintain data sovereignty and prevent the correlation of user activity. What distinguishes this platform is its commitment to traffic isolation and anonymity. Each conversation
Structures communication protocols to avoid exchanging persistent identifiers or global user IDs during message delivery.
该项目是一个集成框架,用于在 Spring Boot 应用中引导 Apache Dubbo 远程过程调用(RPC)服务。它作为一个微服务通信框架,通过自动化配置实现 RPC 服务、服务发现和分布式治理。 该项目的独特之处在于提供了一个跨语言 RPC 桥接,允许使用不同语言编写的服务通过 gRPC 和 Protobuf 等标准进行通信。它还支持使用 Triple 协议将后端微服务暴露为 REST 端点,以便从 Web 浏览器和第三方客户端直接访问。 该框架涵盖了广泛的功能,包括用于流量路由和限流的分布式服务治理、集中式配置管理,以及用于请求追踪和健康监控的微服务可观测性。它还支持多种传输层以及 Redis 和 Memcached 的存储集成。 该项目提供 Starter 和配置,以自动化 Spring Boot 环境中 RPC 基础设施的引导。
Allows switching between transport protocols such as gRPC, HTTP/2, and TCP via configuration.
GlusterFS 是一个软件定义的分布式文件系统和横向扩展存储集群,将来自多个服务器的磁盘资源聚合到一个单一的全局命名空间中。它作为一个统一的存储平台,允许通过文件、块和对象存储接口暴露相同的基础数据。 该系统通过去中心化架构脱颖而出,该架构使用一致性哈希在网络节点之间分发文件,而无需中央元数据服务器。它通过自愈复制、基于仲裁的一致性来防止脑裂场景,以及用于跨地理位置灾难恢复的异步地理复制,确保了数据完整性和可用性。 该平台通过 NFS、Samba 和 iSCSI 提供广泛的多协议存储导出功能,以及全面的卷管理功能,包括时间点快照、存储配额和弹性容量扩展。安全性通过传输中的 TLS 加密、身份管理集成和细粒度的 POSIX 访问控制来处理。 该软件可通过社区仓库以二进制包的形式提供,适用于各种 Linux 发行版。
Allows configuration of the communication protocol between clients and storage processes to optimize transfer speeds.
Faye 是一个实时消息中间件和 WebSocket 发布-订阅服务器。它作为通信层,在客户端之间路由消息并管理频道订阅,从而实现跨 Web 的数据同步。 该项目提供了一个跨域通信网关,允许不同域上的 Web 客户端与中央服务器通信。它构建为一个集群消息后端,可以使用外部存储在多个实例之间共享状态,以处理大量持久的网络连接。 其功能面包括用于频道管理和消息路由的发布-订阅逻辑,以及支持 WebSocket 和长轮询的传输无关协议层。该系统集成了用于限制发布和订阅访问的安全中间件,以及用于修改或过滤数据的消息流量拦截功能。 为了保持稳定性,该系统使用基于心跳的连接恢复机制来检测断开的链接,并自动重新发送丢失的消息。
Provides configuration mechanisms to select or disable specific transport protocols based on environment capabilities.