Giter VIP home page Giter VIP logo

GoRPC101

内容简介

微服务框架是微服务架构的重要基石,业界有非常多的微服务框架,Go简单优雅的设计吸引了很多企业的注意力,相关的框架也层出不穷,Google的grpc-go、字节跳动的KiteX、B站的Kratos、Alibaba的dubbo-go、腾讯暂未开源的trpc-go以及go-neat、going等等,一个框架最终能否被广泛接受,除了整体的架构设计、扩展性是否优秀,也与其编码实现时对语言、系统的精湛掌控、性能优化、代码质量(代码规范、可读性、可测试性)、配套工具、文档完善度、生态丰富度、良好的社区运营有很重要关系。

作者在腾讯长期从事微服务框架建设相关的工作,在这个过程中收获很大。遗憾的是这些有价值的知识,零零散散地以个人感悟、项目文档、经验分享的形式散落在网络的各个角落,故作者决定整理框架建设背后的故事,并力求给读者还原一个真实的微服务框架从0到1建设的完整过程,希望读者能从中学到技术,也能收获开源项目管理的相关经验。

截止2024.1.22,腾讯微服务框架trpc已经开源了cpp, go, java版本,详见:https://github.com/trpc-group。

读者对象

本书读者对象,包括但不限于:

  • gophers,书中有很多go标准库使用、性能优化的案例;
  • 微服务框架开发人员,书中介绍了微服务框架的核心设计**、技术细节;
  • 想了解框架建设过程的读者,书中尽可能还原了从0到1开发框架的故事全景;
  • 对开源项目维护感兴趣的读者,书中介绍了框架建设、推广、维护过程中的经验;
  • 对代码质量感兴趣的读者,书中介绍了如何系统性保证代码质量的经验;

本书特色

市面上介绍Go语言基础、微服务架构、grpc微服务框架应用的书籍有很多,但是从0到1讲述微服务框架诞生背后那些事的书籍几乎是空白。

业界有非常多的微服务框架,Go优秀的并发处理能力降低了微服务框架设计的门槛,微服务框架层出不穷,但是几乎没有书籍来系统性地介绍微服务框架从0到1建设的完整历程,相关内容零零散散地以个人感悟、项目文档、经验分享的形式散落在互联网的各个角落。

很多开发人员在其整个职业生涯期间,可能也没有机会去接触、长时间跟进微服务框架建设相关的工作,他们也希望了解这背后的故事,而这些故事本身也很有价值。

所以我要写这本书,对过去的工作做个总结,也和感兴趣的朋友做个分享。

作者开发Go-Neat框架期间,就产生了编写该电子书的想法,本来借着trpc项目分享下是一件很好的事情。2022年期间由于trpc存在开源、部分专利申请的需要,为了避嫌暂停了本电子书内容的编写。

期间也曾经想以grpc为例进行说明,后面又碰到2022.7组织架构调整,刚转岗Timi工作内容发生较大变化、没有精力来继续编写。现在trpc已经开源、相关技术文档也已经大部分公开,故而可以继续了。

gorpc framework 101's Projects

90daysofdevops icon 90daysofdevops

This repository is my documenting repository for learning the world of DevOps. I started this journey on the 1st January 2022 and I plan to run to March 31st for a complete 90-day romp on spending an hour a day including weekends to get a foundational knowledge across a lot of different areas that make up DevOps.

bentocache icon bentocache

🍱 Bentocache is a robust multi-tier caching solution for Node.js applications

chaosmonkey icon chaosmonkey

Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.

cobra icon cobra

A Commander for modern Go CLI interactions

comcast icon comcast

Simulating shitty network connections so you can build better systems.

composer icon composer

The Ballerina Composer provides a flexible and powerful browser-based tool for creating your Ballerina programs.

ebpf icon ebpf

ebpf-go is a pure-Go library to read, modify and load eBPF programs and attach them to various hooks in the Linux kernel.

ghz icon ghz

Simple gRPC benchmarking and load testing tool

gofakeit icon gofakeit

Random fake data generator written in go

goreplay icon goreplay

GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.

gorpc icon gorpc

gorpc 高性能微服务框架

gorpc101 icon gorpc101

gorpc from scratch,从0到1开发一个高性能rpc框架

grace icon grace

Graceful restart & zero downtime deploy for Go servers.

grpcui icon grpcui

An interactive web UI for gRPC, along the lines of postman

multibar icon multibar

Display multiple progress bars in Go (golang).

netpoll icon netpoll

A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance.

onedev icon onedev

Super Easy All-In-One DevOps Platform

polaris icon polaris

Service Discovery and Governance Center for Distributed and Microservice Architecture

red icon red

Terminal log analysis tools

signoz icon signoz

SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. 🔥 🖥. 👉 Open source Application Performance Monitoring (APM) & Observability tool

slapper icon slapper

Simple load testing tool with real-time updated histogram of request timings

ttyplot icon ttyplot

a realtime plotting utility for terminal/console with data input from stdin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.