优化
This commit is contained in:
		
							parent
							
								
									f85275068d
								
							
						
					
					
						commit
						8ef9ba1d10
					
				@ -104,9 +104,11 @@ func main() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	log.Println(fmt.Sprintf("sinker 服务启动成功,性能检测入口为: http://127.0.0.1:%v", model.GlobConfig.Sinker.PprofHttpPort))
 | 
						log.Println(fmt.Sprintf("sinker 服务启动成功,性能检测入口为: http://127.0.0.1:%v", model.GlobConfig.Sinker.PprofHttpPort))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	realTimeWarehousing := consumer_data.NewRealTimeWarehousing(model.GlobConfig.Sinker.RealTimeWarehousing.BufferSize, model.GlobConfig.Sinker.RealTimeWarehousing.FlushInterval)
 | 
						sinkerC := model.GlobConfig.Sinker
 | 
				
			||||||
	reportAcceptStatus := consumer_data.NewReportAcceptStatus(model.GlobConfig.Sinker.ReportAcceptStatus.BufferSize, model.GlobConfig.Sinker.ReportAcceptStatus.FlushInterval)
 | 
					
 | 
				
			||||||
	reportData2CK := consumer_data.NewReportData2CK(model.GlobConfig.Sinker.ReportData2CK.BufferSize, model.GlobConfig.Sinker.ReportData2CK.FlushInterval)
 | 
						realTimeWarehousing := consumer_data.NewRealTimeWarehousing(sinkerC.RealTimeWarehousing)
 | 
				
			||||||
 | 
						reportAcceptStatus := consumer_data.NewReportAcceptStatus(sinkerC.ReportAcceptStatus)
 | 
				
			||||||
 | 
						reportData2CK := consumer_data.NewReportData2CK(sinkerC.ReportData2CK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	realTimeDataSarama := sinker.NewKafkaSarama()
 | 
						realTimeDataSarama := sinker.NewKafkaSarama()
 | 
				
			||||||
	reportData2CKSarama := realTimeDataSarama.Clone()
 | 
						reportData2CKSarama := realTimeDataSarama.Clone()
 | 
				
			||||||
@ -114,8 +116,11 @@ func main() {
 | 
				
			|||||||
	go sinker.ClearDimsCacheByTime(time.Minute * 30)
 | 
						go sinker.ClearDimsCacheByTime(time.Minute * 30)
 | 
				
			||||||
	var json = jsoniter.ConfigCompatibleWithStandardLibrary
 | 
						var json = jsoniter.ConfigCompatibleWithStandardLibrary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = realTimeDataSarama.Init(model.GlobConfig.Comm.Kafka, model.GlobConfig.Comm.Kafka.ReportTopicName, model.GlobConfig.Comm.Kafka.RealTimeDataGroup, func(msg model.InputMessage, markFn func()) {
 | 
						err = realTimeDataSarama.Init(
 | 
				
			||||||
 | 
							model.GlobConfig.Comm.Kafka,
 | 
				
			||||||
 | 
							model.GlobConfig.Comm.Kafka.ReportTopicName,
 | 
				
			||||||
 | 
							model.GlobConfig.Comm.Kafka.RealTimeDataGroup,
 | 
				
			||||||
 | 
							func(msg model.InputMessage, markFn func()) {
 | 
				
			||||||
		//ETL
 | 
							//ETL
 | 
				
			||||||
		var kafkaData model.KafkaData
 | 
							var kafkaData model.KafkaData
 | 
				
			||||||
		err = json.Unmarshal(msg.Value, &kafkaData)
 | 
							err = json.Unmarshal(msg.Value, &kafkaData)
 | 
				
			||||||
@ -154,7 +159,11 @@ func main() {
 | 
				
			|||||||
		panic(err)
 | 
							panic(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = reportData2CKSarama.Init(model.GlobConfig.Comm.Kafka, model.GlobConfig.Comm.Kafka.ReportTopicName, model.GlobConfig.Comm.Kafka.ReportData2CKGroup, func(msg model.InputMessage, markFn func()) {
 | 
						err = reportData2CKSarama.Init(
 | 
				
			||||||
 | 
							model.GlobConfig.Comm.Kafka,
 | 
				
			||||||
 | 
							model.GlobConfig.Comm.Kafka.ReportTopicName,
 | 
				
			||||||
 | 
							model.GlobConfig.Comm.Kafka.ReportData2CKGroup,
 | 
				
			||||||
 | 
							func(msg model.InputMessage, markFn func()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		var kafkaData model.KafkaData
 | 
							var kafkaData model.KafkaData
 | 
				
			||||||
		err = json.Unmarshal(msg.Value, &kafkaData)
 | 
							err = json.Unmarshal(msg.Value, &kafkaData)
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,7 @@ package consumer_data
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/1340691923/xwl_bi/engine/db"
 | 
						"github.com/1340691923/xwl_bi/engine/db"
 | 
				
			||||||
	"github.com/1340691923/xwl_bi/engine/logs"
 | 
						"github.com/1340691923/xwl_bi/engine/logs"
 | 
				
			||||||
 | 
						"github.com/1340691923/xwl_bi/model"
 | 
				
			||||||
	"github.com/1340691923/xwl_bi/platform-basic-libs/util"
 | 
						"github.com/1340691923/xwl_bi/platform-basic-libs/util"
 | 
				
			||||||
	"go.uber.org/zap"
 | 
						"go.uber.org/zap"
 | 
				
			||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
@ -23,16 +24,16 @@ type RealTimeWarehousing struct {
 | 
				
			|||||||
	flushInterval int
 | 
						flushInterval int
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewRealTimeWarehousing(batchSize, flushInterval int) *RealTimeWarehousing {
 | 
					func NewRealTimeWarehousing(config model.BatchConfig) *RealTimeWarehousing {
 | 
				
			||||||
	logs.Logger.Info("NewRealTimeWarehousing", zap.Int("batchSize", batchSize), zap.Int("flushInterval", flushInterval))
 | 
						logs.Logger.Info("NewRealTimeWarehousing", zap.Int("batchSize", config.BufferSize), zap.Int("flushInterval", config.FlushInterval))
 | 
				
			||||||
	realTimeWarehousing := &RealTimeWarehousing{
 | 
						realTimeWarehousing := &RealTimeWarehousing{
 | 
				
			||||||
		buffer:        make([]*RealTimeWarehousingData, 0, batchSize),
 | 
							buffer:        make([]*RealTimeWarehousingData, 0, config.BufferSize),
 | 
				
			||||||
		bufferMutex:   new(sync.RWMutex),
 | 
							bufferMutex:   new(sync.RWMutex),
 | 
				
			||||||
		batchSize:     batchSize,
 | 
							batchSize:     config.BufferSize,
 | 
				
			||||||
		flushInterval: flushInterval,
 | 
							flushInterval: config.FlushInterval,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if flushInterval > 0 {
 | 
						if config.FlushInterval > 0 {
 | 
				
			||||||
		realTimeWarehousing.RegularFlushing()
 | 
							realTimeWarehousing.RegularFlushing()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,7 @@ package consumer_data
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/1340691923/xwl_bi/engine/db"
 | 
						"github.com/1340691923/xwl_bi/engine/db"
 | 
				
			||||||
	"github.com/1340691923/xwl_bi/engine/logs"
 | 
						"github.com/1340691923/xwl_bi/engine/logs"
 | 
				
			||||||
 | 
						"github.com/1340691923/xwl_bi/model"
 | 
				
			||||||
	"go.uber.org/zap"
 | 
						"go.uber.org/zap"
 | 
				
			||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
@ -32,16 +33,16 @@ const (
 | 
				
			|||||||
	SuccessStatus = 1
 | 
						SuccessStatus = 1
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewReportAcceptStatus(batchSize int, flushInterval int) *ReportAcceptStatus {
 | 
					func NewReportAcceptStatus(config model.BatchConfig) *ReportAcceptStatus {
 | 
				
			||||||
	logs.Logger.Info("NewReportAcceptStatus", zap.Int("batchSize", batchSize), zap.Int("flushInterval", flushInterval))
 | 
						logs.Logger.Info("NewReportAcceptStatus", zap.Int("batchSize", config.BufferSize), zap.Int("flushInterval", config.FlushInterval))
 | 
				
			||||||
	reportAcceptStatus := &ReportAcceptStatus{
 | 
						reportAcceptStatus := &ReportAcceptStatus{
 | 
				
			||||||
		buffer:        make([]*ReportAcceptStatusData, 0, batchSize),
 | 
							buffer:        make([]*ReportAcceptStatusData, 0, config.BufferSize),
 | 
				
			||||||
		bufferMutex:   new(sync.RWMutex),
 | 
							bufferMutex:   new(sync.RWMutex),
 | 
				
			||||||
		batchSize:     batchSize,
 | 
							batchSize:     config.BufferSize,
 | 
				
			||||||
		flushInterval: flushInterval,
 | 
							flushInterval: config.FlushInterval,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if flushInterval > 0 {
 | 
						if config.FlushInterval > 0 {
 | 
				
			||||||
		reportAcceptStatus.RegularFlushing()
 | 
							reportAcceptStatus.RegularFlushing()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,7 @@ import (
 | 
				
			|||||||
	"bytes"
 | 
						"bytes"
 | 
				
			||||||
	"github.com/1340691923/xwl_bi/engine/db"
 | 
						"github.com/1340691923/xwl_bi/engine/db"
 | 
				
			||||||
	"github.com/1340691923/xwl_bi/engine/logs"
 | 
						"github.com/1340691923/xwl_bi/engine/logs"
 | 
				
			||||||
 | 
						"github.com/1340691923/xwl_bi/model"
 | 
				
			||||||
	model2 "github.com/1340691923/xwl_bi/platform-basic-libs/sinker/model"
 | 
						model2 "github.com/1340691923/xwl_bi/platform-basic-libs/sinker/model"
 | 
				
			||||||
	parser "github.com/1340691923/xwl_bi/platform-basic-libs/sinker/parse"
 | 
						parser "github.com/1340691923/xwl_bi/platform-basic-libs/sinker/parse"
 | 
				
			||||||
	"go.uber.org/zap"
 | 
						"go.uber.org/zap"
 | 
				
			||||||
@ -21,15 +22,15 @@ type ReportData2CK struct {
 | 
				
			|||||||
	flushInterval int
 | 
						flushInterval int
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewReportData2CK(batchSize int, flushInterval int) *ReportData2CK {
 | 
					func NewReportData2CK(config model.BatchConfig) *ReportData2CK {
 | 
				
			||||||
	logs.Logger.Info("NewReportData2CK", zap.Int("batchSize", batchSize), zap.Int("flushInterval", flushInterval))
 | 
						logs.Logger.Info("NewReportData2CK", zap.Int("batchSize", config.BufferSize), zap.Int("flushInterval", config.FlushInterval))
 | 
				
			||||||
	reportData2CK := &ReportData2CK{
 | 
						reportData2CK := &ReportData2CK{
 | 
				
			||||||
		buffer:        make([]map[string]*parser.FastjsonMetric, 0, batchSize),
 | 
							buffer:        make([]map[string]*parser.FastjsonMetric, 0, config.BufferSize),
 | 
				
			||||||
		bufferMutex:   new(sync.RWMutex),
 | 
							bufferMutex:   new(sync.RWMutex),
 | 
				
			||||||
		batchSize:     batchSize,
 | 
							batchSize:     config.BufferSize,
 | 
				
			||||||
		flushInterval: flushInterval,
 | 
							flushInterval: config.FlushInterval,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if flushInterval > 0 {
 | 
						if config.FlushInterval > 0 {
 | 
				
			||||||
		reportData2CK.RegularFlushing()
 | 
							reportData2CK.RegularFlushing()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user