Skip to content

Commit

Permalink
升级依赖版本&&重构代码
Browse files Browse the repository at this point in the history
  • Loading branch information
JellyTony committed Mar 6, 2024
1 parent db2f307 commit 3cd6e2b
Show file tree
Hide file tree
Showing 8 changed files with 406 additions and 128 deletions.
31 changes: 16 additions & 15 deletions gorm/component.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@ import (

"database/sql"

driver "github.com/go-sql-driver/mysql"
"github.com/nextmicro/logger"
"github.com/nextmicro/next-component/gorm/plugin/logging"
"github.com/nextmicro/next-component/gorm/plugin/metrics"
"github.com/nextmicro/next-component/gorm/plugin/otelgorm"
"github.com/nextmicro/next/config"
"github.com/nextmicro/next/runtime/loader"
"github.com/uptrace/opentelemetry-go-extra/otelgorm"
"gorm.io/driver/mysql" //golint
"gorm.io/gorm"
glogger "gorm.io/gorm/logger"
Expand Down Expand Up @@ -134,6 +135,12 @@ func (c *Component) connect(name string, cfg *Options) (*gorm.DB, error) {
if cfg.SlowLogThreshold != 0 {
logOpts = append(logOpts, logging.WithSlowThreshold(cfg.SlowLogThreshold))
}

parseDSN, err := driver.ParseDSN(dsn)
if err != nil {
return nil, err
}

client, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: logging.NewLogging(logOpts...),
QueryFields: true,
Expand All @@ -145,8 +152,9 @@ func (c *Component) connect(name string, cfg *Options) (*gorm.DB, error) {
// tracing
if !cfg.DisableTrace {
err = client.Use(otelgorm.NewPlugin(
otelgorm.WithAttributes(),
otelgorm.WithDBName(cfg.Master.Database),
otelgorm.WithoutMetrics(),
otelgorm.WithCommentTraceID(cfg.SQLCommentTraceID),
otelgorm.WithDBName(parseDSN.DBName),
))
if err != nil {
return nil, err
Expand All @@ -156,8 +164,8 @@ func (c *Component) connect(name string, cfg *Options) (*gorm.DB, error) {
// metrics
if !cfg.DisableMetric {
err = client.Use(metrics.New(c.ctx,
metrics.WithName(cfg.Master.Database),
metrics.WithAddr(cfg.Master.Address),
metrics.WithName(parseDSN.DBName),
metrics.WithAddr(parseDSN.Addr),
))
if err != nil {
return nil, err
Expand Down Expand Up @@ -195,7 +203,7 @@ func (c *Component) connect(name string, cfg *Options) (*gorm.DB, error) {
return client, nil
}

func (c *Component) buildSlaves(dns []DSN) []gorm.Dialector {
func (c *Component) buildSlaves(dns []string) []gorm.Dialector {
ret := make([]gorm.Dialector, 0, len(dns))
for _, item := range dns {
dsn := c.buildDns(item)
Expand All @@ -204,15 +212,8 @@ func (c *Component) buildSlaves(dns []DSN) []gorm.Dialector {
return ret
}

func (c *Component) buildDns(dns DSN) string {
return fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=%s&parseTime=True&loc=%s",
dns.Username,
dns.Password,
dns.Address,
dns.Database,
dns.Charset,
dns.Location,
)
func (c *Component) buildDns(dns string) string {
return dns
}

func (c *Component) Start(ctx context.Context) error {
Expand Down
42 changes: 21 additions & 21 deletions gorm/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@ module github.com/nextmicro/next-component/gorm
go 1.21.0

require (
github.com/go-kratos/kratos/contrib/metrics/prometheus/v2 v2.0.0-20231116090954-1e4e37ad8735
github.com/go-kratos/kratos/v2 v2.7.2-0.20231116090954-1e4e37ad8735
github.com/go-kratos/kratos/contrib/metrics/prometheus/v2 v2.0.0-20240301031206-50cad79c96ae
github.com/go-kratos/kratos/v2 v2.7.2
github.com/go-sql-driver/mysql v1.7.1
github.com/nextmicro/gokit/timex v1.0.0
github.com/nextmicro/logger v1.0.3
github.com/nextmicro/next v1.0.6
github.com/uptrace/opentelemetry-go-extra/otelgorm v0.2.3
go.opentelemetry.io/otel v1.21.0
github.com/nextmicro/next v1.0.10
github.com/uptrace/opentelemetry-go-extra/otelsql v0.2.3
go.opentelemetry.io/otel v1.24.0
go.opentelemetry.io/otel/trace v1.24.0
gorm.io/driver/mysql v1.5.1
gorm.io/gorm v1.25.5
gorm.io/gorm v1.25.7
gorm.io/hints v1.1.2
gorm.io/plugin/dbresolver v1.4.7
)

Expand All @@ -25,16 +28,15 @@ require (
github.com/alibabacloud-go/tea v1.2.1 // indirect
github.com/alibabacloud-go/tea-utils v1.4.5 // indirect
github.com/alibabacloud-go/tea-utils/v2 v2.0.4 // indirect
github.com/aliyun/alibaba-cloud-sdk-go v1.62.612 // indirect
github.com/aliyun/alibaba-cloud-sdk-go v1.62.637 // indirect
github.com/aliyun/alibabacloud-dkms-gcs-go-sdk v0.5.1 // indirect
github.com/aliyun/alibabacloud-dkms-transfer-go-sdk v0.1.7 // indirect
github.com/aliyun/alibabacloud-dkms-transfer-go-sdk v0.1.8 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/buger/jsonparser v1.1.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-logr/logr v1.3.0 // indirect
github.com/go-logr/logr v1.4.1 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-sql-driver/mysql v1.7.1 // indirect
github.com/golang/mock v1.6.0 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/imdario/mergo v0.3.16 // indirect
Expand All @@ -47,29 +49,27 @@ require (
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/nacos-group/nacos-sdk-go/v2 v2.2.4 // indirect
github.com/nacos-group/nacos-sdk-go/v2 v2.2.5 // indirect
github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus/client_golang v1.17.0 // indirect
github.com/prometheus/client_model v0.5.0 // indirect
github.com/prometheus/common v0.45.0 // indirect
github.com/prometheus/procfs v0.12.0 // indirect
github.com/tjfoc/gmsm v1.4.1 // indirect
github.com/uptrace/opentelemetry-go-extra/otelsql v0.2.3 // indirect
go.opentelemetry.io/otel/metric v1.21.0 // indirect
go.opentelemetry.io/otel/trace v1.21.0 // indirect
go.opentelemetry.io/otel/metric v1.24.0 // indirect
go.uber.org/goleak v1.3.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.26.0 // indirect
golang.org/x/crypto v0.15.0 // indirect
golang.org/x/net v0.18.0 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/sync v0.5.0 // indirect
golang.org/x/sys v0.14.0 // indirect
golang.org/x/sys v0.17.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.4.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect
google.golang.org/grpc v1.59.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
golang.org/x/time v0.5.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect
google.golang.org/grpc v1.61.1 // indirect
google.golang.org/protobuf v1.32.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
Expand Down
Loading

0 comments on commit 3cd6e2b

Please sign in to comment.