Files
janus/main.go
“nishant-sharma” 0fdb4a8489 adding configs
2021-03-30 16:32:05 +05:30

85 lines
2.4 KiB
Go

package main
import (
lib "com.navi.medici.janus/lib"
config "com.navi.medici.janus/config"
server "com.navi.medici.janus/server"
producer_module "com.navi.medici.janus/producer"
"fmt"
"log"
"strings"
"github.com/spf13/viper"
)
var (
port string
)
func init() {
viper.SetConfigName("config")
viper.AddConfigPath("./config")
viper.SetConfigType("yml")
viper.AutomaticEnv()
var configuration config.Configurations
if err := viper.ReadInConfig(); err != nil {
fmt.Printf("Error reading config file, %s", err)
}
err := viper.Unmarshal(&configuration)
if err != nil {
fmt.Printf("Unable to decode into struct, %v", err)
}
configuration.Kafka.Bootstrap_Servers = viper.GetString(configuration.Kafka.Bootstrap_Servers)
configuration.Kafka.Sasl_User = viper.GetString(configuration.Kafka.Sasl_User)
configuration.Kafka.Sasl_Password = viper.GetString(configuration.Kafka.Sasl_Password)
configuration.SchemaRegistry.Endpoint = viper.GetString(configuration.SchemaRegistry.Endpoint)
configuration.SchemaRegistry.Topics = viper.GetString(configuration.SchemaRegistry.Topics)
configuration.Server.Kafka_Topic = viper.GetString(configuration.Server.Kafka_Topic)
port = configuration.Server.Port
log.Printf("PORT IS: ", port)
log.Printf(configuration.Kafka.Bootstrap_Servers)
log.Printf(configuration.Kafka.Sasl_User)
log.Printf(configuration.Kafka.Sasl_Password)
log.Printf(configuration.SchemaRegistry.Endpoint)
producer_module.GetSchemaVersions(configuration.SchemaRegistry.Endpoint, strings.Split(configuration.SchemaRegistry.Topics, ","))
producer_module.InitializeProducers(configuration.Kafka)
// TO DO: read number of goroutines from config
for i := 0; i < configuration.Server.Goroutines; i++ {
go lib.ProcessRequestChannel(configuration.Server.Kafka_Topic)
}
// sync producer using sarama
// sync_producer := producer_module.GetSyncProducer(configuration.Kafka)
// log.Println(sync_producer)
// producer_module.KafkaWriter(sync_producer, topic, messageToSendBytes)
// sync_producer.Close()
// async producer using sarama
// async_producer := producer_module.GetAsyncProducer(configuration.Kafka)
// log.Println(async_producer)
// producer_module.KafkaWriter(async_producer)
// async_producer.Close()
}
func main() {
log.Printf("Serving on http://0.0.0.0:", port)
httpServer, err := server.NewServer(port)
if err != nil {
log.Fatalln("Unable to start server, ", err)
}
httpServer.HttpServer.Serve(httpServer.Listener)
}