作者:concor
项目:concord-g
// Serve starts service for the given Computation.
//
// Must be called from main() function of worker.
func Serve(comp Computation) error {
bindAddr := os.Getenv(bolt.KConcordEnvKeyClientListenAddr)
proxyAddr := os.Getenv(bolt.KConcordEnvKeyClientProxyAddr)
// Init transport
transport, err := thrift.NewTServerSocket(bindAddr)
if err != nil {
panic("failed to create server")
}
factory := thrift.NewTTransportFactory()
transportF := thrift.NewTFramedTransportFactory(factory)
protocolF := thrift.NewTBinaryProtocolFactoryDefault()
proxy, err := newProxy(proxyAddr, comp.Metadata())
if err != nil {
panic("failed to initialize proxy")
}
service := newComputationService(comp, proxy)
processor := bolt.NewComputationServiceProcessor(service)
srv := thrift.NewTSimpleServer4(processor, transport, transportF, protocolF)
return srv.Serve()
}
作者:allenm
项目:goso
func (t *ThriftExporter) Export(serviceName string, processor thrift.TProcessor) (err error) {
var transport thrift.TServerTransport
if t.Config.Secure {
cfg := new(tls.Config)
if cert, err := tls.LoadX509KeyPair(t.Config.CertFile, t.Config.KeyFile); err == nil {
cfg.Certificates = append(cfg.Certificates, cert)
} else {
return err
}
transport, err = thrift.NewTSSLServerSocket(t.Provider.Addr, cfg)
} else {
transport, err = thrift.NewTServerSocket(t.Provider.Addr)
}
if err != nil {
return err
}
server := thrift.NewTSimpleServer4(processor, transport, t.Config.TransFactory, t.Config.ProtocolFactory)
err = t.Reg.Register(serviceName, t.Provider)
if err != nil {
fmt.Println("error when register service", err.Error())
return
}
fmt.Println("Starting the simple server... on ", t.Provider.Addr)
return server.Serve()
}
作者:y-okub
项目:thrift-tes
func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string, secure bool) error {
var transport thrift.TServerTransport
var err error
transport, err = thrift.NewTServerSocket(addr)
if err != nil {
return err
}
fmt.Printf("Transport: %T\n", transport)
handler := NewAwesomeServiceHandler()
SharedTypes = awesome_service.NewTypes()
var f float64 = 1
b := true
s := "A"
SharedTypes.ShortValue = 1
SharedTypes.IntValue = 1
SharedTypes.LongValue = 1
SharedTypes.DoubleValue = &f
SharedTypes.BoolValue = &b
SharedTypes.StringValue = &s
SharedTypes.ListValue = []string{"A"}
SharedTypes.SetValue = map[string]bool{"A": true}
SharedTypes.MapValue = make(map[string]int32)
// var i int32
for i := 0; i < 50000; i++ {
SharedTypes.MapValue[strconv.Itoa(i)] = int32(i)
}
processor := awesome_service.NewAwesomeServiceProcessor(handler)
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
fmt.Println("Starting the simple server... on ", addr)
return server.Serve()
}
作者:csig
项目:hbas
// NewHbaseServer starts an self-implementation hbase
func NewHbaseServer(hb Hbase) (*TestServer, error) {
port, _ := GetPort()
addr := fmt.Sprintf(":%d", port)
// fork a goroutine to serve requests
var transportFactory thrift.TTransportFactory
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
transportFactory = thrift.NewTBufferedTransportFactory(8192)
transportFactory = thrift.NewTFramedTransportFactory(transportFactory)
transport, err := thrift.NewTServerSocket(addr)
if err != nil {
log.Fatal(err)
}
srv := thrift.NewTSimpleServer4(
NewHbaseProcessor(hb),
transport,
transportFactory,
protocolFactory,
)
if err := srv.Listen(); err != nil {
log.Fatal(err)
}
go srv.AcceptLoop()
// TODO: stop server when stop chan is closed
return &TestServer{
Port: port,
stop: make(chan struct{}),
}, nil
}
作者:gemble
项目:blade-lib
func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string, secure bool) error {
var transport thrift.TServerTransport
var err error
if secure {
cfg := new(tls.Config)
if cert, err := tls.LoadX509KeyPair("server.crt", "server.key"); err == nil {
cfg.Certificates = append(cfg.Certificates, cert)
} else {
return err
}
transport, err = thrift.NewTSSLServerSocket(addr, cfg)
} else {
transport, err = thrift.NewTServerSocket(addr)
}
if err != nil {
return err
}
fmt.Printf("%T\n", transport)
handler := NewCalculatorHandler()
processor := tutorial.NewCalculatorProcessor(handler)
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
fmt.Println("Starting the simple server... on ", addr)
return server.Serve()
}
作者:jinh
项目:rpc_prox
//
// 两参数是必须的: ProductName, zkAddress, frontAddr可以用来测试
//
func (p *ProxyServer) Run() {
var transport thrift.TServerTransport
var err error
log.Printf(Magenta("Start Proxy at Address: %s"), p.proxyAddr)
// 读取后端服务的配置
isUnixDomain := false
if !strings.Contains(p.proxyAddr, ":") {
if FileExist(p.proxyAddr) {
os.Remove(p.proxyAddr)
}
transport, err = NewTServerUnixDomain(p.proxyAddr)
isUnixDomain = true
} else {
transport, err = thrift.NewTServerSocket(p.proxyAddr)
}
if err != nil {
log.ErrorErrorf(err, "Server Socket Create Failed: %v, Front: %s", err, p.proxyAddr)
}
// 开始监听
// transport.Open()
transport.Listen()
ch := make(chan thrift.TTransport, 4096)
defer close(ch)
go func() {
var address string
for c := range ch {
// 为每个Connection建立一个Session
socket, ok := c.(SocketAddr)
if isUnixDomain {
address = p.proxyAddr
} else if ok {
address = socket.Addr().String()
} else {
address = "unknow"
}
x := NewSession(c, address, p.verbose)
// Session独立处理自己的请求
go x.Serve(p.router, 1000)
}
}()
// Accept什么时候出错,出错之后如何处理呢?
for {
c, err := transport.Accept()
if err != nil {
log.ErrorErrorf(err, "Accept Error: %v", err)
break
} else {
ch <- c
}
}
}
作者:ceocode
项目:glumelogge
// run a test flume agent
func runDummyFlumeAgent(t *testing.T) {
transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory())
protocolFactory := thrift.NewTCompactProtocolFactory()
transport, _ := thrift.NewTServerSocket("localhost:51515")
handler := thriftSourceProtocolHandler{t}
processor := flume.NewThriftSourceProtocolProcessor(handler)
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
server.Serve()
}
作者:nipuntalukda
项目:NipunTalukdarExample
func main() {
dcacheHandler := NewDcacheHandler()
dcacheServiceProcessor := dcache.NewDcacheServiceProcessor(dcacheHandler)
ssock, err := thrift.NewTServerSocket("127.0.0.1:9090")
if err != nil {
panic("Problem in creating transport")
}
server := thrift.NewTSimpleServer4(dcacheServiceProcessor, ssock,
thrift.NewTBufferedTransportFactory(204800), thrift.NewTBinaryProtocolFactoryDefault())
server.Serve()
}
作者:tuha
项目:Thrift4AsyncMs
func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string) error {
transport, err = thrift.NewTServerSocket(addr) //simple case
if err != nil {
return err
}
handler := &dataServiceProcessorPull{}
processor := crawler.NewDataServiceProcessor(handler)
server := thrift.NewTSimpleServer(processor, transport, transportFactory, protocolFactory)
fmt.Println("Starting the simple server... on ", transport.Addr())
server.serve()
}
作者:RobW
项目:thrift-coffe
func main() {
handler := NewCoffeeOrderHandler()
processor := co.NewCoffeeOrderProcessor(handler)
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
transportFactory := thrift.NewTTransportFactory()
serverTransport, err := thrift.NewTServerSocket("0.0.0.0:9090")
if err != nil {
log.Println(err)
}
server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory)
server.Serve()
}
作者:Rheesey
项目:thrif
func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string) error {
transport, err := thrift.NewTServerSocket(addr)
if err != nil {
return err
}
handler := NewCalculatorHandler()
processor := tutorial.NewCalculatorProcessor(handler)
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
fmt.Println("Starting the simple server... on ", transport.Addr())
return server.Serve()
}
作者:fai
项目:intro-to-rp
func main() {
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
transport, err := thrift.NewTServerSocket("localhost:8090")
if err != nil {
fmt.Printf("There was an error creating your socket! Here it is %v", err)
}
transportFactory := thrift.NewTTransportFactory()
processor := service.NewMakeTagsProcessor(handler.NewTagsHandler(os.Getenv("ACCESS_TOKEN")))
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
fmt.Printf("server listening on %s\n", "localhost:8090")
server.Serve()
}
作者:sayde
项目:thrift-minimal-exampl
func main() {
transport, err := thrift.NewTServerSocket("localhost:3636")
if err != nil {
panic(err)
}
proc := hello.NewHelloProcessor(&HelloHandler{})
server := thrift.NewTSimpleServer4(
proc,
transport,
thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()),
thrift.NewTBinaryProtocolFactoryDefault())
println(server.Serve())
}
作者:smallnes
项目:RPC-TES
func main() {
var protocolFactory thrift.TProtocolFactory = thrift.NewTBinaryProtocolFactoryDefault()
var transportFactory thrift.TTransportFactory = thrift.NewTBufferedTransportFactory(8192)
transport, err := thrift.NewTServerSocket(NetworkAddr)
if err != nil {
fmt.Println("Error!", err)
os.Exit(1)
}
handler := NewGreeterHandler()
processor := greeter.NewGreeterProcessor(handler)
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
fmt.Println("Starting the simple server... on ", NetworkAddr)
server.Serve()
}
作者:karmakaz
项目:ruby-go-thrif
func New(addr string, processor *thrift.TProcessor) (*Server, error) {
// Instantiate the thrift server components
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
transportFactory := thrift.NewTTransportFactory()
transport, err := thrift.NewTServerSocket(addr)
if err != nil {
return nil, err
}
wait := make(chan error)
s := Server{Addr: addr, wait: wait, Wait: wait}
s.server = thrift.NewTSimpleServer4(*processor, transport, transportFactory, protocolFactory)
return &s, nil
}
作者:jamwyat
项目:ServicesWebThriftEtc
func runServer(listenIp *string, listenPort *int, backendIp *string, backendPort *int, debug *bool) error {
transport, err := thrift.NewTServerSocket(fmt.Sprintf("%s:%d", *listenIp, *listenPort))
if err != nil {
return err
}
transportFactory := thrift.NewTTransportFactory()
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
handler := NewDataStoreHandler(backendIp, backendPort, debug)
processor := messages.NewDataStoreProcessor(handler)
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
logger.Printf("Thrift Service configured")
return server.Serve()
}
作者:visilico
项目:thrift-g
func main() {
var listen string = ":10001"
transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory())
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
serverTransport, err := thrift.NewTServerSocket(listen)
if err != nil {
fmt.Println("error, thrift init!")
return
}
handler := &Puller{0}
processor := puller.NewPullerProcessor(handler)
server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory)
fmt.Printf("server started\n")
server.Serve()
}
作者:xinghuwan
项目:toolbo
func main() {
handler := &HelloServiceImpl{}
processor := hello.NewHelloServiceProcessor(handler)
listenSocket, err := thrift.NewTServerSocket(":8787")
if err != nil {
panic(err)
}
server := thrift.NewTSimpleServer2(processor, listenSocket)
fmt.Println("Server ready")
if err := server.Serve(); err != nil {
panic(err)
}
}
作者:vonwen
项目:gosnowflake-
func runThriftServer(host string, port int, protocol string, framed bool, buffered bool, workerId uint64, datacenterId uint64) {
var protocolFactory thrift.TProtocolFactory
switch protocol {
case "compact":
protocolFactory = thrift.NewTCompactProtocolFactory()
case "simplejson":
protocolFactory = thrift.NewTSimpleJSONProtocolFactory()
case "json":
protocolFactory = thrift.NewTJSONProtocolFactory()
case "binary", "":
protocolFactory = thrift.NewTBinaryProtocolFactoryDefault()
default:
fmt.Fprint(os.Stderr, "Invalid protocol specified", protocol, "\n")
Usage()
os.Exit(1)
}
var transportFactory thrift.TTransportFactory
if buffered {
transportFactory = thrift.NewTBufferedTransportFactory(8192)
} else {
transportFactory = thrift.NewTTransportFactory()
}
if framed {
transportFactory = thrift.NewTFramedTransportFactory(transportFactory)
}
var err error
var transport thrift.TServerTransport
transport, err = thrift.NewTServerSocket(fmt.Sprintf("%s:%d", host, port))
if err != nil {
log.Fatal(err)
os.Exit(1)
}
worker, err := idworker.NewIdWorker(workerId, datacenterId)
processor := snowflake.NewSnowflakeProcessor(worker)
if err == nil {
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
server.Serve()
} else {
log.Fatal(err)
}
}
作者:mikhailborodi
项目:gopni
func runFakeRender(addr string) {
var tTS fakeRender
processor := gopnikrpc.NewRenderProcessor(&tTS)
transport, err := thrift.NewTServerSocket(addr)
if err != nil {
panic(err)
}
transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory())
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
if err = server.Serve(); err != nil {
panic(err)
}
}