infra
所属分类:微服务
开发工具:GO
文件大小:0KB
下载次数:0
上传日期:2024-03-05 10:32:35
上 传 者:
sh-1993
说明: 服务的go基础架构库:数据库容器、http服务器、grpc服务器等
(go infrastructure libraries for services: database containers, http server, grpc server, etc)
文件列表:
clickhouse/
grpc/
http/
infoserver/
kafka/
log/
mattermost/
mongo/
nats/
netretry/
operator/
postgres/
prompushgw/
rabbit/
redis/
system/
.golangci.yml
LICENSE
go.mod
go.sum
# Infra
Infra is a set of go libraries to unify the way we write grpc servers, access various databases, etc.
# Installation
```bash
go get github.com/pushwoosh/infra
```
# Libraries
All databases and brokers libraries have similar design: each library has `NewContainer` function that creates a container
that holds named connections to the database.
To create a new connection, call `Connect` method. To fetch a connection, call `Get` method.
## Databases
- [Postgres](https://github.com/Pushwoosh/infra/blob/master/postgres) - based on jackc/pgx
- [Clickhouse](https://github.com/Pushwoosh/infra/blob/master/clickhouse)
- [MongoDB](https://github.com/Pushwoosh/infra/blob/master/mongodb)
- [Redis](https://github.com/Pushwoosh/infra/blob/master/redis) - based on go-redis v9 driver
## Message Brokers
- [RabbitMQ](https://github.com/Pushwoosh/infra/blob/master/rabbitmq)
- [Apache Kafka](https://github.com/Pushwoosh/infra/blob/master/kafka) - based on segmentio/kafka-go
- [NATS](https://github.com/Pushwoosh/infra/blob/master/nats)
## Servers
- [HTTP](https://github.com/Pushwoosh/infra/blob/master/http) - http server helpers
- [gRPC](https://github.com/Pushwoosh/infra/blob/master/grpc/grpcserver) - gRPC server utilities for creating gRPC servers and gRPC gateways
- [gRPC middlewares](https://github.com/Pushwoosh/infra/blob/master/grpc/grpcserver/middleware) - set of standard middlewares
- [Info](https://github.com/Pushwoosh/infra/blob/master/infoserver) - server info endpoint. provides endpoints for k8s liveness and readiness probes, pprof, build info
## Other
- [GRPC Client](https://github.com/Pushwoosh/infra/blob/master/grpc/grpcclient) - has same interface as database and broker libraries
- [Log](https://github.com/Pushwoosh/infra/blob/master/log) - zap logger wrapper
- [Netretry](https://github.com/Pushwoosh/infra/blob/master/netretry) - retry lib for temporary network errors
- [Prometheus pushgateway client](https://github.com/Pushwoosh/infra/blob/master/prompushgw) - client for pushgateway, mostly used in cronjobs
- [Operator](https://github.com/Pushwoosh/infra/blob/master/operator)
- [System](https://github.com/Pushwoosh/infra/blob/master/system) - OS signal handler
近期下载者:
相关文件:
收藏者: