micro

command module
v1.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 8, 2019 License: Apache-2.0 Imports: 1 Imported by: 1

README

Micro License GoDoc Travis CI Go Report Card

Micro is a runtime for microservice development.

Overview

Micro addresses the key requirements for building scalable systems. It takes the microservice architecture pattern and transforms it into a set of tools which act as the building blocks of a platform. Micro deals with the complexity of distributed systems and provides simple abstractions already understood by developers.

Technology is constantly evolving. The infrastructure stack is always changing. Micro is a pluggable platform which addresses these issues. Plug in any stack or underlying technology. Build future-proof systems using micro.

Follow us on Twitter or join the Slack community.

Features

The runtime is composed of the following features:

  • api: An api gateway. A single entry point with dynamic request routing using service discovery. The API gateway allows you to build a scalable microservice architecture on the backend and consolidate serving a public api on the frontend. The micro api provides powerful routing via discovery and pluggable handlers to serve http, grpc, websockets, publish events and more.

  • broker: A message broker allowing for async messaging. Microservices are event driven architectures and should provide messaging as a first class citizen. Notify other services of events without needing to worry about a response.

  • network: Build multi-cloud networks with the micro network service. Simply drop-in and connect the network services across any environment and create a single flat network to route globally. The micro network dynamically builds routes based on your local registry in each datacenter ensuring queries are routed based on locality.

  • new: A service template generator. Create new service templates to get started quickly. Micro provides predefined templates for writing micro services. Always start in the same way, build identical services to be more productive.

  • proxy: A transparent service proxy built on Go Micro. Offload service discovery, load balancing, fault tolerance, message encoding, middleware, monitoring and more to a single a location. Run it standalone or alongside your service.

  • registry: The registry provides service discovery to locate other services, store feature rich metadata and endpoint information. It's a service explorer which lets you centrally and dynamically store this info at runtime.

  • store: State is a fundamental requirement of any system. We provide a key-value store to provide simple storage of state which can be shared between services or offload long term to keep microservices stateless and horizontally scalable.

  • web: The web dashboard allows you to explore your services, describe their endpoints, the request and response formats and even query them directly. The dashboard also includes a built in CLI like experience for developers who want to drop into the terminal on the fly.

Additionally micro provides a Go development framework:

  • go-micro: Leverage the powerful Go Micro framework to develop microservices easily and quickly. Go Micro abstracts away the complexity of distributed systems and provides simpler abstractions to build highly scalable microservices.

Install

From source

# enable go modules
export GO111MODULE=on

go get github.com/micro/micro

Docker image

docker pull micro/micro

Latest release binaries

# MacOS
curl -fsSL https://micro.mu/install.sh | /bin/bash

# Linux
wget -q https://micro.mu/install.sh -O - | /bin/bash

# Windows
powershell -Command "iwr -useb https://micro.mu/install.ps1 | iex"

Getting Started

Boot the entire development environment locally

micro --local
Create a service
# enable go modules
export GO111MODULE=on

# generate a service (follow instructions in output)
micro new example

# run the service
go run example/main.go

# list services
micro list services

# call a service
micro call go.micro.srv.example Example.Call '{"name": "John"}'

Usage

See all the options

micro --help

See the docs for detailed information on the architecture, installation and use of the platform.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
Package api is an API Gateway
Package api is an API Gateway
proto
Package go_micro_api is a generated protocol buffer package.
Package go_micro_api is a generated protocol buffer package.
bot
Package bot is a Hubot style bot that sits a microservice environment
Package bot is a Hubot style bot that sits a microservice environment
proto
Package go_micro_bot is a generated protocol buffer package.
Package go_micro_bot is a generated protocol buffer package.
Package broker is the micro broker
Package broker is the micro broker
Package cli is a command line interface
Package cli is a command line interface
cmd
platform Module
Package debug implements metrics/logging/introspection/...
Package debug implements metrics/logging/introspection/...
web
Package web provides a dashboard for debugging and introspection of go-micro services
Package web provides a dashboard for debugging and introspection of go-micro services
Package health is a healthchecking sidecar
Package health is a healthchecking sidecar
internal
token
Package token is for api token management
Package token is for api token management
usage
Package usage tracks micro usage
Package usage tracks micro usage
usage/proto
Package usage is a generated protocol buffer package.
Package usage is a generated protocol buffer package.
version
Package version
Package version
Package monitor provides a monitoring service
Package monitor provides a monitoring service
package network implements micro network node
package network implements micro network node
api
Package api is the network api
Package api is the network api
dns
Package dns provides a DNS registration service for autodiscovery of core network nodes.
Package dns provides a DNS registration service for autodiscovery of core network nodes.
dns/handler
Package handler is the handler for the `micro network dns` command
Package handler is the handler for the `micro network dns` command
dns/provider
Package provider lets you abstract away any number of DNS providers
Package provider lets you abstract away any number of DNS providers
dns/provider/cloudflare
Package cloudflare is a dns Provider for cloudflare
Package cloudflare is a dns Provider for cloudflare
web
Package web is the network web dashboard
Package web is the network web dashboard
Package new generates micro service templates
Package new generates micro service templates
cockroach Module
etcd Module
nats/broker Module
nats/stream Module
postgres Module
prometheus Module
redis/broker Module
redis/stream Module
s3 Module
tailscale Module
profile
ci Module
platform Module
Package proxy is a cli proxy
Package proxy is a cli proxy
Package registry is the micro registry
Package registry is the micro registry
Package runtime is the micro runtime
Package runtime is the micro runtime
notifier
Package notifier is a file server notifer
Package notifier is a file server notifer
Package service provides a micro service
Package service provides a micro service
test
dep-test Module
Package web is a web dashboard
Package web is a web dashboard

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL