GithubHelp home page GithubHelp logo

go-zero-study's Introduction

目标功能

  • 基础 version:1.15 移除GOPATH,依赖GOMOD管理

  • (聚合层)

    • (web框架)
    • validate map的反射机制
    • 错误码 引进B站错误码并且稍加改动,grpc层次直接返回server端错误码
    • metadata元数据
  • demo

    • admin+gorm(share-db架构)
    • service+sql
    • job+Beanstalkd
    • 数据库delete_time 为null的时间处理,自定义时间
    • 多租户 (流量染色)
    • errgroup并发请求
    • thread包使用
    • excel返回
    • 失血模型
    • 获取天气的等api的demo,client以及分层设计
  • 日志

    • Metrics
    • Access Log
    • Tracing Opentracing+TraceID
  • 监控

    • promethues监控+模板
  • 服务发现

    • ETCD
  • 服务熔断

    • grpc客户端层 break拦截器=>google sre
    • http层 breakerHandler=>google sre
  • 服务限流

    • 当CPU>90%的时候开始拒绝请求
    • shedding 拦截器,包括grpc服务端层,http层
  • 服务超时

    • 全链路的超时,通过context控制
  • 负载均衡

    • p2c算法
  • 领域驱动

    • 整洁架构
  • cache

    • redis
    • 击穿 内存中lock然后共享数据
    • 雪崩 过期时间在基础值上+了个随机值,防止大量失效
    • 穿透 缓存一条内容为*,60s过期的数据,避免高并发访问数据库
    • where转化主键
  • stat采集

    • cpu

    • memory

      通过golang的runtime.MemStats实现

      其中不通的操作系统通过go build的条件编译实现

    • 接口或者rpc的total,pass,drop

      SheddingHandler http的middleware里注入来统计

      rpc同理,通过server的UnarySheddingInterceptor来注入

    • metrics

      api通过bindRoutes时new

      rpcServer通过NewRpcServer时new,其中metrics的name通过server.SetName(c.Name)来改变

go-zero-study's People

Stargazers

 avatar

Watchers

 avatar

Forkers

jiayiming001

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.