I got it. Hash shouldnt be tied to addr.
parent
f912272912
commit
b1466a3e48
|
|
@ -11,7 +11,7 @@ import (
|
|||
|
||||
func main() {
|
||||
as := args.NewArgSet()
|
||||
as.Append(args.STRING, "addr", "csv addr(s) of server(s)", "http://localhost:21412")
|
||||
as.Append(args.STRING, "addr", "csv key;addr(s) of server(s)", "key;http://localhost:21412")
|
||||
as.Append(args.INT, "r", "read concern", 1)
|
||||
as.Append(args.INT, "w", "write concern", 1)
|
||||
if err := as.Parse(); err != nil {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,17 @@ func (h hasher) Sum64(data []byte) uint64 {
|
|||
type netAddr string
|
||||
|
||||
func (na netAddr) String() string {
|
||||
return string(na)
|
||||
return strings.Split(string(na), ";")[0]
|
||||
}
|
||||
|
||||
func (na netAddr) Addr() string {
|
||||
ind := strings.Index(string(na), ";")
|
||||
if ind < 0 {
|
||||
ind = 0
|
||||
} else {
|
||||
ind += 1
|
||||
}
|
||||
return string(na)[ind:]
|
||||
}
|
||||
|
||||
func (na netAddr) Network() string {
|
||||
|
|
@ -72,7 +82,7 @@ func New(rConcern, wConcern int, addrs ...string) (*Client, error) {
|
|||
hash.Add(netAddr(addr))
|
||||
}
|
||||
for _, addr := range hash.GetMembers() {
|
||||
conn, err := net.Dial("tcp", strings.TrimPrefix(strings.TrimPrefix(addr.String(), "http://"), "https://"))
|
||||
conn, err := net.Dial("tcp", strings.TrimPrefix(strings.TrimPrefix(addr.(netAddr).Addr(), "http://"), "https://"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -99,7 +109,7 @@ func (c *Client) scatterGather(key string, forEach func(addr string, each chan r
|
|||
return nil, err
|
||||
}
|
||||
for _, member := range members {
|
||||
go forEach(member.String(), each)
|
||||
go forEach(member.(netAddr).Addr(), each)
|
||||
}
|
||||
go func() {
|
||||
out := make(map[string]int)
|
||||
|
|
|
|||
Loading…
Reference in New Issue