[{"title":"( 52 个子文件 79KB ) Go-gRPC-RabbitMQ-microservice:转到gRPC RabbitMQ电子邮件微服务","children":[{"title":"Go-gRPC-RabbitMQ-microservice-master","children":[{"title":"pkg","children":[{"title":"metrics","children":[{"title":"metrics.go <span style='color:#111;'> 1.70KB </span>","children":null,"spread":false}],"spread":true},{"title":"grpc_errors","children":[{"title":"grpc_errors.go <span style='color:#111;'> 1.78KB </span>","children":null,"spread":false}],"spread":true},{"title":"rabbitmq","children":[{"title":"rabbitmq.go <span style='color:#111;'> 397B </span>","children":null,"spread":false}],"spread":true},{"title":"jaeger","children":[{"title":"jaeger.go <span style='color:#111;'> 829B </span>","children":null,"spread":false}],"spread":true},{"title":"mailer","children":[{"title":"mailer.go <span style='color:#111;'> 267B </span>","children":null,"spread":false}],"spread":true},{"title":"mime_types","children":[{"title":"mime_types.go <span style='color:#111;'> 1.38KB </span>","children":null,"spread":false}],"spread":true},{"title":"postgres","children":[{"title":"postgres.go <span style='color:#111;'> 1.02KB </span>","children":null,"spread":false}],"spread":true},{"title":"logger","children":[{"title":"logger.go <span style='color:#111;'> 3.60KB </span>","children":null,"spread":false}],"spread":true},{"title":"utils","children":[{"title":"sanitizer.go <span style='color:#111;'> 191B </span>","children":null,"spread":false},{"title":"validator.go <span style='color:#111;'> 641B </span>","children":null,"spread":false},{"title":"pagination.go <span style='color:#111;'> 1.71KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"config","children":[{"title":"config-docker.yml <span style='color:#111;'> 1.44KB </span>","children":null,"spread":false},{"title":"config-local.yml <span style='color:#111;'> 1.45KB </span>","children":null,"spread":false},{"title":"config.go <span style='color:#111;'> 3.23KB </span>","children":null,"spread":false}],"spread":true},{"title":"cmd","children":[{"title":"email_service","children":[{"title":"main.go <span style='color:#111;'> 1.67KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"internal","children":[{"title":"models","children":[{"title":"email.go <span style='color:#111;'> 1.65KB </span>","children":null,"spread":false}],"spread":true},{"title":"server","children":[{"title":"server.go <span style='color:#111;'> 4.45KB </span>","children":null,"spread":false}],"spread":true},{"title":"interceptors","children":[{"title":"manager.go <span style='color:#111;'> 1.59KB </span>","children":null,"spread":false}],"spread":true},{"title":"email","children":[{"title":"delivery","children":[{"title":"grpc","children":[{"title":"email_microservice_test.go <span style='color:#111;'> 3.78KB </span>","children":null,"spread":false},{"title":"email_microservice.go <span style='color:#111;'> 4.27KB </span>","children":null,"spread":false}],"spread":true},{"title":"rabbitmq","children":[{"title":"publisher.go <span style='color:#111;'> 3.04KB </span>","children":null,"spread":false},{"title":"consumer.go <span style='color:#111;'> 4.73KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"repository","children":[{"title":"sql_queries.go <span style='color:#111;'> 585B </span>","children":null,"spread":false},{"title":"pg_repository.go <span style='color:#111;'> 3.22KB </span>","children":null,"spread":false},{"title":"pg_repository_test.go <span style='color:#111;'> 4.07KB </span>","children":null,"spread":false}],"spread":true},{"title":"mock","children":[{"title":"pg_repository.go <span style='color:#111;'> 3.04KB </span>","children":null,"spread":false},{"title":"usecase.go <span style='color:#111;'> 3.52KB </span>","children":null,"spread":false},{"title":"mailer.go <span style='color:#111;'> 1.33KB </span>","children":null,"spread":false},{"title":"email_rabbitmq.go <span style='color:#111;'> 2.89KB </span>","children":null,"spread":false}],"spread":true},{"title":"pg_repository.go <span style='color:#111;'> 606B </span>","children":null,"spread":false},{"title":"mailer","children":[{"title":"mailer.go <span style='color:#111;'> 753B </span>","children":null,"spread":false}],"spread":true},{"title":"usecase.go <span style='color:#111;'> 638B </span>","children":null,"spread":false},{"title":"mailer.go <span style='color:#111;'> 279B </span>","children":null,"spread":false},{"title":"usecase","children":[{"title":"email_usecase.go <span style='color:#111;'> 2.89KB </span>","children":null,"spread":false},{"title":"email_usecase_test.go <span style='color:#111;'> 5.31KB </span>","children":null,"spread":false}],"spread":false},{"title":"proto","children":[{"title":"email.proto <span style='color:#111;'> 1.15KB </span>","children":null,"spread":false},{"title":"email.pb.go <span style='color:#111;'> 29.71KB </span>","children":null,"spread":false}],"spread":false},{"title":"email_rabbitmq.go <span style='color:#111;'> 384B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"docker-compose.local.yml <span style='color:#111;'> 2.56KB </span>","children":null,"spread":false},{"title":".github","children":[{"title":"workflows","children":[{"title":"test.yml <span style='color:#111;'> 748B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"migrations","children":[{"title":"01_create_initial_tables.down.sql <span style='color:#111;'> 36B </span>","children":null,"spread":false},{"title":"01_create_initial_tables.up.sql <span style='color:#111;'> 654B </span>","children":null,"spread":false}],"spread":true},{"title":"docker","children":[{"title":"monitoring","children":[{"title":"prometheus-local.yml <span style='color:#111;'> 348B </span>","children":null,"spread":false},{"title":"alerts.yml <span style='color:#111;'> 375B </span>","children":null,"spread":false},{"title":"prometheus.yml <span style='color:#111;'> 346B </span>","children":null,"spread":false}],"spread":true},{"title":"Dockerfile <span style='color:#111;'> 336B </span>","children":null,"spread":false}],"spread":true},{"title":"docker-compose.yml <span style='color:#111;'> 2.98KB </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 355B </span>","children":null,"spread":false},{"title":"Makefile <span style='color:#111;'> 1.90KB </span>","children":null,"spread":false},{"title":"go.sum <span style='color:#111;'> 65.98KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 2.35KB </span>","children":null,"spread":false},{"title":"go.mod <span style='color:#111;'> 1.98KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}]