update readme
This commit is contained in:
parent
db087eff3b
commit
65d6e45707
56
README.md
56
README.md
@ -6,44 +6,42 @@ The **Micro** philosophy is sane defaults with a pluggable architecture. We prov
|
|||||||
|
|
||||||
Everything in go-micro is **pluggable**. You can find and contribute to plugins at [github.com/micro/go-plugins](https://github.com/micro/go-plugins).
|
Everything in go-micro is **pluggable**. You can find and contribute to plugins at [github.com/micro/go-plugins](https://github.com/micro/go-plugins).
|
||||||
|
|
||||||
|
## The Features
|
||||||
|
|
||||||
|
Go Micro abstracts way the details of distributed systems and makes building microservices simple. Beneath the covers it provides a number of features.
|
||||||
|
|
||||||
|
**Service Discovery** - Applications are automatically registered with service discovery so they can locate each other
|
||||||
|
|
||||||
|
**Load Balancing** - Smart client side load balancing is used to balance requests between instances of a service.
|
||||||
|
|
||||||
|
**Synchronous Communication** - Request-response is provided as a bidirectional streaming transport layer.
|
||||||
|
|
||||||
|
**Asynchronous Communication** - Microservices are an event driven architecture. Publish and Subscribe via the Broker.
|
||||||
|
|
||||||
|
**Message Encoding** - Micro services can encode requests in a number of encoding formats and seamlessly decode based on the Content-Type header.
|
||||||
|
|
||||||
|
**RPC Client/Server** - The client and server leverage the above features and provide a clean simple interface for building microservices.
|
||||||
|
|
||||||
|
## Learn By Example
|
||||||
|
|
||||||
An example service can be found in [**examples/service**](https://github.com/micro/go-micro/tree/master/examples/service). The [**examples**](https://github.com/micro/go-micro/tree/master/examples) directory contains many more examples for using things such as middleware/wrappers, selector filters, pub/sub and code generation.
|
An example service can be found in [**examples/service**](https://github.com/micro/go-micro/tree/master/examples/service). The [**examples**](https://github.com/micro/go-micro/tree/master/examples) directory contains many more examples for using things such as middleware/wrappers, selector filters, pub/sub and code generation.
|
||||||
|
|
||||||
For the complete greeter example look at [**micro/examples/greeter**](https://github.com/micro/micro/tree/master/examples/greeter).
|
For the complete greeter example look at [**micro/examples/greeter**](https://github.com/micro/micro/tree/master/examples/greeter). Other examples can be found throughout the GitHub repository.
|
||||||
|
|
||||||
Check out the blog post to learn how to write go-micro services [https://blog.micro.mu/2016/03/28/go-micro.html](https://blog.micro.mu/2016/03/28/go-micro.html).
|
Check out the blog post to learn how to write go-micro services [https://blog.micro.mu/2016/03/28/go-micro.html](https://blog.micro.mu/2016/03/28/go-micro.html).
|
||||||
|
|
||||||
Join the community to learn more:
|
## Join The Community
|
||||||
|
|
||||||
|
There's a growing community on Slack with hundreds of members and a mailing list for those that prefer the classic method of communication.
|
||||||
|
|
||||||
|
Join us to discuss, learn and contribute:
|
||||||
|
|
||||||
- [Mailing List](https://groups.google.com/forum/#!forum/microhq)
|
- [Mailing List](https://groups.google.com/forum/#!forum/microhq)
|
||||||
- [Slack](https://micro-services.slack.com) : [Invite](http://slack.micro.mu/)
|
- [Slack](https://micro-services.slack.com) : [Invite](http://slack.micro.mu/)
|
||||||
|
|
||||||
## Features
|
## Community Plugins
|
||||||
|
|
||||||
Feature | Package | Built-in Plugin | Description
|
By default go-micro only provides a few implementation of each interface at the core but it's completely pluggable. There's already dozens of plugins which are available at [github.com/micro/go-plugins](https://github.com/micro/go-plugins). Contributions are welcome!
|
||||||
------- | ------- | --------- | -----------
|
|
||||||
Discovery | [Registry](https://godoc.org/github.com/micro/go-micro/registry) | consul,mdns | Service discovery mechanism
|
|
||||||
Codec | [Codec](https://godoc.org/github.com/micro/go-micro/codec) | proto,json | Message encoding
|
|
||||||
Balancer | [Selector](https://godoc.org/github.com/micro/go-micro/selector) | random | Client side load balancing
|
|
||||||
Pub/Sub | [Broker](https://godoc.org/github.com/micro/go-micro/broker) | http | Asynchonous communication
|
|
||||||
Transport | [Transport](https://godoc.org/github.com/micro/go-micro/transport) | http | Synchronous communication
|
|
||||||
Client | [Client](https://godoc.org/github.com/micro/go-micro/client) | rpc | RPC Client
|
|
||||||
Server | [Server](https://godoc.org/github.com/micro/go-micro/server) | rpc | RPC Server
|
|
||||||
|
|
||||||
## Example Services
|
|
||||||
Project | Description
|
|
||||||
----- | ------
|
|
||||||
[greeter](https://github.com/micro/micro/tree/master/examples/greeter) | A greeter service (includes Go, Ruby, Python examples)
|
|
||||||
[geo-srv](https://github.com/micro/geo-srv) | Geolocation tracking service using hailocab/go-geoindex
|
|
||||||
[geo-api](https://github.com/micro/geo-api) | A HTTP API handler for geo location tracking and search
|
|
||||||
[geocode-srv](https://github.com/micro/geocode-srv) | A geocoding service using the Google Geocoding API
|
|
||||||
[hailo-srv](https://github.com/micro/hailo-srv) | A service for the hailo taxi service developer api
|
|
||||||
[place-srv](https://github.com/micro/place-srv) | A microservice to store and retrieve places (includes Google Place Search API)
|
|
||||||
[slack-srv](https://github.com/micro/slack-srv) | The slack bot API as a go-micro RPC service
|
|
||||||
[twitter-srv](https://github.com/micro/twitter-srv) | A microservice for the twitter API
|
|
||||||
[user-srv](https://github.com/micro/user-srv) | A microservice for user management and authentication
|
|
||||||
|
|
||||||
## Go Plugins
|
|
||||||
|
|
||||||
By default go-micro only provides a single implementation of each interface. Plugins can be found at [github.com/micro/go-plugins](https://github.com/micro/go-plugins). Contributions welcome!
|
|
||||||
|
|
||||||
## How does it work?
|
## How does it work?
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user