Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: optimize log and consumer(redis and rabbitmq) #8

Merged
merged 4 commits into from
Jul 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jobs:
- name: Setup golangci-lint
run: |
go install github.com/golangci/golangci-lint/cmd/[email protected]
make lint

test:
needs: lint
Expand Down
4 changes: 2 additions & 2 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# options for analysis running
run:
go: '1.18'
go: '1.21'
# default concurrency is a available CPU number
concurrency: 4

Expand Down Expand Up @@ -311,4 +311,4 @@ issues:
new-from-rev: ""

# Show only new issues created in git patch with set file path.
# new-from-patch: path/to/patch/file
# new-from-patch: path/to/patch/file
26 changes: 0 additions & 26 deletions cmd/consumer/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,9 @@ import (

eagle "github.com/go-eagle/eagle/pkg/app"
"github.com/go-eagle/eagle/pkg/config"
logger "github.com/go-eagle/eagle/pkg/log"
"github.com/go-eagle/eagle/pkg/redis"
redisMQ "github.com/go-eagle/eagle/pkg/transport/consumer/redis"
v "github.com/go-eagle/eagle/pkg/version"
"github.com/spf13/pflag"

"github.com/go-eagle/eagle-layout/internal/model"
"github.com/go-eagle/eagle-layout/internal/server"
"github.com/go-eagle/eagle-layout/internal/tasks"
)

Expand Down Expand Up @@ -47,13 +42,6 @@ func main() {
// set global
eagle.Conf = &cfg

// -------------- init resource -------------
logger.Init()
// init db
model.Init()
// init redis
redis.Init()

// load config
c = config.New(*cfgDir, config.WithEnv(*env))
var taskCfg tasks.Config
Expand All @@ -71,17 +59,3 @@ func main() {
panic(err)
}
}

func newApp(cfg *eagle.Config, cs *redisMQ.Server) *eagle.App {
return eagle.New(
eagle.WithName(cfg.Name),
eagle.WithVersion(cfg.Version),
eagle.WithLogger(logger.GetLogger()),
eagle.WithServer(
// init HTTP server
server.NewHTTPServer(&cfg.HTTP),
// init consumer server
cs,
),
)
}
26 changes: 25 additions & 1 deletion cmd/consumer/wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,36 @@ package main

import (
"github.com/go-eagle/eagle-layout/internal/server"

//"github.com/go-eagle/eagle-layout/internal/service"
"github.com/go-eagle/eagle-layout/internal/tasks"
eagle "github.com/go-eagle/eagle/pkg/app"
logger "github.com/go-eagle/eagle/pkg/log"
redisMQ "github.com/go-eagle/eagle/pkg/transport/consumer/redis"
httpSrv "github.com/go-eagle/eagle/pkg/transport/http"
"github.com/google/wire"
)

func InitApp(cfg *eagle.Config, config *eagle.ServerConfig, tc *tasks.Config) (*eagle.App, func(), error) {
wire.Build(server.ProviderSet, newApp)
wire.Build(server.ProviderSetForConsumer, newApp)
return &eagle.App{}, nil, nil
}

// 第三个参数需要根据使用的server 进行调整
// 默认使用 redis, 如果使用 rabbitmq 可以改为: rs *rabbitmq.Server
// 然后执行 wire
func newApp(cfg *eagle.Config, hs *httpSrv.Server, rs *redisMQ.Server) *eagle.App {
logger.Init(logger.WithFilename("consumer"))

return eagle.New(
eagle.WithName(cfg.Name),
eagle.WithVersion(cfg.Version),
eagle.WithLogger(logger.GetLogger()),
eagle.WithServer(
// init HTTP server
hs,
// init consumer server
rs,
),
)
}
30 changes: 26 additions & 4 deletions cmd/consumer/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 0 additions & 18 deletions cmd/server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,9 @@ import (
"github.com/gin-gonic/gin"
eagle "github.com/go-eagle/eagle/pkg/app"
"github.com/go-eagle/eagle/pkg/config"
logger "github.com/go-eagle/eagle/pkg/log"
v "github.com/go-eagle/eagle/pkg/version"
"github.com/spf13/pflag"
_ "go.uber.org/automaxprocs"

httpSrv "github.com/go-eagle/eagle/pkg/transport/http"
)

var (
Expand Down Expand Up @@ -64,9 +61,6 @@ func main() {
// set global
eagle.Conf = &cfg

// -------------- init resource -------------
logger.Init()

gin.SetMode(cfg.Mode)

// init pprof server
Expand All @@ -87,15 +81,3 @@ func main() {
panic(err)
}
}

func newApp(cfg *eagle.Config, hs *httpSrv.Server) *eagle.App {
return eagle.New(
eagle.WithName(cfg.Name),
eagle.WithVersion(cfg.Version),
eagle.WithLogger(logger.GetLogger()),
eagle.WithServer(
// init HTTP server
hs,
),
)
}
22 changes: 18 additions & 4 deletions cmd/server/wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,29 @@
package main

import (
"github.com/go-eagle/eagle-layout/internal/cache"
"github.com/go-eagle/eagle-layout/internal/repository"
"github.com/go-eagle/eagle-layout/internal/server"
"github.com/go-eagle/eagle-layout/internal/service"
eagle "github.com/go-eagle/eagle/pkg/app"
logger "github.com/go-eagle/eagle/pkg/log"
httpSrv "github.com/go-eagle/eagle/pkg/transport/http"
"github.com/google/wire"
)

func InitApp(cfg *eagle.Config, config *eagle.ServerConfig) (*eagle.App, func(), error) {
wire.Build(server.ProviderSet, service.ProviderSet, repository.ProviderSet, cache.ProviderSet, newApp)
// wire.Build(server.ProviderSet, service.ProviderSet, repository.ProviderSet, cache.ProviderSet, newApp)
wire.Build(server.ProviderSet, newApp)
return &eagle.App{}, nil, nil
}

func newApp(cfg *eagle.Config, hs *httpSrv.Server) *eagle.App {
logger.Init(logger.WithFilename("app"))

return eagle.New(
eagle.WithName(cfg.Name),
eagle.WithVersion(cfg.Version),
eagle.WithLogger(logger.GetLogger()),
eagle.WithServer(
// init HTTP server
hs,
),
)
}
40 changes: 18 additions & 22 deletions cmd/server/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion config/consumer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ redis:
WriteTimeout: 500ms
PoolSize: 100
PoolTimeout: 240s
Concurrency: 10

rabbitmq:
addr: guest:guest@localhost:5672
exchangeName: test-exchange
exchangeName: test-exchange
15 changes: 7 additions & 8 deletions config/logger.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
Development: false
DisableCaller: false
DisableStacktrace: false
Encoding: json # json or console
Level: debug # 日志级别,INFO, WARN, ERROR
Name: eagle
Writers: console # 有2个可选项:file,console 选择file会将日志记录到logger_file指定的日志文件中,选择console会将日志输出到标准输出,当然也可以两者同时选择
LoggerFile: /tmp/log/eagle.log
LoggerWarnFile: /tmp/log/eagle.wf.log
LoggerErrorFile: /tmp/log/eagle.err.log
Encoding: json # json or console
Level: debug # 日志级别,INFO, WARN, ERROR
ServiceName: demo-service
Filename: eagle
Writers: console # 有2个可选项:file,console 选择file会将日志记录到logger_file指定的日志文件中,选择console会将日志输出到标准输出,当然也可以两者同时选择
LoggerDir: /tmp/logs
LogRollingPolicy: daily
LogRotateDate: 1
LogRotateSize: 1
LogBackupCount: 7
LogBackupCount: 7
74 changes: 74 additions & 0 deletions config/rabbitmq.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# rabbitmq.yaml, 支持配置多个队列
test-demo:
uri: "amqp://guest:guest@localhost:5672/moments-test"
auto-declare: true
timeout: 5s
exchange:
name: local-test-exchange
kind: direct
durable: true
auto-delete: false
internal: false
no-wait: false
args: {}
queue:
name: local-test-queue
durable: true
auto-delete: false
exclusive: false
no-wait: false
args: {}
bind:
routing-key: local-test-routing-key
no-wait: false
args: {}

test-demo2:
uri: "amqp://guest:guest@localhost:5672/moments-test"
auto-declare: true
timeout: 5s
exchange:
name: local-test2-exchange
kind: direct
durable: true
auto-delete: false
internal: false
no-wait: false
args: {}
queue:
name: local-test2-queue
durable: true
auto-delete: false
exclusive: false
no-wait: false
args: {}
bind:
routing-key: local-test2-routing-key
no-wait: false
args: {}

# 延迟队列, 需要安装延迟队列插件
delay-queue1:
uri: amqp://guest:guest@localhost:5672/moments-test
auto-declare: true
timeout: 5s
exchange:
name: delayed-exchange
kind: x-delayed-message
durable: true
auto-delete: false
internal: false
no-wait: false
args:
x-delayed-type: direct
queue:
name: delayed-queue
durable: true
auto-delete: false
exclusive: false
no-wait: false
args: {}
bind:
routing-key: delayed-routing-key
no-wait: false
args: {}
Loading
Loading