filer master start up with default ip address instead of just localhost

This commit is contained in:
Chris Lu 2020-04-18 15:17:27 -07:00
parent 5d346d44bd
commit 076c8bd3bc
16 changed files with 229 additions and 153 deletions

View file

@ -127,7 +127,7 @@ func runBenchmark(cmd *Command, args []string) bool {
defer pprof.StopCPUProfile()
}
b.masterClient = wdclient.NewMasterClient(b.grpcDialOption, "client", 0, strings.Split(*b.masters, ","))
b.masterClient = wdclient.NewMasterClient(b.grpcDialOption, "client", "", 0, strings.Split(*b.masters, ","))
go b.masterClient.KeepConnectedToMaster()
b.masterClient.WaitUntilConnected()

View file

@ -43,7 +43,7 @@ func init() {
cmdFiler.Run = runFiler // break init cycle
f.masters = cmdFiler.Flag.String("master", "localhost:9333", "comma-separated master servers")
f.collection = cmdFiler.Flag.String("collection", "", "all data will be stored in this collection")
f.ip = cmdFiler.Flag.String("ip", "", "filer server http listen ip address")
f.ip = cmdFiler.Flag.String("ip", util.DetectedHostAddress(), "filer server http listen ip address")
f.port = cmdFiler.Flag.Int("port", 8888, "filer server http listen port")
f.publicPort = cmdFiler.Flag.Int("port.readonly", 0, "readonly port opened to public")
f.defaultReplicaPlacement = cmdFiler.Flag.String("defaultReplicaPlacement", "000", "default replication type if not specified")
@ -109,6 +109,7 @@ func (fo *FilerOptions) startFiler() {
DataCenter: *fo.dataCenter,
DefaultLevelDbDir: defaultLevelDbDirectory,
DisableHttp: *fo.disableHttp,
Host: *fo.ip,
Port: uint32(*fo.port),
Cipher: *fo.cipher,
})

View file

@ -172,6 +172,7 @@ func checkPeers(masterIp string, masterPort int, peers string) (masterAddress st
func (m *MasterOptions) toMasterOption(whiteList []string) *weed_server.MasterOption {
return &weed_server.MasterOption{
Host: *m.ip,
Port: *m.port,
MetaFolder: *m.metaFolder,
VolumeSizeLimitMB: *m.volumeSizeLimitMB,

View file

@ -45,7 +45,7 @@ var cmdServer = &Command{
}
var (
serverIp = cmdServer.Flag.String("ip", "localhost", "ip or server name")
serverIp = cmdServer.Flag.String("ip", util.DetectedHostAddress(), "ip or server name")
serverBindIp = cmdServer.Flag.String("ip.bind", "0.0.0.0", "ip address to bind to")
serverTimeout = cmdServer.Flag.Int("idleTimeout", 30, "connection idle seconds")
serverDataCenter = cmdServer.Flag.String("dataCenter", "", "current volume server's data center name")

View file

@ -40,10 +40,10 @@ type Filer struct {
metaLogReplication string
}
func NewFiler(masters []string, grpcDialOption grpc.DialOption, filerGrpcPort uint32, collection string, replication string, notifyFn func()) *Filer {
func NewFiler(masters []string, grpcDialOption grpc.DialOption, filerHost string, filerGrpcPort uint32, collection string, replication string, notifyFn func()) *Filer {
f := &Filer{
directoryCache: ccache.New(ccache.Configure().MaxSize(1000).ItemsToPrune(100)),
MasterClient: wdclient.NewMasterClient(grpcDialOption, "filer", filerGrpcPort, masters),
MasterClient: wdclient.NewMasterClient(grpcDialOption, "filer", filerHost, filerGrpcPort, masters),
fileIdDeletionQueue: util.NewUnboundedQueue(),
GrpcDialOption: grpcDialOption,
}

View file

@ -27,6 +27,19 @@ func (broker *MessageBroker) Publish(stream messaging_pb.SeaweedMessaging_Publis
topicConfig := &messaging_pb.TopicConfiguration{
}
// send init response
initResponse := &messaging_pb.PublishResponse{
Config: nil,
Redirect: nil,
}
err = stream.Send(initResponse)
if err != nil {
return err
}
if initResponse.Redirect != nil {
return nil
}
// get lock
tp := TopicPartition{
@ -87,6 +100,8 @@ func (broker *MessageBroker) Publish(stream messaging_pb.SeaweedMessaging_Publis
Headers: in.Data.Headers,
}
println("received message:", string(in.Data.Value))
data, err := proto.Marshal(m)
if err != nil {
glog.Errorf("marshall error: %v\n", err)

View file

@ -2,11 +2,11 @@ package broker
import (
"context"
"fmt"
"time"
"google.golang.org/grpc"
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/pb"
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/chrislusf/seaweedfs/weed/pb/master_pb"
@ -34,7 +34,9 @@ func NewMessageBroker(option *MessageBrokerOption, grpcDialOption grpc.DialOptio
topicLocks: NewTopicLocks(),
}
go messageBroker.loopForEver()
messageBroker.checkPeers()
// go messageBroker.loopForEver()
return messageBroker, nil
}
@ -52,58 +54,55 @@ func (broker *MessageBroker) checkPeers() {
// contact a filer about masters
var masters []string
for _, filer := range broker.option.Filers {
err := broker.withFilerClient(filer, func(client filer_pb.SeaweedFilerClient) error {
resp, err := client.GetFilerConfiguration(context.Background(), &filer_pb.GetFilerConfigurationRequest{})
if err != nil {
return err
found := false
for !found {
for _, filer := range broker.option.Filers {
err := broker.withFilerClient(filer, func(client filer_pb.SeaweedFilerClient) error {
resp, err := client.GetFilerConfiguration(context.Background(), &filer_pb.GetFilerConfigurationRequest{})
if err != nil {
return err
}
masters = append(masters, resp.Masters...)
return nil
})
if err == nil {
found = true
break
}
masters = append(masters, resp.Masters...)
return nil
})
if err != nil {
fmt.Printf("failed to read masters from %+v: %v\n", broker.option.Filers, err)
return
glog.V(0).Infof("failed to read masters from %+v: %v", broker.option.Filers, err)
time.Sleep(time.Second)
}
}
glog.V(0).Infof("received master list: %s", masters)
// contact each masters for filers
var filers []string
for _, master := range masters {
err := broker.withMasterClient(master, func(client master_pb.SeaweedClient) error {
resp, err := client.ListMasterClients(context.Background(), &master_pb.ListMasterClientsRequest{
ClientType: "filer",
found = false
for !found {
for _, master := range masters {
err := broker.withMasterClient(master, func(client master_pb.SeaweedClient) error {
resp, err := client.ListMasterClients(context.Background(), &master_pb.ListMasterClientsRequest{
ClientType: "filer",
})
if err != nil {
return err
}
filers = append(filers, resp.GrpcAddresses...)
return nil
})
if err != nil {
return err
if err == nil {
found = true
break
}
fmt.Printf("filers: %+v\n", resp.GrpcAddresses)
filers = append(filers, resp.GrpcAddresses...)
return nil
})
if err != nil {
fmt.Printf("failed to list filers: %v\n", err)
return
glog.V(0).Infof("failed to list filers: %v", err)
time.Sleep(time.Second)
}
}
glog.V(0).Infof("received filer list: %s", filers)
// contact each filer about brokers
for _, filer := range filers {
err := broker.withFilerClient(filer, func(client filer_pb.SeaweedFilerClient) error {
resp, err := client.GetFilerConfiguration(context.Background(), &filer_pb.GetFilerConfigurationRequest{})
if err != nil {
return err
}
masters = append(masters, resp.Masters...)
return nil
})
if err != nil {
fmt.Printf("failed to read masters from %+v: %v\n", broker.option.Filers, err)
return
}
}
broker.option.Filers = filers
}

View file

@ -1,11 +1,34 @@
package client
import (
"context"
"google.golang.org/grpc"
"github.com/chrislusf/seaweedfs/weed/pb"
"github.com/chrislusf/seaweedfs/weed/security"
"github.com/chrislusf/seaweedfs/weed/util"
)
type MessagingClient struct {
bootstrapBrokers []string
grpcConnection *grpc.ClientConn
}
func NewMessagingClient(bootstrapBrokers []string) *MessagingClient {
func NewMessagingClient(bootstrapBrokers []string) (*MessagingClient, error) {
grpcDialOption := security.LoadClientTLS(util.GetViper(), "grpc.msg_client")
grpcConnection, err := pb.GrpcDial(context.Background(), "localhost:17777", grpcDialOption)
if err != nil {
return nil, err
}
return &MessagingClient{
bootstrapBrokers: bootstrapBrokers,
}
grpcConnection: grpcConnection,
}, nil
}
func (mc *MessagingClient) Shutdown() {
mc.grpcConnection.Close()
}

View file

@ -1,14 +1,76 @@
package client
import "github.com/chrislusf/seaweedfs/weed/pb/messaging_pb"
import (
"context"
"github.com/chrislusf/seaweedfs/weed/pb/messaging_pb"
)
type Publisher struct {
publishClient messaging_pb.SeaweedMessaging_PublishClient
}
func (c *MessagingClient) NewPublisher(namespace, topic string) *Publisher {
return &Publisher{}
func (mc *MessagingClient) NewPublisher(namespace, topic string) (*Publisher, error) {
stream, err := messaging_pb.NewSeaweedMessagingClient(mc.grpcConnection).Publish(context.Background())
if err != nil {
return nil, err
}
// send init message
err = stream.Send(&messaging_pb.PublishRequest{
Init: &messaging_pb.PublishRequest_InitMessage{
Namespace: namespace,
Topic: topic,
Partition: 0,
},
})
if err != nil {
return nil, err
}
// process init response
initResponse, err := stream.Recv()
if err != nil {
return nil, err
}
if initResponse.Redirect != nil {
// TODO follow redirection
}
if initResponse.Config != nil {
}
// setup looks for control messages
doneChan := make(chan error, 1)
go func() {
for {
in, err := stream.Recv()
if err != nil {
doneChan <- err
return
}
if in.Redirect != nil{
}
if in.Config != nil{
}
}
}()
return &Publisher{
publishClient: stream,
}, nil
}
func (p *Publisher) Publish(m *messaging_pb.RawData) error{
return nil
func (p *Publisher) Publish(m *messaging_pb.RawData) error {
return p.publishClient.Send(&messaging_pb.PublishRequest{
Data: m,
})
}
func (p *Publisher) Shutdown() {
p.publishClient.CloseSend()
}

View file

@ -14,6 +14,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/chrislusf/seaweedfs/weed/pb/master_pb"
"github.com/chrislusf/seaweedfs/weed/pb/messaging_pb"
)
const (
@ -158,6 +159,15 @@ func WithMasterClient(master string, grpcDialOption grpc.DialOption, fn func(cli
}
func WithBrokerGrpcClient(brokerGrpcAddress string, grpcDialOption grpc.DialOption, fn func(client messaging_pb.SeaweedMessagingClient) error) error {
return WithCachedGrpcClient(func(grpcConnection *grpc.ClientConn) error {
client := messaging_pb.NewSeaweedMessagingClient(grpcConnection)
return fn(client)
}, brokerGrpcAddress, grpcDialOption)
}
func WithFilerClient(filer string, grpcDialOption grpc.DialOption, fn func(client filer_pb.SeaweedFilerClient) error) error {
filerGrpcAddress, parseErr := ParseServerToGrpcAddress(filer)

View file

@ -74,11 +74,6 @@ message PublishRequest {
int32 partition = 3;
}
InitMessage init = 1;
message RawData {
bytes key = 1; // Message key
bytes value = 2; // Message payload
map<string, bytes> headers = 3; // Message headers
}
RawData data = 2;
}

View file

@ -283,7 +283,7 @@ func (m *BrokerMessage_RedirectMessage) GetNewBroker() string {
type PublishRequest struct {
Init *PublishRequest_InitMessage `protobuf:"bytes,1,opt,name=init" json:"init,omitempty"`
Data *PublishRequest_RawData `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
Data *RawData `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
}
func (m *PublishRequest) Reset() { *m = PublishRequest{} }
@ -298,7 +298,7 @@ func (m *PublishRequest) GetInit() *PublishRequest_InitMessage {
return nil
}
func (m *PublishRequest) GetData() *PublishRequest_RawData {
func (m *PublishRequest) GetData() *RawData {
if m != nil {
return m.Data
}
@ -337,38 +337,6 @@ func (m *PublishRequest_InitMessage) GetPartition() int32 {
return 0
}
type PublishRequest_RawData struct {
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
Headers map[string][]byte `protobuf:"bytes,3,rep,name=headers" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (m *PublishRequest_RawData) Reset() { *m = PublishRequest_RawData{} }
func (m *PublishRequest_RawData) String() string { return proto.CompactTextString(m) }
func (*PublishRequest_RawData) ProtoMessage() {}
func (*PublishRequest_RawData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 1} }
func (m *PublishRequest_RawData) GetKey() []byte {
if m != nil {
return m.Key
}
return nil
}
func (m *PublishRequest_RawData) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
func (m *PublishRequest_RawData) GetHeaders() map[string][]byte {
if m != nil {
return m.Headers
}
return nil
}
type PublishResponse struct {
Config *PublishResponse_ConfigMessage `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
Redirect *PublishResponse_RedirectMessage `protobuf:"bytes,2,opt,name=redirect" json:"redirect,omitempty"`
@ -551,7 +519,6 @@ func init() {
proto.RegisterType((*BrokerMessage_RedirectMessage)(nil), "messaging_pb.BrokerMessage.RedirectMessage")
proto.RegisterType((*PublishRequest)(nil), "messaging_pb.PublishRequest")
proto.RegisterType((*PublishRequest_InitMessage)(nil), "messaging_pb.PublishRequest.InitMessage")
proto.RegisterType((*PublishRequest_RawData)(nil), "messaging_pb.PublishRequest.RawData")
proto.RegisterType((*PublishResponse)(nil), "messaging_pb.PublishResponse")
proto.RegisterType((*PublishResponse_ConfigMessage)(nil), "messaging_pb.PublishResponse.ConfigMessage")
proto.RegisterType((*PublishResponse_RedirectMessage)(nil), "messaging_pb.PublishResponse.RedirectMessage")
@ -802,58 +769,57 @@ var _SeaweedMessaging_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("messaging.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 847 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x56, 0xcd, 0x8e, 0xe3, 0x44,
0x10, 0xde, 0x8e, 0x33, 0x93, 0x75, 0xe5, 0x97, 0x16, 0x83, 0x22, 0x33, 0x03, 0x96, 0x77, 0x25,
0x02, 0x23, 0xac, 0x21, 0x5c, 0xc2, 0x6a, 0x25, 0x94, 0x84, 0xb0, 0x44, 0x4c, 0x20, 0xea, 0xe4,
0x8a, 0xa2, 0x8e, 0xd3, 0x9b, 0xb5, 0x92, 0xd8, 0xc6, 0xdd, 0x21, 0xda, 0x13, 0x07, 0xb8, 0x72,
0xe2, 0x1d, 0xb8, 0x70, 0xe6, 0xc2, 0x8d, 0x07, 0xe0, 0x9d, 0x90, 0x7f, 0x63, 0x27, 0x1e, 0xef,
0x10, 0xed, 0xdc, 0xec, 0x72, 0xd5, 0x57, 0xf5, 0x55, 0x7d, 0xd5, 0x6e, 0xa8, 0x6f, 0x18, 0xe7,
0x74, 0x69, 0x5a, 0x4b, 0xdd, 0x71, 0x6d, 0x61, 0xe3, 0x4a, 0x6c, 0x98, 0x39, 0x73, 0xed, 0x97,
0x22, 0xbc, 0x33, 0xd9, 0xce, 0xb9, 0xe1, 0x9a, 0x73, 0xe6, 0x8e, 0xfc, 0x4f, 0x0c, 0x7f, 0x09,
0x45, 0xd3, 0x32, 0x45, 0x13, 0xa9, 0xa8, 0x55, 0x6e, 0x5f, 0xeb, 0xc9, 0x10, 0xfd, 0xc8, 0x5d,
0x1f, 0x5a, 0xa6, 0x08, 0x9f, 0x89, 0x1f, 0x88, 0x9f, 0x83, 0x44, 0x8d, 0x55, 0xb3, 0xe0, 0xc7,
0x7f, 0xf2, 0xa6, 0xf8, 0xae, 0xb1, 0x8a, 0xc2, 0xbd, 0x30, 0xe5, 0x9f, 0x02, 0x94, 0x13, 0x98,
0xf8, 0x12, 0x64, 0x8b, 0x6e, 0x18, 0x77, 0xa8, 0xc1, 0xfc, 0x9a, 0x64, 0xb2, 0x37, 0xe0, 0x77,
0xe1, 0x4c, 0xd8, 0x8e, 0x69, 0xf8, 0xd9, 0x64, 0x12, 0xbc, 0x78, 0x31, 0x0e, 0x75, 0x85, 0x29,
0x4c, 0xdb, 0x6a, 0x4a, 0x2a, 0x6a, 0x9d, 0x91, 0xbd, 0x01, 0xcf, 0xa0, 0xca, 0x05, 0x75, 0xc5,
0xd8, 0xe6, 0x81, 0x47, 0x51, 0x45, 0xad, 0x5a, 0xfb, 0x8b, 0xff, 0xc1, 0x54, 0x9f, 0x24, 0x01,
0x48, 0x1a, 0x0f, 0xab, 0x50, 0x16, 0xe6, 0x86, 0x71, 0x41, 0x37, 0xce, 0x77, 0xbc, 0x79, 0xa6,
0xa2, 0x96, 0x44, 0x92, 0x26, 0xfc, 0x04, 0xaa, 0x3c, 0xc6, 0x9f, 0x99, 0x8b, 0xe6, 0xb9, 0x5f,
0x7e, 0x65, 0x6f, 0x1c, 0x2e, 0xb4, 0x0e, 0x54, 0x53, 0x69, 0x30, 0xc0, 0xf9, 0x6d, 0x77, 0x3a,
0x98, 0x4c, 0x1b, 0x8f, 0x70, 0x05, 0x1e, 0x0f, 0xba, 0xe4, 0x76, 0xe8, 0xbd, 0x21, 0x5c, 0x05,
0x79, 0x3a, 0x1c, 0x0d, 0x26, 0xd3, 0xee, 0x68, 0xdc, 0x28, 0x28, 0xd7, 0x00, 0xfb, 0xb6, 0xe2,
0x2b, 0x80, 0x80, 0x19, 0xf3, 0x32, 0x21, 0xbf, 0x1a, 0x39, 0xb4, 0x0c, 0x17, 0xda, 0x9f, 0x08,
0x4a, 0x84, 0xee, 0xbe, 0xa2, 0x82, 0xe2, 0x06, 0x48, 0x2b, 0xf6, 0xda, 0xf7, 0xa9, 0x10, 0xef,
0xd1, 0x6b, 0xf0, 0x4f, 0x74, 0xbd, 0x65, 0x7e, 0x83, 0x2b, 0x24, 0x78, 0xc1, 0xcf, 0xa1, 0xf4,
0x8a, 0xd1, 0x05, 0x73, 0x79, 0x53, 0x52, 0xa5, 0x56, 0xb9, 0xad, 0xa5, 0x9b, 0x17, 0xe2, 0xe9,
0xdf, 0x04, 0x4e, 0x03, 0x4b, 0xb8, 0xaf, 0x49, 0x14, 0xa2, 0x3c, 0x83, 0x4a, 0xf2, 0x43, 0x32,
0xab, 0x9c, 0x93, 0xf5, 0x59, 0xa1, 0x83, 0xb4, 0x7f, 0x11, 0x94, 0x22, 0x62, 0x2a, 0xc8, 0x71,
0x53, 0x03, 0x5e, 0xbd, 0xc2, 0x0d, 0x22, 0x7b, 0x63, 0x84, 0x5c, 0xc8, 0xe0, 0x23, 0xdd, 0xc1,
0xa7, 0x98, 0xc5, 0x27, 0x1a, 0xfb, 0xdb, 0xe7, 0xf3, 0x17, 0x82, 0x6a, 0xcf, 0xb5, 0x57, 0xfb,
0xfd, 0xfb, 0x18, 0x8a, 0x0b, 0x2a, 0x68, 0xb8, 0x7f, 0x17, 0x99, 0x85, 0x10, 0xdf, 0x05, 0xbf,
0x80, 0xc7, 0x2e, 0x5b, 0x98, 0x2e, 0x33, 0x44, 0xb8, 0x6e, 0x07, 0xeb, 0x9a, 0x42, 0xd6, 0x49,
0xe8, 0x1b, 0x81, 0xc4, 0xc1, 0xca, 0x0d, 0xd4, 0x0f, 0x3e, 0x7a, 0xaa, 0xb1, 0xd8, 0x6e, 0x36,
0xf7, 0x11, 0xe2, 0xc5, 0x63, 0xbb, 0x00, 0x52, 0xfb, 0x43, 0x82, 0xda, 0x78, 0x3b, 0x5f, 0x9b,
0xfc, 0x15, 0x61, 0x3f, 0x6e, 0x19, 0xf7, 0xf6, 0x3e, 0x79, 0x70, 0xb4, 0xd2, 0x95, 0xa4, 0x7d,
0x33, 0x4e, 0x8d, 0x4e, 0x48, 0x3b, 0xe0, 0xf1, 0x34, 0x37, 0x3a, 0x94, 0x57, 0xd0, 0x05, 0x65,
0xf6, 0xc0, 0x07, 0x86, 0xf2, 0xf7, 0x09, 0x1b, 0xf2, 0xed, 0xe1, 0x86, 0x7c, 0x76, 0x1f, 0x46,
0x0f, 0x20, 0xb0, 0xdf, 0x0a, 0x50, 0x8f, 0x93, 0x71, 0xc7, 0xb6, 0x38, 0xc3, 0x7d, 0x38, 0x37,
0x6c, 0xeb, 0xa5, 0xb9, 0xcc, 0x3e, 0xe4, 0x0f, 0xdc, 0xf5, 0xbe, 0xef, 0x1b, 0x8d, 0x2b, 0x0c,
0xc5, 0xc3, 0x23, 0xf1, 0x7d, 0x9a, 0x0f, 0x73, 0xb7, 0xfc, 0x3a, 0x50, 0x4d, 0xe5, 0xc0, 0x1f,
0x41, 0x3d, 0x6e, 0xff, 0xcc, 0xb0, 0xb7, 0x56, 0xa0, 0xaa, 0x33, 0x52, 0x8b, 0xcd, 0x7d, 0xcf,
0x7a, 0x82, 0x70, 0x7f, 0x47, 0x70, 0x11, 0x24, 0xdb, 0xba, 0x6c, 0xea, 0x4d, 0x3f, 0xd2, 0xef,
0x29, 0xc2, 0xf9, 0x1a, 0xaa, 0x46, 0x08, 0x46, 0x63, 0xf1, 0x94, 0xdb, 0x6a, 0xba, 0x13, 0x7e,
0x9a, 0x7e, 0xd2, 0x8f, 0xa4, 0xc3, 0xb4, 0x26, 0xbc, 0x77, 0x58, 0x54, 0xd0, 0x35, 0x8d, 0xc0,
0xe5, 0x0b, 0x26, 0x32, 0x10, 0x4e, 0xaf, 0x5a, 0x5b, 0xc2, 0xd5, 0x1d, 0x98, 0xa1, 0x40, 0x8e,
0x68, 0xa1, 0xd3, 0x68, 0xfd, 0x0c, 0xf8, 0xd8, 0xe9, 0xde, 0xd3, 0xc5, 0x1f, 0x00, 0x18, 0xf6,
0x7a, 0xcd, 0x0c, 0xbf, 0x86, 0x80, 0x42, 0xc2, 0xe2, 0xfd, 0x68, 0x5d, 0xe6, 0xac, 0x4d, 0x63,
0xdf, 0x7b, 0x99, 0x24, 0x4d, 0xed, 0x5f, 0x25, 0x68, 0x4c, 0x18, 0xdd, 0x31, 0xb6, 0x18, 0x45,
0xa5, 0xe3, 0xef, 0x41, 0x8e, 0xff, 0xee, 0xf8, 0xc3, 0x37, 0xfc, 0xf6, 0x95, 0xf7, 0x73, 0x8e,
0x54, 0xed, 0x51, 0x0b, 0xdd, 0x20, 0x7c, 0x0b, 0xa5, 0x50, 0xec, 0xf8, 0x32, 0x6f, 0xcd, 0x95,
0xab, 0xdc, 0x0d, 0x09, 0xd1, 0x7e, 0x80, 0x5a, 0x5a, 0x0b, 0xf8, 0x49, 0x3a, 0x2c, 0x53, 0xbe,
0xca, 0xd3, 0x7c, 0xa7, 0x28, 0x05, 0x76, 0xe1, 0x22, 0x73, 0xf8, 0xf8, 0xe0, 0xaa, 0x96, 0xa7,
0x3a, 0xe5, 0xfa, 0x5e, 0xbe, 0x51, 0xce, 0x9e, 0x06, 0x0d, 0x1e, 0x4c, 0xe1, 0x25, 0xd7, 0x8d,
0xb5, 0xc9, 0x2c, 0xd1, 0xab, 0xc5, 0x03, 0x19, 0x7b, 0x77, 0xd3, 0xf9, 0xb9, 0x7f, 0x45, 0xfd,
0xfc, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xc7, 0xa8, 0xba, 0xb5, 0x0a, 0x00, 0x00,
// 826 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x56, 0xcb, 0x8e, 0xe3, 0x44,
0x14, 0x9d, 0xb2, 0xf3, 0x18, 0xdf, 0x3c, 0x29, 0xd1, 0x28, 0x32, 0xdd, 0x60, 0x79, 0x90, 0x08,
0xb4, 0xb0, 0x5a, 0x61, 0xd3, 0x8c, 0x46, 0x42, 0x49, 0x08, 0x43, 0xa4, 0x0e, 0x44, 0x95, 0x6c,
0x51, 0x54, 0x71, 0x6a, 0x32, 0x56, 0x12, 0xdb, 0xb8, 0x2a, 0x44, 0xbd, 0x62, 0x01, 0x5b, 0x56,
0x7c, 0x06, 0x6b, 0x3e, 0x80, 0x0f, 0xe0, 0x07, 0xf8, 0x1a, 0xe4, 0x67, 0xec, 0xc4, 0x9d, 0x6e,
0x22, 0xd8, 0xd9, 0xd7, 0xe7, 0x9e, 0x7b, 0xcf, 0x7d, 0x94, 0x0b, 0x1a, 0x1b, 0xc6, 0x39, 0x5d,
0x5a, 0xf6, 0xd2, 0x70, 0x3d, 0x47, 0x38, 0xb8, 0x9a, 0x18, 0x66, 0xee, 0x5c, 0xff, 0xb9, 0x00,
0xef, 0x4c, 0xb6, 0x73, 0x6e, 0x7a, 0xd6, 0x9c, 0x79, 0xa3, 0xe0, 0x13, 0xc3, 0x5f, 0x42, 0xc1,
0xb2, 0x2d, 0xd1, 0x42, 0x1a, 0x6a, 0x57, 0x3a, 0xd7, 0x46, 0xda, 0xc5, 0x38, 0x82, 0x1b, 0x43,
0xdb, 0x12, 0xd1, 0x33, 0x09, 0x1c, 0xf1, 0x2b, 0x90, 0xa9, 0xb9, 0x6a, 0x49, 0x81, 0xff, 0xa7,
0x8f, 0xf9, 0x77, 0xcd, 0x55, 0xec, 0xee, 0xbb, 0xa9, 0x7f, 0x4a, 0x50, 0x49, 0x71, 0xe2, 0x4b,
0x50, 0x6c, 0xba, 0x61, 0xdc, 0xa5, 0x26, 0x0b, 0x72, 0x52, 0xc8, 0xde, 0x80, 0xdf, 0x85, 0xa2,
0x70, 0x5c, 0xcb, 0x0c, 0xa2, 0x29, 0x24, 0x7c, 0xf1, 0x7d, 0x5c, 0xea, 0x09, 0x4b, 0x58, 0x8e,
0xdd, 0x92, 0x35, 0xd4, 0x2e, 0x92, 0xbd, 0x01, 0xcf, 0xa0, 0xc6, 0x05, 0xf5, 0xc4, 0xd8, 0xe1,
0x21, 0xa2, 0xa0, 0xa1, 0x76, 0xbd, 0xf3, 0xc5, 0xbf, 0x50, 0x6a, 0x4c, 0xd2, 0x04, 0x24, 0xcb,
0x87, 0x35, 0xa8, 0x08, 0x6b, 0xc3, 0xb8, 0xa0, 0x1b, 0xf7, 0x5b, 0xde, 0x2a, 0x6a, 0xa8, 0x2d,
0x93, 0xb4, 0x09, 0xbf, 0x80, 0x1a, 0x4f, 0xf8, 0x67, 0xd6, 0xa2, 0x55, 0x0a, 0xd2, 0xaf, 0xee,
0x8d, 0xc3, 0x85, 0x7e, 0x0b, 0xb5, 0x4c, 0x18, 0x0c, 0x50, 0xba, 0xeb, 0x4e, 0x07, 0x93, 0x69,
0xf3, 0x19, 0xae, 0xc2, 0xf3, 0x41, 0x97, 0xdc, 0x0d, 0xfd, 0x37, 0x84, 0x6b, 0xa0, 0x4c, 0x87,
0xa3, 0xc1, 0x64, 0xda, 0x1d, 0x8d, 0x9b, 0x92, 0x7a, 0x0d, 0xb0, 0x2f, 0x2b, 0xbe, 0x02, 0x08,
0x95, 0x31, 0x3f, 0x12, 0x0a, 0xb2, 0x51, 0x22, 0xcb, 0x70, 0xa1, 0xff, 0x8e, 0xa0, 0x4c, 0xe8,
0xee, 0x2b, 0x2a, 0x28, 0x6e, 0x82, 0xbc, 0x62, 0xf7, 0x01, 0xa6, 0x4a, 0xfc, 0x47, 0xbf, 0xc0,
0x3f, 0xd2, 0xf5, 0x96, 0x05, 0x05, 0xae, 0x92, 0xf0, 0x05, 0xbf, 0x82, 0xf2, 0x5b, 0x46, 0x17,
0xcc, 0xe3, 0x2d, 0x59, 0x93, 0xdb, 0x95, 0x8e, 0x9e, 0x2d, 0x5e, 0xc4, 0x67, 0x7c, 0x13, 0x82,
0x06, 0xb6, 0xf0, 0xee, 0x49, 0xec, 0xa2, 0xbe, 0x84, 0x6a, 0xfa, 0x43, 0x3a, 0xaa, 0x72, 0x22,
0xea, 0x4b, 0xe9, 0x16, 0xe9, 0x7f, 0x21, 0x28, 0xc7, 0xc2, 0x34, 0x50, 0x92, 0xa2, 0x86, 0xba,
0x7a, 0xd2, 0x0d, 0x22, 0x7b, 0x63, 0xcc, 0x2c, 0xe5, 0xe8, 0x91, 0x1f, 0xd0, 0x53, 0xc8, 0xd3,
0x13, 0xb7, 0xfd, 0xbf, 0xd7, 0xf3, 0x07, 0x82, 0x5a, 0xcf, 0x73, 0x56, 0xfb, 0xfd, 0xfb, 0x04,
0x0a, 0x0b, 0x2a, 0x68, 0xb4, 0x7f, 0x17, 0xb9, 0x89, 0x90, 0x00, 0x82, 0x5f, 0xc3, 0x73, 0x8f,
0x2d, 0x2c, 0x8f, 0x99, 0x22, 0x5a, 0xb7, 0x83, 0x75, 0xcd, 0x30, 0x1b, 0x24, 0xc2, 0xc6, 0x24,
0x89, 0xb3, 0x7a, 0x03, 0x8d, 0x83, 0x8f, 0xfe, 0xd4, 0xd8, 0x6c, 0x37, 0x9b, 0x07, 0x0c, 0xc9,
0xe2, 0xb1, 0x5d, 0x48, 0xa9, 0xff, 0x8d, 0xa0, 0x3e, 0xde, 0xce, 0xd7, 0x16, 0x7f, 0x4b, 0xd8,
0x0f, 0x5b, 0xc6, 0xfd, 0xbd, 0x4f, 0x1f, 0x1c, 0xed, 0x6c, 0x26, 0x59, 0x6c, 0xce, 0xa9, 0x11,
0xcb, 0x96, 0xf2, 0x64, 0x47, 0xf3, 0x14, 0xca, 0x56, 0x67, 0xff, 0xf3, 0x09, 0xa1, 0xff, 0x2a,
0x41, 0x23, 0x49, 0x98, 0xbb, 0x8e, 0xcd, 0x19, 0xee, 0x43, 0xc9, 0x74, 0xec, 0x37, 0xd6, 0x32,
0xff, 0x60, 0x3c, 0x80, 0x1b, 0xfd, 0x00, 0x1b, 0x4b, 0x8c, 0x5c, 0xf1, 0xf0, 0xa8, 0x61, 0x9f,
0x9d, 0xa6, 0x79, 0xb8, 0x65, 0xb7, 0x50, 0xcb, 0xc4, 0xc0, 0x1f, 0x43, 0x23, 0x51, 0x30, 0x33,
0x9d, 0xad, 0x1d, 0x76, 0xa2, 0x48, 0xea, 0x89, 0xb9, 0xef, 0x5b, 0xcf, 0x68, 0xf6, 0x6f, 0x08,
0x2e, 0xc2, 0x60, 0x5b, 0x8f, 0x4d, 0xfd, 0x02, 0xc6, 0x3d, 0x3f, 0xa7, 0xf6, 0x5f, 0x43, 0xcd,
0x8c, 0xc8, 0x68, 0x52, 0xff, 0x4a, 0x47, 0xcb, 0x56, 0x22, 0x08, 0xd3, 0x4f, 0xe3, 0x48, 0xd6,
0x4d, 0x6f, 0xc1, 0x7b, 0x87, 0x49, 0x85, 0x55, 0xd3, 0x09, 0x5c, 0xbe, 0x66, 0x22, 0x87, 0xe1,
0xfc, 0xac, 0xf5, 0x25, 0x5c, 0x3d, 0xc0, 0x19, 0x0d, 0xc8, 0x91, 0x2c, 0x74, 0x9e, 0xac, 0x9f,
0x00, 0x1f, 0x83, 0x9e, 0xdc, 0x5d, 0xfc, 0x01, 0x80, 0xe9, 0xac, 0xd7, 0xcc, 0x0c, 0x72, 0x08,
0x25, 0xa4, 0x2c, 0xfe, 0xcf, 0xc9, 0x63, 0xee, 0xda, 0x32, 0xf7, 0xb5, 0x57, 0x48, 0xda, 0xd4,
0xf9, 0x45, 0x86, 0xe6, 0x84, 0xd1, 0x1d, 0x63, 0x8b, 0x51, 0x9c, 0x3a, 0xfe, 0x0e, 0x94, 0xe4,
0x8f, 0x88, 0x3f, 0x7c, 0xe4, 0x57, 0xa9, 0xbe, 0x7f, 0xe2, 0x18, 0xd2, 0x9f, 0xb5, 0xd1, 0x0d,
0xc2, 0x77, 0x50, 0x8e, 0x86, 0x1d, 0x5f, 0x9e, 0x3a, 0x2a, 0xd4, 0xab, 0x93, 0x1b, 0x12, 0xb1,
0x7d, 0x0f, 0xf5, 0xec, 0x2c, 0xe0, 0x17, 0x59, 0xb7, 0xdc, 0xf1, 0x55, 0x3f, 0x3a, 0x0d, 0x8a,
0x43, 0x60, 0x0f, 0x2e, 0x72, 0x9b, 0x8f, 0x0f, 0xae, 0x37, 0xa7, 0xa6, 0x4e, 0xbd, 0x7e, 0x12,
0x36, 0x8e, 0xd9, 0xd3, 0xa1, 0xc9, 0xc3, 0x2e, 0xbc, 0xe1, 0x86, 0xb9, 0xb6, 0x98, 0x2d, 0x7a,
0xf5, 0xa4, 0x21, 0x63, 0xff, 0x3e, 0x37, 0x2f, 0x05, 0xd7, 0xba, 0xcf, 0xff, 0x09, 0x00, 0x00,
0xff, 0xff, 0x14, 0x36, 0x4a, 0x4d, 0xe9, 0x09, 0x00, 0x00,
}

View file

@ -45,6 +45,7 @@ type FilerOption struct {
DataCenter string
DefaultLevelDbDir string
DisableHttp bool
Host string
Port uint32
recursiveDelete bool
Cipher bool
@ -73,7 +74,7 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption)
glog.Fatal("master list is required!")
}
fs.filer = filer2.NewFiler(option.Masters, fs.grpcDialOption, option.Port+10000, option.Collection, option.DefaultReplication, fs.notifyMetaListeners)
fs.filer = filer2.NewFiler(option.Masters, fs.grpcDialOption, option.Host, option.Port, option.Collection, option.DefaultReplication, fs.notifyMetaListeners)
fs.filer.Cipher = option.Cipher
maybeStartMetrics(fs, option)

View file

@ -32,6 +32,7 @@ const (
)
type MasterOption struct {
Host string
Port int
MetaFolder string
VolumeSizeLimitMB uint
@ -93,7 +94,7 @@ func NewMasterServer(r *mux.Router, option *MasterOption, peers []string) *Maste
preallocateSize: preallocateSize,
clientChans: make(map[string]chan *master_pb.VolumeLocation),
grpcDialOption: grpcDialOption,
MasterClient: wdclient.NewMasterClient(grpcDialOption, "master", 0, peers),
MasterClient: wdclient.NewMasterClient(grpcDialOption, "master", option.Host, 0, peers),
}
ms.bounedLeaderChan = make(chan int, 16)

View file

@ -43,7 +43,7 @@ var (
func NewCommandEnv(options ShellOptions) *CommandEnv {
return &CommandEnv{
env: make(map[string]string),
MasterClient: wdclient.NewMasterClient(options.GrpcDialOption, pb.AdminShellClient, 0, strings.Split(*options.Masters, ",")),
MasterClient: wdclient.NewMasterClient(options.GrpcDialOption, pb.AdminShellClient, "", 0, strings.Split(*options.Masters, ",")),
option: options,
}
}

View file

@ -14,6 +14,7 @@ import (
type MasterClient struct {
clientType string
clientHost string
grpcPort uint32
currentMaster string
masters []string
@ -22,9 +23,10 @@ type MasterClient struct {
vidMap
}
func NewMasterClient(grpcDialOption grpc.DialOption, clientType string, clientGrpcPort uint32, masters []string) *MasterClient {
func NewMasterClient(grpcDialOption grpc.DialOption, clientType string, clientHost string, clientGrpcPort uint32, masters []string) *MasterClient {
return &MasterClient{
clientType: clientType,
clientHost: clientHost,
grpcPort: clientGrpcPort,
masters: masters,
grpcDialOption: grpcDialOption,