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

Merge branch 'develop' of https://github.com/dubbo/go-for-apache-dubbo into develop

parents 127163d3 41242b41
No related branches found
No related tags found
No related merge requests found
Showing
with 49 additions and 39 deletions
......@@ -53,7 +53,7 @@ func (p *Proxy) Implement(v config.RPCService) {
makeDubboCallProxy := func(methodName string, outs []reflect.Type) func(in []reflect.Value) []reflect.Value {
return func(in []reflect.Value) []reflect.Value {
log.Info("call method!")
inv := support.NewRPCInvocationForConsumer(methodName, nil, in[1].Interface().([]interface{}), in[2].Interface(), p.callBack, config.URL{}, nil)
for k, v := range p.attachments {
inv.SetAttachments(k, v)
......
......@@ -219,8 +219,13 @@ func Load() (map[string]*ReferenceConfig, map[string]*ServiceConfig) {
length := len(consumerConfig.References)
for index := 0; index < length; index++ {
con := &consumerConfig.References[index]
rpcService := conServices[con.InterfaceName]
if rpcService == nil {
log.Warn("%s is not exsist!", con.InterfaceName)
continue
}
con.Refer()
con.Implement(conServices[con.InterfaceName])
con.Implement(rpcService)
refMap[con.InterfaceName] = con
}
}
......@@ -233,7 +238,12 @@ func Load() (map[string]*ReferenceConfig, map[string]*ServiceConfig) {
length := len(providerConfig.Services)
for index := 0; index < length; index++ {
pro := &providerConfig.Services[index]
pro.Implement(proServices[pro.InterfaceName])
rpcService := proServices[pro.InterfaceName]
if rpcService == nil {
log.Warn("%s is not exsist!", pro.InterfaceName)
continue
}
pro.Implement(rpcService)
if err := pro.Export(); err != nil {
panic(fmt.Sprintf("service %s export failed! ", pro.InterfaceName))
}
......
......@@ -4,7 +4,6 @@ import (
"context"
"errors"
"flag"
"fmt"
"log"
"sync"
"sync/atomic"
......@@ -12,7 +11,7 @@ import (
)
import (
hessian "github.com/dubbogo/hessian2"
"github.com/dubbogo/hessian2"
"github.com/montanaflynn/stats"
)
......@@ -81,18 +80,18 @@ func main() {
go func(i int) {
defer func() {
if r := recover(); r != nil {
log.Printf("Recovered in f", r)
log.Print("Recovered in f", r)
}
}()
//warmup
for j := 0; j < 5; j++ {
user := &User{}
err := conMap["com.ikurento.user.UserProvider"].GetRPCService().(*UserProvider).GetUser(context.TODO(), []interface{}{"A003"}, user)
if err != nil {
fmt.Println(err)
}
}
//for j := 0; j < 5; j++ {
// user := &User{}
// err := conMap["com.ikurento.user.UserProvider"].GetRPCService().(*UserProvider).GetUser(context.TODO(), []interface{}{"A003"}, user)
// if err != nil {
// fmt.Println(err)
// }
//}
startWg.Done()
startWg.Wait()
......
......@@ -5,7 +5,7 @@ pprof_enabled : true
pprof_port : 10086
# client
request_timeout : "3500ms"
request_timeout : "100ms"
net_io_timeout : "2s"
# connect timeout
connect_timeout : "100ms"
......
......@@ -5,7 +5,7 @@ pprof_enabled : true
pprof_port : 10086
# client
request_timeout : "3500ms"
request_timeout : "100ms"
net_io_timeout : "2s"
# connect timeout
connect_timeout : "100ms"
......
......@@ -7,7 +7,7 @@
<property name="json">false</property> <!-- true enables json log format, its priority is high than format -->
<property name="format">[%D %T] [%L] (%S) %M</property> <!-- log format, if json is false this option is enable -->
</filter>
<filter enabled="true">
<filter enabled="false">
<tag>debug_file</tag>
<type>file</type>
<level>DEBUG</level>
......@@ -20,7 +20,7 @@
<property name="maxbackup">16</property> <!-- \d+ -->
<property name="daily">true</property> <!-- Automatically rotates when a log message is written after midnight -->
</filter>
<filter enabled="true">
<filter enabled="false">
<tag>info_file</tag>
<type>file</type>
<level>INFO</level>
......
......@@ -5,7 +5,7 @@ pprof_enabled : true
pprof_port : 10086
# client
request_timeout : "3500ms"
request_timeout : "100ms"
net_io_timeout : "2s"
# connect timeout
connect_timeout : "100ms"
......
......@@ -7,7 +7,7 @@
<property name="json">false</property> <!-- true enables json log format, its priority is high than format -->
<property name="format">[%D %T] [%L] (%S) %M</property> <!-- log format, if json is false this option is enable -->
</filter>
<filter enabled="true">
<filter enabled="false">
<tag>debug_file</tag>
<type>file</type>
<level>DEBUG</level>
......
<logging>
<filter enabled="false">
<filter enabled="true">
<tag>stdout</tag>
<type>console</type>
<!-- level is (:?FINEST|FINE|DEBUG|TRACE|INFO|WARNING|ERROR) -->
<level>DEBUG</level>
<level>INFO</level>
<property name="json">false</property> <!-- true enables json log format, its priority is high than format -->
<property name="format">[%D %T] [%L] (%S) %M</property> <!-- log format, if json is false this option is enable -->
</filter>
......@@ -20,7 +20,7 @@
<property name="maxbackup">16</property> <!-- \d+ -->
<property name="daily">true</property> <!-- Automatically rotates when a log message is written after midnight -->
</filter>
<filter enabled="false">
<filter enabled="true">
<tag>info_file</tag>
<type>file</type>
<level>INFO</level>
......
......@@ -4,7 +4,6 @@ import (
"context"
"errors"
"flag"
"fmt"
"log"
"sync"
"sync/atomic"
......@@ -81,13 +80,13 @@ func main() {
}()
//warmup
for j := 0; j < 5; j++ {
user := &JsonRPCUser{}
err := conMap["com.ikurento.user.UserProvider"].GetRPCService().(*UserProvider).GetUser(context.TODO(), []interface{}{"A003"}, user)
if err != nil {
fmt.Println(err)
}
}
//for j := 0; j < 5; j++ {
// user := &JsonRPCUser{}
// err := conMap["com.ikurento.user.UserProvider"].GetRPCService().(*UserProvider).GetUser(context.TODO(), []interface{}{"A003"}, user)
// if err != nil {
// fmt.Println(err)
// }
//}
startWg.Done()
startWg.Wait()
......
......@@ -5,7 +5,7 @@ pprof_enabled : true
pprof_port : 10086
# client
request_timeout : "3500ms"
request_timeout : "100ms"
net_io_timeout : "2s"
# connect timeout
connect_timeout : "100ms"
......
......@@ -5,7 +5,7 @@ pprof_enabled : true
pprof_port : 10086
# client
request_timeout : "3500ms"
request_timeout : "100ms"
net_io_timeout : "2s"
# connect timeout
connect_timeout : "100ms"
......
......@@ -7,7 +7,7 @@
<property name="json">false</property> <!-- true enables json log format, its priority is high than format -->
<property name="format">[%D %T] [%L] (%S) %M</property> <!-- log format, if json is false this option is enable -->
</filter>
<filter enabled="true">
<filter enabled="false">
<tag>debug_file</tag>
<type>file</type>
<level>DEBUG</level>
......@@ -20,7 +20,7 @@
<property name="maxbackup">16</property> <!-- \d+ -->
<property name="daily">true</property> <!-- Automatically rotates when a log message is written after midnight -->
</filter>
<filter enabled="true">
<filter enabled="false">
<tag>info_file</tag>
<type>file</type>
<level>INFO</level>
......
......@@ -5,7 +5,7 @@ pprof_enabled : true
pprof_port : 10086
# client
request_timeout : "3500ms"
request_timeout : "100ms"
net_io_timeout : "2s"
# connect timeout
connect_timeout : "100ms"
......
......@@ -7,7 +7,7 @@
<property name="json">false</property> <!-- true enables json log format, its priority is high than format -->
<property name="format">[%D %T] [%L] (%S) %M</property> <!-- log format, if json is false this option is enable -->
</filter>
<filter enabled="true">
<filter enabled="false">
<tag>debug_file</tag>
<type>file</type>
<level>DEBUG</level>
......
<logging>
<filter enabled="false">
<filter enabled="true">
<tag>stdout</tag>
<type>console</type>
<!-- level is (:?FINEST|FINE|DEBUG|TRACE|INFO|WARNING|ERROR) -->
<level>DEBUG</level>
<level>INFO</level>
<property name="json">false</property> <!-- true enables json log format, its priority is high than format -->
<property name="format">[%D %T] [%L] (%S) %M</property> <!-- log format, if json is false this option is enable -->
</filter>
......@@ -20,7 +20,7 @@
<property name="maxbackup">16</property> <!-- \d+ -->
<property name="daily">true</property> <!-- Automatically rotates when a log message is written after midnight -->
</filter>
<filter enabled="false">
<filter enabled="true">
<tag>info_file</tag>
<type>file</type>
<level>INFO</level>
......
......@@ -27,6 +27,8 @@ func NewRpcClientPackageHandler(client *Client) *RpcClientPackageHandler {
}
func (p *RpcClientPackageHandler) Read(ss getty.Session, data []byte) (interface{}, int, error) {
p.client.pendingLock.RLock()
defer p.client.pendingLock.RUnlock()
pkg := &DubboPackage{
Body: p.client.pendingResponses[SequenceType(ss.GetAttribute("seq").(uint64))].reply,
}
......
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