forked from micro/go-micro
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Asim
committed
Jan 1, 2016
1 parent
d705d3f
commit 0d50b2e
Showing
9 changed files
with
512 additions
and
82 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
package cmd | ||
|
||
import ( | ||
"github.com/micro/go-micro/broker" | ||
"github.com/micro/go-micro/registry" | ||
"github.com/micro/go-micro/selector" | ||
"github.com/micro/go-micro/transport" | ||
) | ||
|
||
type Options struct { | ||
Name string | ||
Description string | ||
Version string | ||
|
||
Brokers map[string]func([]string, ...broker.Option) broker.Broker | ||
Registries map[string]func([]string, ...registry.Option) registry.Registry | ||
Selectors map[string]func(...selector.Option) selector.Selector | ||
Transports map[string]func([]string, ...transport.Option) transport.Transport | ||
} | ||
|
||
func Name(n string) Option { | ||
return func(o *Options) { | ||
o.Name = n | ||
} | ||
} | ||
|
||
func Description(d string) Option { | ||
return func(o *Options) { | ||
o.Description = d | ||
} | ||
} | ||
|
||
func Version(v string) Option { | ||
return func(o *Options) { | ||
o.Version = v | ||
} | ||
} | ||
|
||
func Broker(name string, b func([]string, ...broker.Option) broker.Broker) Option { | ||
return func(o *Options) { | ||
o.Brokers[name] = b | ||
} | ||
} | ||
|
||
func Registry(name string, r func([]string, ...registry.Option) registry.Registry) Option { | ||
return func(o *Options) { | ||
o.Registries[name] = r | ||
} | ||
} | ||
|
||
func Selector(name string, s func(...selector.Option) selector.Selector) Option { | ||
return func(o *Options) { | ||
o.Selectors[name] = s | ||
} | ||
} | ||
|
||
func Transport(name string, t func([]string, ...transport.Option) transport.Transport) Option { | ||
return func(o *Options) { | ||
o.Transports[name] = t | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Service | ||
|
||
This is an example of creating a micro service using the top level interface. | ||
|
||
## Prereqs | ||
|
||
Micro services need a discovery system so they can find each other. Micro uses consul by default but | ||
its easily swapped out with etcd, kubernetes, or various other systems. We'll run consul for convenience. | ||
|
||
1. Follow the install instructions - [https://www.consul.io/intro/getting-started/install.html](https://www.consul.io/intro/getting-started/install.html) | ||
|
||
2. Run Consul | ||
|
||
```shell | ||
$ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul | ||
``` | ||
|
||
## Run the example | ||
|
||
1. Get the service | ||
|
||
```shell | ||
go get github.com/micro/go-micro/examples/service | ||
``` | ||
|
||
2. Run the server | ||
|
||
```shell | ||
$GOPATH/bin/service | ||
``` | ||
|
||
3. Run the client | ||
|
||
```shell | ||
$GOPATH/bin/service --client | ||
``` | ||
|
||
And that's all there is to it. |
Oops, something went wrong.