Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into meixiongfeng

This commit is contained in:
meixiongfeng 2022-07-12 10:48:21 +08:00
commit bd548b5ff5
12 changed files with 170 additions and 55 deletions

1
.gitignore vendored
View File

@ -18,4 +18,5 @@ bin/conf
./bin/gateway ./bin/gateway
./bin/worker ./bin/worker
~$*.xlsx ~$*.xlsx
*.pid
cmd/luban/ cmd/luban/

BIN
bin/dbservice Executable file

Binary file not shown.

View File

@ -7,17 +7,17 @@ networks:
# 游戏数据卷 # 游戏数据卷
volumes: volumes:
consuldata: dreamfactory_consuldata:
name: consuldata name: dreamfactory_consuldata
redisdata: dreamfactory_redisdata:
name: redisdata name: dreamfactory_redisdata
mongodata: dreamfactory_mongodata:
name: mongodata name: dreamfactory_mongodata
# 服务 # 服务
services: services:
redis: redis:
image: redis:latest image: redis:latest
container_name: redis container_name: dreamfactory_redis
ports: ports:
- '10011:6379' - '10011:6379'
networks: networks:
@ -28,14 +28,14 @@ services:
command: /etc/redis/redis.conf command: /etc/redis/redis.conf
volumes: volumes:
# 持久存储redis的数据 # 持久存储redis的数据
- redisdata:/data - dreamfactory_redisdata:/data
# 挂载本地配置文件 # 挂载本地配置文件
- ./redis.conf:/etc/redis/redis.conf - ./redis.conf:/etc/redis/redis.conf
# 时间同步 # 时间同步
# - /etc/localtime:/etc/localtime # - /etc/localtime:/etc/localtime
consul: consul:
image: consul:latest image: consul:latest
container_name: consul container_name: dreamfactory_consul
ports: ports:
- '10012:8500' - '10012:8500'
command: consul agent -server -bootstrap -data-dir /consul/data -node=ylconsul -bind=0.0.0.0 -config-dir=/consul/config/ -client=0.0.0.0 -ui command: consul agent -server -bootstrap -data-dir /consul/data -node=ylconsul -bind=0.0.0.0 -config-dir=/consul/config/ -client=0.0.0.0 -ui
@ -45,10 +45,10 @@ services:
aliases: aliases:
- discovery - discovery
volumes: volumes:
- consuldata:/consul/data - dreamfactory_consuldata:/consul/data
mongo: mongo:
image: mongo:latest image: mongo:latest
container_name: mongo container_name: dreamfactory_mongo
ports: ports:
- '10013:27017' - '10013:27017'
networks: networks:
@ -62,7 +62,7 @@ services:
# MONGO_INITDB_ROOT_PASSWORD: li13451234 # MONGO_INITDB_ROOT_PASSWORD: li13451234
volumes: volumes:
# 持久存储mongodb的数据 # 持久存储mongodb的数据
- mongodata:/data/db:rw - dreamfactory_mongodata:/data/db:rw
- mongodata:/data/configdb:rw - dreamfactory_mongodata:/data/configdb:rw
# 挂载本地配置文件 # 挂载本地配置文件
- ./mongod.conf:/etc/mongo/mongod.conf:rw - ./mongod.conf:/etc/mongo/mongod.conf:rw

BIN
bin/gateway Executable file

Binary file not shown.

50
bin/stup.sh Executable file
View File

@ -0,0 +1,50 @@
#!/bin/sh
SERVICE=$2
CMD="./$2 -conf $3"
start(){
echo "starting..."
nohup $CMD > /dev/null 2>&1 &
# nohup $CMD >output.log 2>&1 &
if [ $? -ne 0 ]
then
echo "start failed, please check the log!"
exit $?
else
echo $! > $SERVICE.pid
echo "start success"
fi
}
stop(){
echo "stopping..."
kill -9 `cat $SERVICE.pid`
if [ $? -ne 0 ]
then
echo "stop failed, may be $SERVICE isn't running"
exit $?
else
rm -rf $SERVICE.pid
echo "stop success"
fi
}
restart(){
stop&&start
}
status(){
num=`ps -ef | grep $SERVICE | grep -v grep | wc -l`
if [ $num -eq 0 ]
then
echo "$SERVICE isn't running"
else
echo "$SERVICE is running"
fi
}
case $1 in
start) start ;;
stop) stop ;;
restart) restart ;;
status) status ;;
*) echo "Usage: $0 {start|stop|restart|status}" ;;
esac
exit 0

BIN
bin/worker Executable file

Binary file not shown.

72
cmd/bench/base.go Normal file
View File

@ -0,0 +1,72 @@
package bench
import (
"fmt"
"testing"
)
type Target struct {
//这里定义需要测试的方法
}
//测试基准
type Benchmark struct {
Parallelism int //并行数目
Data interface{} //bench 参数数据
TargetBuilder TargetBuilder
}
//构建基准目标
type TargetBuilder struct {
Name string
Make func(bench Benchmark) (Target, error)
}
func compose(parallelisms, dataSize []int, numKeys int, builders []TargetBuilder) []Benchmark {
benchmarks := make([]Benchmark, 0, len(parallelisms)*len(dataSize)*len(builders))
for _, p := range parallelisms {
for _, _ = range dataSize {
for _, builder := range builders {
benchmarks = append(benchmarks, Benchmark{
Parallelism: p,
// Data: d,
TargetBuilder: builder,
})
}
}
}
return benchmarks
}
func RunBenchmark(b *testing.B, benchmarks []Benchmark) {
for _, bench := range benchmarks {
bench := bench
b.Run(fmt.Sprintf("%s-parallelism(%d)- ", bench.TargetBuilder.Name, bench.Parallelism), func(b *testing.B) {
// target, err := bench.TargetBuilder.Make(bench)
// if err != nil {
// b.Fatalf("%s setup fail: %v", bench.TargetBuilder.Name, err)
// }
if bench.Parallelism == 0 {
b.ResetTimer()
for i := 0; i < b.N; i++ {
//执行测试方法
}
} else {
b.SetParallelism(bench.Parallelism) //指定并行数目
b.ResetTimer()
b.RunParallel(func(pb *testing.PB) { //并行执行
for pb.Next() {
//执行测试方法
}
})
}
b.StopTimer()
})
}
}

31
cmd/bench/main_test.go Normal file
View File

@ -0,0 +1,31 @@
package bench
import (
"testing"
)
func BenchmarkMarsh(b *testing.B) {
var (
// ncpu = runtime.NumCPU()
parallelisms = []int{4, 16, 64}
dataSizes = []int{100, 1000, 10000}
numKeys = 1024
builders = []TargetBuilder{
{
Name: "测试名1",
Make: func(bench Benchmark) (Target, error) {
return Target{}, nil
},
},
{
Name: "测试名2",
Make: func(bench Benchmark) (Target, error) {
return Target{}, nil
},
},
}
)
RunBenchmark(b, compose(parallelisms, dataSizes, numKeys, builders))
}

View File

@ -35,8 +35,6 @@ type (
IHero interface { IHero interface {
//查询用户卡片数量 //查询用户卡片数量
QueryHeroAmount(uId string, heroCfgId int32) (amount uint32) QueryHeroAmount(uId string, heroCfgId int32) (amount uint32)
//消耗卡片
ConsumeCard(uId string, heroCfgId int32, count int32) (code pb.ErrorCode)
//创建新英雄 //创建新英雄
CreateHero(uid string, heroCfgId ...int32) error CreateHero(uid string, heroCfgId ...int32) error

View File

@ -11,7 +11,6 @@ import (
"go_dreamfactory/lego/sys/event" "go_dreamfactory/lego/sys/event"
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/sys/rpcx" "go_dreamfactory/lego/sys/rpcx"
"github.com/smallnest/rpcx/client" "github.com/smallnest/rpcx/client"
) )

0
linux_bulid.sh Normal file → Executable file
View File

View File

@ -43,40 +43,6 @@ func (this *Hero) CreateHero(uid string, heroCfgId ...int32) error {
return this.modelHero.createMultiHero(uid, heroCfgId...) return this.modelHero.createMultiHero(uid, heroCfgId...)
} }
//消耗英雄卡
// func (this *Hero) ConsumeCard(uId string, heroCfgId int32, count int32) (code pb.ErrorCode) {
// if count <= 0 {
// log.Errorf("attr no changed,uid: %s heroCfgId: %s count: %d", uId, heroCfgId, count)
// code = pb.ErrorCode_ReqParameterError
// return
// }
// heroCfg := this.configure.GetHero(heroCfgId)
// if heroCfg != nil {
// }
// heroes := this.GetHeroList(uId)
// var curList []*pb.DBHero
// for _, v := range heroes {
// if heroCfgId == v.HeroID {
// curList = append(curList, v)
// }
// }
// if int32(len(curList)) < count {
// return pb.ErrorCode_HeroNoEnough
// }
// for _, v := range curList {
// err := this.modelHero.consumeOneHeroCard(v.Uid, v.Id, count)
// if err != nil {
// return pb.ErrorCode_DBError
// }
// }
// return pb.ErrorCode_Success
// }
//获取英雄 //获取英雄
func (this *Hero) GetHero(uid, heroId string) (*pb.DBHero, pb.ErrorCode) { func (this *Hero) GetHero(uid, heroId string) (*pb.DBHero, pb.ErrorCode) {
hero := this.modelHero.getOneHero(uid, heroId) hero := this.modelHero.getOneHero(uid, heroId)
@ -115,12 +81,10 @@ func (this *Hero) UpdateEquipment(hero *pb.DBHero, equip []*pb.DB_Equipment) (co
//英雄列表 //英雄列表
func (this *Hero) GetHeroList(uid string) []*pb.DBHero { func (this *Hero) GetHeroList(uid string) []*pb.DBHero {
// data := []*pb.DBHero{}
heroes := this.modelHero.getHeroList(uid) heroes := this.modelHero.getHeroList(uid)
// for _, h := range heroes { for _, h := range heroes {
// h.Property = this.modelHero.PropertyCompute(uid, h.Id) h.Property = this.modelHero.PropertyCompute(uid, h.Id)
// data = append(data, h) }
// }
return heroes return heroes
} }