README
¶
JUPITER: Governance-oriented Microservice Framework
Introduction
JUPITER is a governance-oriented microservice framework, which is being used for years at Douyu.
Documentation
See the 中文文档 for the Chinese documentation.
Quick Start
func main() {
var app jupiter.Application
app.Startup()
app.Serve(startHTTPServer())
app.Serve(startGRPCServer())
app.Schedule(startWorker())
app.Run()
}
func startHTTPServer() server.Server {
server := xecho.DefaultConfig().Build()
server.GET("/hello", func(ctx echo.Context) error {
return ctx.JSON(200, "Gopher Wuhan")
})
return server
}
func startGRPCServer() server.Server {
server := xgrpc.DefaultConfig().Build()
helloworld.RegisterGreeterServer(server.Server, new(greeter.Greeter))
return server
}
func startWorker() worker.Worker {
cron := xcron.DefaultConfig().Build()
cron.Schedule(xcron.Every(time.Second*10), xcron.FuncJob(func() error {
return nil
}))
return cron
}
More Example:
Bugs and Feedback
For bug report, questions and discussions please submit an issue.
Contributing
Contributions are always welcomed! Please see CONTRIBUTING for detailed guidelines.
You can start with the issues labeled with good first issue.
Contact
- DingTalk:
Documentation
¶
Index ¶
- Constants
- type Application
- func (app *Application) GracefulStop(ctx context.Context) (err error)
- func (app *Application) Job(runner job.Runner) error
- func (app *Application) RegisterHooks(k uint32, fns ...func() error) error
- func (app *Application) Run(servers ...server.Server) error
- func (app *Application) Schedule(w worker.Worker) error
- func (app *Application) Serve(s ...server.Server) error
- func (app *Application) SetRegistry(reg registry.Registry)
- func (app *Application) Startup(fns ...func() error) error
- func (app *Application) Stop() (err error)
- func (a *Application) WithOptions(options ...Option)
- type Disable
- type Option
Constants ¶
View Source
const ( //StageAfterStop after app stop StageAfterStop uint32 = iota + 1 //StageBeforeStop before app stop StageBeforeStop )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Application ¶
type Application struct { HideBanner bool // contains filtered or unexported fields }
Application is the framework's instance, it contains the servers, workers, client and configuration settings. Create an instance of Application, by using &Application{}
func DefaultApp ¶
func DefaultApp() *Application
func (*Application) GracefulStop ¶
func (app *Application) GracefulStop(ctx context.Context) (err error)
GracefulStop application after necessary cleanup
func (*Application) RegisterHooks ¶
func (app *Application) RegisterHooks(k uint32, fns ...func() error) error
RegisterHooks register a stage Hook
func (*Application) Run ¶
func (app *Application) Run(servers ...server.Server) error
Run run application
func (*Application) Serve ¶
func (app *Application) Serve(s ...server.Server) error
Serve start server
func (*Application) SetRegistry ¶
func (app *Application) SetRegistry(reg registry.Registry)
SetRegistry set customize registry
func (*Application) Stop ¶
func (app *Application) Stop() (err error)
Stop application immediately after necessary cleanup
func (*Application) WithOptions ¶
func (a *Application) WithOptions(options ...Option)
type Option ¶
type Option func(a *Application)
func WithConfigParser ¶
func WithConfigParser(unmarshaller conf.Unmarshaller) Option
func WithDisable ¶
Directories
¶
Path | Synopsis |
---|---|
example
|
|
util/xbuffer
Package buffer provides an implementation of an unbounded buffer.
|
Package buffer provides an implementation of an unbounded buffer. |
util/xtime
https://github.com/siddontang/go/tree/master/time2
|
https://github.com/siddontang/go/tree/master/time2 |
tools
|
|
jupiter
Module
|