commit | a3fe848a2eda51c0c411ba7070dd9171966f391d | [log] [tgz] |
---|---|---|
author | Ken Liu <ken.lj.hz@gmail.com> | Mon Jul 29 17:12:47 2024 +0800 |
committer | GitHub <noreply@github.com> | Mon Jul 29 17:12:47 2024 +0800 |
tree | df529c806f7e2b9de76df3205fb4719aed02c92f | |
parent | 8747aa96b341926c58991ce2dae083626e82b015 [diff] |
Revert "Temporarily remove the routers until fixed (#2718)" This reverts commit ee3d011b2e28fafa732ce66c72ed95959fd0dd31.
Apache Dubbo is an easy-to-use Web and RPC framework that provides multiple language implementations(Go, Java, Rust, Node.js, Web) for communication, service discovery, traffic management, observability, security, tools, and best practices for building enterprise-ready microservices.
Dubbo-go is the Go implementation of triple protocol(a fully gRPC compatible and HTTP-friendly protocol) and the various features for building microservice architecture designed by Dubbo.
Visit the official website for more information.
You can learn how to develop a dubbo-go RPC application step by step in 5 minutes by following our Quick Start demo.
It's as simple as the code shown below, you define a service with Protobuf, provide your own service implementation, register it to a server, and start the server.
func (srv *GreetTripleServer) Greet(ctx context.Context, req *greet.GreetRequest) (*greet.GreetResponse, error) {
resp := &greet.GreetResponse{Greeting: req.Name}
return resp, nil
}
func main() {
srv, _ := server.NewServer(
server.WithServerProtocol(
protocol.WithPort(20000),
protocol.WithTriple(),
),
)
_ := greet.RegisterGreetServiceHandler(srv, &GreetTripleServer{})
if err := srv.Serve(); err != nil {
logger.Error(err)
}
}
After the server is up and running, call your service via cURL:
curl \ --header "Content-Type: application/json" \ --data '{"name": "Dubbo"}' \ http://localhost:20000/greet.GreetService/Greet
Or, you can start a standard dubbo-go client to call the service:
func main() {
cli, _ := client.NewClient(
client.WithClientURL("127.0.0.1:20000"),
)
svc, _ := greet.NewGreetService(cli)
resp, _ := svc.Greet(context.Background(), &greet.GreetRequest{Name: "hello world"})
logger.Infof("Greet response: %s", resp.Greeting)
}
See the samples for detailed information on usage. Next, learn how to deploy, monitor and manage the traffic of your dubbo-go application by visiting the official website.
Please visit CONTRIBUTING for details on submitting patches and the contribution workflow.
If you are using apache/dubbo-go and think that it helps you or want to contribute code for Dubbo-go, please add your company to the user list to let us know your needs.
Apache Dubbo-go software is licensed under the Apache License Version 2.0. See the LICENSE file for details.