1
0
mirror of https://github.com/go-micro/go-micro.git synced 2025-11-23 21:44:41 +02:00
Files
go-micro/internal/website/docs/transport.md

70 lines
1.4 KiB
Markdown
Raw Normal View History

---
layout: default
---
# Transport
The transport layer is responsible for communication between services.
## Features
- Pluggable transport implementations
- Secure and efficient communication
## Implementations
Supported transports include:
2025-11-13 18:11:29 +00:00
- HTTP (default)
- NATS (`go-micro.dev/v5/transport/nats`)
- gRPC (`go-micro.dev/v5/transport/grpc`)
- Memory (`go-micro.dev/v5/transport/memory`)
2025-11-13 18:11:29 +00:00
Plugins are scoped under `go-micro.dev/v5/transport/<plugin>`.
You can specify the transport when initializing your service or via env vars.
## Example Usage
Here's how to use a custom transport (e.g., gRPC) in your Go Micro service:
```go
package main
import (
"go-micro.dev/v5"
"go-micro.dev/v5/transport/grpc"
)
func main() {
t := grpc.NewTransport()
service := micro.NewService(
micro.Transport(t),
)
service.Init()
service.Run()
}
```
2025-11-13 18:11:29 +00:00
NATS transport:
```go
import (
"go-micro.dev/v5"
tnats "go-micro.dev/v5/transport/nats"
)
func main() {
t := tnats.NewTransport()
service := micro.NewService(micro.Transport(t))
service.Init()
service.Run()
}
```
## Configure via environment
2025-11-13 18:17:45 +00:00
```bash
MICRO_TRANSPORT=nats MICRO_TRANSPORT_ADDRESS=nats://127.0.0.1:4222 go run main.go
2025-11-13 18:11:29 +00:00
```
Common variables:
- `MICRO_TRANSPORT`: selects the transport implementation (`http`, `nats`, `grpc`, `memory`).
- `MICRO_TRANSPORT_ADDRESS`: comma-separated list of transport addresses.