{"id":15074453,"url":"https://github.com/jasonjiangs/microservice","last_synced_at":"2026-01-03T06:12:26.254Z","repository":{"id":185945777,"uuid":"561836266","full_name":"JasonJiangs/Microservice","owner":"JasonJiangs","description":"Microservices with Golang","archived":false,"fork":false,"pushed_at":"2023-06-21T23:34:57.000Z","size":1668,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T00:11:17.020Z","etag":null,"topics":["consul","golang","grpc","protobuf"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JasonJiangs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-04T15:46:13.000Z","updated_at":"2023-06-23T06:31:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"4813c91a-daac-4aaa-86f0-2c8a273560f6","html_url":"https://github.com/JasonJiangs/Microservice","commit_stats":null,"previous_names":["jasonjiangs/microservice"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonJiangs%2FMicroservice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonJiangs%2FMicroservice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonJiangs%2FMicroservice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonJiangs%2FMicroservice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JasonJiangs","download_url":"https://codeload.github.com/JasonJiangs/Microservice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243864822,"owners_count":20360360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["consul","golang","grpc","protobuf"],"created_at":"2024-09-25T03:33:20.940Z","updated_at":"2026-01-03T06:12:26.215Z","avatar_url":"https://github.com/JasonJiangs.png","language":"Go","readme":"# Golang-Microservice\n\nThe project implements several small scripts and microservices using Golang and its multiple frameworks.\n\nThere are several technologies used:\n1. Remote Procedure Call Protocol (RPC)\n2. [gRPC](https://grpc.io/)\n3. [Protocol Buffers](https://protobuf.dev/)\n4. [go-micro](https://github.com/go-micro/go-micro)\n5. [Consul](https://www.consul.io/)\n5. [Gin](https://gin-gonic.com/)\n6. [Redis](https://redis.com/?_ga=2.168453218.258787526.1682134477-94984867.1682134477\u0026_gac=1.47254101.1682134479.CjwKCAjw6IiiBhAOEiwALNqncS8bEal-GSBDztQ_kz6PIeBkgH_iLPlMOWIT2vJFEmxcuD1lLL6p-RoCtsIQAvD_BwE\u0026_gl=1%2A1qo3h22%2A_ga%2AOTQ5ODQ4NjcuMTY4MjEzNDQ3Nw..%2A_ga_8BKGRQKRPV%2AMTY4MjEzNDQ3Ny4xLjEuMTY4MjEzNDQ4Ny41MC4wLjA.)\n7. [Alibaba Cloud](https://us.alibabacloud.com/?utm_key=se_1007723047\u0026utm_content=se_1007723047\u0026gad=1\u0026gclid=CjwKCAjw6IiiBhAOEiwALNqncahCRVpweroKxsTkwd-WGdPQb25klMkOBPmueAloKtivb7HbFBw1iRoC98IQAvD_BwE)\n8. [GORM](https://gorm.io/)\n9. [MySQL](https://www.mysql.com/)\n10. [FastDFS](https://github.com/happyfish100/fastdfs)\n11. [Nginx](https://www.nginx.com/)\n\n## Practice 1: Chatting Room\n### Path: src/Chatting Room\nThis project implements a chatting room mainly using channel and net library to \nrealize the communication between multiple clients and server.\n\n## Practice 2: RPCapi\n### Path: src/RPCapi\nRPC is a remote procedure call protocol. It is a communication protocol between two computers on a network.\nThe project implements a simple RPC server and client, and simply encapsulates the function of\nserver and client.\n\n## Practice 3: gRPC\n### Path: src/gRPC\nWant to use protobuf, we need to use gRPC as a whole package.\n\nCompile protobuf file:\n```Bash\ngo install github.com/golang/protobuf/protoc-gen-go@latest\nprotoc --go_out=./ *.proto\n# grpc compile instead of protoc\nprotoc --go_out=plugins=grpc:./ *.proto\n```\nInstall gRPC:\n```Bash\n$ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28\n$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2\n$ export PATH=\"$PATH:$(go env GOPATH)/bin\"\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonjiangs%2Fmicroservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasonjiangs%2Fmicroservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonjiangs%2Fmicroservice/lists"}