Skip to content
Snippets Groups Projects
Commit 1ae43524 authored by vito.he's avatar vito.he
Browse files

Mod: make simple more easy

parent 6dd8e265
No related branches found
No related tags found
No related merge requests found
......@@ -20,14 +20,9 @@ package main
import (
"context"
"fmt"
"time"
)
import (
"github.com/dubbogo/hessian2"
)
import (
_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
"github.com/apache/dubbo-go/config"
......@@ -41,28 +36,19 @@ import (
_ "github.com/apache/dubbo-go/registry/zookeeper"
)
var (
survivalTimeout int = 10e9
)
// they are necessary:
// export CONF_CONSUMER_FILE_PATH="xxx"
// export APP_LOG_CONF_FILE="xxx"
func main() {
hessian.RegisterPOJO(&User{})
config.Load()
time.Sleep(3e9)
println("\n\n\nstart to test dubbo")
user := &User{}
err := userProvider.GetUser(context.TODO(), []interface{}{"A003"}, user)
err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
if err != nil {
panic(err)
}
println("response result: %v", user)
}
func println(format string, args ...interface{}) {
fmt.Printf("\033[32;40m"+format+"\033[0m\n", args...)
fmt.Printf("response result: %v\n", user)
}
......@@ -19,7 +19,6 @@ package main
import (
"context"
"fmt"
"time"
)
......@@ -31,36 +30,20 @@ import (
"github.com/apache/dubbo-go/config"
)
type Gender hessian.JavaEnum
var (
userProvider = new(UserProvider)
)
var userProvider = new(UserProvider)
func init() {
config.SetConsumerService(userProvider)
hessian.RegisterPOJO(&User{})
}
type User struct {
// !!! Cannot define lowercase names of variable
Id string
Name string
Age int32
Time time.Time
}
func (u User) String() string {
return fmt.Sprintf(
"User{Id:%s, Name:%s, Age:%d, Time:%s}",
u.Id, u.Name, u.Age, u.Time,
)
}
func (User) JavaClassName() string {
return "com.ikurento.user.User"
}
type UserProvider struct {
GetUser func(ctx context.Context, req []interface{}, rsp *User) error
}
......@@ -68,3 +51,7 @@ type UserProvider struct {
func (u *UserProvider) Reference() string {
return "UserProvider"
}
func (User) JavaClassName() string {
return "com.ikurento.user.User"
}
......@@ -17,7 +17,7 @@ application_config:
environment : "dev"
registries :
"hangzhouzk":
"demoZk":
protocol: "zookeeper"
timeout : "3s"
address: "127.0.0.1:2181"
......@@ -28,7 +28,7 @@ registries :
references:
"UserProvider":
# 可以指定多个registry,使用逗号隔开;不指定默认向所有注册中心注册
registry: "hangzhouzk"
registry: "demoZk"
protocol : "dubbo"
interface : "com.ikurento.user.UserProvider"
cluster: "failover"
......
......@@ -25,10 +25,6 @@ import (
"time"
)
import (
hessian "github.com/dubbogo/hessian2"
)
import (
"github.com/apache/dubbo-go/common/logger"
"github.com/apache/dubbo-go/config"
......@@ -52,10 +48,6 @@ var (
// export APP_LOG_CONF_FILE="xxx"
func main() {
// ------for hessian2------
hessian.RegisterPOJO(&User{})
// ------------
config.Load()
initSignal()
......
......@@ -18,50 +18,42 @@
package main
import (
"fmt"
"context"
"time"
)
type (
User struct {
// !!! Cannot define lowercase names of variable
Id string
Name string
Age int32
Time time.Time
}
import (
"github.com/dubbogo/hessian2"
)
var (
DefaultUser = User{
Id: "0", Name: "Alex Stocks", Age: 31,
}
userMap = make(map[string]User)
import (
"github.com/apache/dubbo-go/config"
)
func init() {
userMap["A000"] = DefaultUser
userMap["A001"] = User{Id: "001", Name: "ZhangSheng", Age: 18}
userMap["A002"] = User{Id: "002", Name: "Lily", Age: 20}
userMap["A003"] = User{Id: "113", Name: "Moorse", Age: 30}
for k, v := range userMap {
v.Time = time.Now()
userMap[k] = v
}
config.SetProviderService(new(UserProvider))
// ------for hessian2------
hessian.RegisterPOJO(&User{})
}
func (u User) String() string {
return fmt.Sprintf(
"User{Id:%s, Name:%s, Age:%d, Time:%s}",
u.Id, u.Name, u.Age, u.Time,
)
type User struct {
Id string
Name string
Age int32
Time time.Time
}
func (u User) JavaClassName() string {
return "com.ikurento.user.User"
type UserProvider struct {
}
func println(format string, args ...interface{}) {
fmt.Printf("\033[32;40m"+format+"\033[0m\n", args...)
func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
return &User{"A001", "Alex Stocks", 18, time.Now()}, nil
}
func (u *UserProvider) Reference() string {
return "UserProvider"
}
func (u User) JavaClassName() string {
return "com.ikurento.user.User"
}
package main
import (
"context"
"fmt"
)
import (
"github.com/apache/dubbo-go/config"
)
func init() {
config.SetProviderService(new(UserProvider))
}
type UserProvider struct {
}
func (u *UserProvider) getUser(userId string) (*User, error) {
if user, ok := userMap[userId]; ok {
return &user, nil
}
return nil, fmt.Errorf("invalid user id:%s", userId)
}
func (u *UserProvider) GetUser(ctx context.Context, req []interface{}, rsp *User) error {
var (
err error
user *User
)
println("req:%#v", req)
user, err = u.getUser(req[0].(string))
if err == nil {
*rsp = *user
println("rsp:%#v", rsp)
}
return err
}
func (u *UserProvider) Reference() string {
return "UserProvider"
}
......@@ -11,20 +11,15 @@ application_config:
environment : "dev"
registries :
"hangzhouzk":
# 对应java配置中address属性的zookeeper <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
"demoZk":
protocol: "zookeeper"
timeout : "3s"
address: "127.0.0.1:2181"
username: ""
password: ""
services:
"UserProvider":
# 可以指定多个registry,使用逗号隔开;不指定默认向所有注册中心注册
registry: "hangzhouzk"
registry: "demoZk"
protocol : "dubbo"
# 相当于dubbo.xml中的interface
interface : "com.ikurento.user.UserProvider"
......@@ -36,11 +31,9 @@ services:
retries: 1
loadbalance: "random"
protocols:
"dubbo1":
"dubbo":
name: "dubbo"
# ip : "127.0.0.1"
port: 20000
......
......@@ -4,8 +4,6 @@ package com.ikurento.user;
public interface UserProvider {
User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
}
......@@ -8,7 +8,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class UserProviderImpl implements UserProvider {
// private static final Logger logger = LoggerFactory.getLogger(getClass()); // 只输出到dubbo的log(logs/server.log)
private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); // 输出到user-server.log
Map<String, User> userMap = new HashMap<String, User>();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment