2021-03-25 13:24:08 +05:30
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
2021-03-30 16:03:09 +05:30
|
|
|
lib "com.navi.medici.janus/lib"
|
2021-03-25 13:24:08 +05:30
|
|
|
config "com.navi.medici.janus/config"
|
|
|
|
|
server "com.navi.medici.janus/server"
|
2021-03-30 16:03:09 +05:30
|
|
|
producer_module "com.navi.medici.janus/producer"
|
2021-03-25 13:24:08 +05:30
|
|
|
|
|
|
|
|
"log"
|
2021-03-30 13:16:00 +05:30
|
|
|
"strings"
|
2021-03-25 13:24:08 +05:30
|
|
|
"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 {
|
2021-04-01 12:56:04 +05:30
|
|
|
log.Fatalln("Error reading config file, %s", err)
|
2021-03-25 13:24:08 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err := viper.Unmarshal(&configuration)
|
|
|
|
|
if err != nil {
|
2021-04-01 12:56:04 +05:30
|
|
|
log.Fatalln("Unable to decode into struct, %v", err)
|
2021-03-25 13:24:08 +05:30
|
|
|
}
|
2022-03-31 16:24:32 +05:30
|
|
|
//log.Print(configuration.Kafka.Bootstrap_Servers)
|
2021-04-01 12:56:04 +05:30
|
|
|
// Following coinfigurations read from environment variables
|
2022-03-31 16:37:54 +05:30
|
|
|
configuration.Env = viper.GetString(configuration.Env)
|
2021-03-25 13:24:08 +05:30
|
|
|
configuration.Kafka.Bootstrap_Servers = viper.GetString(configuration.Kafka.Bootstrap_Servers)
|
2021-03-30 13:16:00 +05:30
|
|
|
configuration.SchemaRegistry.Endpoint = viper.GetString(configuration.SchemaRegistry.Endpoint)
|
|
|
|
|
configuration.SchemaRegistry.Topics = viper.GetString(configuration.SchemaRegistry.Topics)
|
2021-04-27 16:40:13 +05:30
|
|
|
configuration.Kafka.Kafka_Topic_Json = viper.GetString(configuration.Kafka.Kafka_Topic_Json)
|
|
|
|
|
configuration.Kafka.Kafka_Topic_Protobuf = viper.GetString(configuration.Kafka.Kafka_Topic_Protobuf)
|
2021-03-25 13:24:08 +05:30
|
|
|
|
2021-07-29 18:40:21 +05:30
|
|
|
//log.Printf("Env is: ", configuration.Env)
|
|
|
|
|
//if configuration.Env == "PROD" {
|
2021-07-27 11:53:09 +05:30
|
|
|
configuration.Kafka.Sasl_User = viper.GetString(configuration.Kafka.Sasl_User)
|
|
|
|
|
configuration.Kafka.Sasl_Password = viper.GetString(configuration.Kafka.Sasl_Password)
|
2022-03-31 16:37:54 +05:30
|
|
|
//}
|
2022-03-31 16:24:32 +05:30
|
|
|
|
2021-03-25 13:24:08 +05:30
|
|
|
port = configuration.Server.Port
|
2022-03-31 16:24:32 +05:30
|
|
|
log.Printf("PORT IS: %v", port)
|
2021-03-30 13:16:00 +05:30
|
|
|
log.Printf(configuration.Kafka.Bootstrap_Servers)
|
|
|
|
|
log.Printf(configuration.SchemaRegistry.Endpoint)
|
|
|
|
|
|
2021-05-07 20:35:35 +05:30
|
|
|
producer_module.SchemaRegistryEndpoint = configuration.SchemaRegistry.Endpoint
|
|
|
|
|
producer_module.TopicList = strings.Split(configuration.SchemaRegistry.Topics, ",")
|
|
|
|
|
|
2021-04-01 12:56:04 +05:30
|
|
|
// initialize schema version map which contains latest schema version for topic(s)
|
2021-05-07 20:35:35 +05:30
|
|
|
producer_module.GetSchemaVersions()
|
2021-04-01 12:56:04 +05:30
|
|
|
|
|
|
|
|
// initialize producers
|
2021-07-27 13:21:26 +05:30
|
|
|
producer_module.InitializeProducers(configuration.Kafka, configuration.Env)
|
2021-03-30 16:03:09 +05:30
|
|
|
|
2022-03-31 16:24:32 +05:30
|
|
|
for i := 0; i < 2; i++ {
|
2021-04-27 16:40:13 +05:30
|
|
|
go lib.ProcessProtobufRequestChannel(configuration.Kafka.Kafka_Topic_Protobuf)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < configuration.Server.Goroutines; i++ {
|
|
|
|
|
go lib.ProcessJsonRequestChannel(configuration.Kafka.Kafka_Topic_Json)
|
2021-03-30 16:03:09 +05:30
|
|
|
}
|
2021-03-25 13:24:08 +05:30
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
}
|