Creating a Service

Health Checking

Authentication

Access token

JSON Web Token

Service Discovery

Load-balancing

Centralized configuration

Spring Cloud config

Viper

Messaging

  • Request/response - a service sends a request message to a recipient and expects to receive a reply message promptly
  • Notifications - a sender sends a message a recipient but does not expect a reply. Nor is one sent.
  • Request/asynchronous response - a service sends a request message to a recipient and expects to receive a reply message eventually
  • Publish/subscribe - a service publishes a message to zero or more recipients
  • Publish/asynchronous response - a service publishes a request to one or recipients, some of whom send back a reply

Apache Kafka RabbitMQ

Service Discovery

Client-side discovery

Serf

consul

etcd

eureka

Zookeeper

Server-side discovery

Load Balancing

Observability

Log aggregation

Application metrics

Monitoring

Prometheus

Grafana

sentry

Audit logging

Distributed tracing

opencensus-go

jaeger

OpenTelemetr

zipkin

spring-cloud-sleuth

pinpoint

Application Performance Management

pinpoint

Circuit Breakers

hystrix-go

Analyzing gRPC messages using Wireshark

API Gateway

kong

Reference

Go Microservices blog series

gRPC Basics tutorial

go-micro

kratos

go-zero

gRPC Service Discovery & load balancing

gRPC服务发现&负载均衡

gRPC Load Balancing

Load Balancing in gRPC

Load balancing policies

gRPC服务注册发现及负载均衡的实现方案与源码解析

Service Discovery in a Microservices Architecture

微服务体系下的服务治理

Health Checking

health_checking

HealthServiceImpl

ManagedHealthStatusService.java

gRPC Authentication

Code including health check, loading balancing, service discovery with gin

Analyzing gRPC messages using Wireshark

Distributed Services with Go