Skip to content
A microservice runtime environment
Go Shell PowerShell Other
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Nov 12, 2019
api Set acme ondemand to false Oct 28, 2019
bot Add updated prefix logging for toolkit Oct 2, 2019
broker add runtime service placeholder Nov 2, 2019
cli Support the ability to query an address (#416) Nov 11, 2019
cmd 1.16.0 Nov 9, 2019
health Add updated prefix logging for toolkit Oct 2, 2019
internal update generated instructions Nov 11, 2019
monitor Add updated prefix logging for toolkit Oct 2, 2019
network Cloudflare resolver should use Cloudflare DNS Nov 12, 2019
new add the base template for the go generate file (#417) Nov 11, 2019
plugin Fix plugin building/loading Sep 10, 2019
proxy Add updated prefix logging for toolkit Oct 2, 2019
registry trace logging for skipping own registry events Nov 3, 2019
router add flags/env var for setting the advertise strategy (#414) Nov 11, 2019
runtime
scripts Add launchd script Oct 23, 2019
server Add updated prefix logging for toolkit Oct 2, 2019
service process the body read so that we break the loop Nov 9, 2019
store go fmt Oct 11, 2019
token add token server Oct 29, 2019
tunnel Add updated prefix logging for toolkit Oct 2, 2019
web Set acme ondemand to false Oct 28, 2019
.compose.yml Update compose to use etcd Oct 30, 2019
.gitignore Added micro runtime that can auto_update micro Nov 2, 2019
.goreleaser.yml Change the naming of the release archives Oct 21, 2019
.travis.yml bump go mod and travis Oct 1, 2019
Dockerfile Bump to alpine go 1.13 Oct 1, 2019
LICENSE Move API and CLI into the micro project Apr 7, 2015
Makefile Set version to version-commit-unix-timestamp Oct 17, 2019
README.md update link in readme Nov 9, 2019
go.mod Update go mod Nov 11, 2019
go.sum Update go mod Nov 11, 2019
main.go Make micro cmd importable Jul 4, 2017

README.md

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

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"}'

Use the network

The micro network is a shared global services network actively in development.

Start micro

micro

Proxy service calls through the network

export MICRO_PROXY=go.micro.network

View network services, routes, nodes

# List services
micro services

# List nodes
micro network nodes

# List routes
micro network routes

# Peer graph
micro network graph

Usage

See all the options

micro --help

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

You can’t perform that action at this time.