解决消息中间件并发环境下报错问题

This commit is contained in:
renzhiyuan 2025-02-14 10:01:07 +08:00
parent 7eab49cabe
commit 64905d5d96
17 changed files with 1695 additions and 1430 deletions

View File

@ -22,6 +22,11 @@ WORKDIR /src
ADD ./sh/startup.sh /opt/startup.sh
RUN sed -i 's/\r//g' /opt/startup.sh
ADD ./sh/supervisord.conf /etc/supervisord.conf
RUN echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/main' > /etc/apk/repositories \
&& echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/community' >>/etc/apk/repositories \
&& apk update && apk add tzdata \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
WORKDIR /src
EXPOSE 10001

View File

@ -6,7 +6,8 @@ type ExtraConfig struct {
}
type NacosConf struct {
Hosts []string
Hosts string
Port uint64
NameSpace string
TimeOut uint64
ServiceName string

View File

@ -24,6 +24,6 @@ func NewNewMarketDiscardLogic(ctx context.Context, svcCtx *svc.ServiceContext) *
}
func (l *NewMarketDiscardLogic) NewMarketDiscard(in *transfer.NewMarketDiscardReq) (*transfer.NewMarketDiscardRes, error) {
res, err := l.svcCtx.NewMarket.Discard(l.ctx, in)
res, err := l.svcCtx.NewMarket.Init(l.svcCtx.Config.Mq).Discard(l.ctx, in)
return res, err
}

View File

@ -23,7 +23,7 @@ func NewNewMarketOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ne
}
func (l *NewMarketOrderLogic) NewMarketOrder(in *transfer.NewMarketOrderReq) (*transfer.NewMarketOrderRes, error) {
res, err := l.svcCtx.NewMarket.Order(l.ctx, in)
res, err := l.svcCtx.NewMarket.Init(l.svcCtx.Config.Mq).Order(l.ctx, in)
return res, err
}

View File

@ -24,6 +24,6 @@ func NewNewMarketQueryLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ne
}
func (l *NewMarketQueryLogics) NewMarketQuery(in *transfer.NewMarketQueryReq) (*transfer.NewMarketOrderRes, error) {
res, err := l.svcCtx.NewMarket.Query(l.ctx, in)
res, err := l.svcCtx.NewMarket.Init(l.svcCtx.Config.Mq).Query(l.ctx, in)
return res, err
}

View File

@ -6,6 +6,7 @@ import (
"github.com/mitchellh/mapstructure"
"github.com/sleepinggodoflove/lansexiongdi-marketing-sdk/api/v1/key"
"github.com/sleepinggodoflove/lansexiongdi-marketing-sdk/core"
"trasfer_middleware/cmd/rpc/etc"
mqs "trasfer_middleware/until/mq"
"trasfer_middleware/cmd/rpc/internal/logic/po"
@ -25,6 +26,7 @@ type NewMarketStruct struct {
}
func NewNewMarket(conf types.NewMarketConf, rmq *mqs.Producer) *NewMarketStruct {
return &NewMarketStruct{
Conf: &conf,
CoreConfig: &core.Config{
@ -33,10 +35,16 @@ func NewNewMarket(conf types.NewMarketConf, rmq *mqs.Producer) *NewMarketStruct
Key: conf.KEY,
BaseURL: conf.Host,
},
rmq: rmq,
rmq: rmq,
RequestStruct: &po.RequestStruct{},
}
}
func (r *NewMarketStruct) Init(config etc.RockerMqConfig) *NewMarketStruct {
r.RequestStruct.Config = config
return r
}
func (r *NewMarketStruct) handleLog(ctx context.Context, url string, resp *key.Response, in interface{}) error {
r.SetRequestStruct(in)
err := r.sendMq(ctx, url, resp)
@ -112,7 +120,8 @@ func (r *NewMarketStruct) coreKey(appId string) (*key.Key, error) {
func (r *NewMarketStruct) sendMq(ctx context.Context, url string, resp *key.Response) error {
//异步存入请求记录
err := r.rmq.SendSync(ctx, r.Config.TopicPrefix+r.Config.Topic.NewMarket.Name, po.SetMqSendDataNewMarket(r.RequestStruct, resp, url))
topic := r.RequestStruct.Config.TopicPrefix + r.RequestStruct.Config.Topic.NewMarket.Name
err := r.rmq.SendSync(ctx, topic, po.SetMqSendDataNewMarket(r.RequestStruct, resp, url))
if err != nil {
sysLog.LogSendMq(ctx, err)
}

View File

@ -63,9 +63,7 @@ message PhysicalOrderAfterApplyRes {
}
message PhysicalOrderAfterApplyResData {
message ApplyOrderAfterByOpenapiReply {
repeated string order_after_nums = 1;
}
}
@ -204,6 +202,8 @@ message OrderOpSubmitGoodsInfo {
string goods_num = 19; //
double sale_price = 20; //
}
message PhysicalOrderListRes{
@ -240,6 +240,7 @@ message PhysicalOrderListReq {
repeated string customer_order_nums = 7;
repeated int32 abnormal_status = 8;
repeated string created_at = 9;
repeated string supplier_ids = 11;
}
message PhysicalOrderInfoRes {
@ -605,6 +606,8 @@ message NewMarketOrderRes {
string key = 3;
int32 status = 4;
string url = 5;
uint32 usable_num=10;
uint32 usage_num=11;
string valid_begin_time = 6;
string valid_end_time = 7;
string usage_time = 8;

File diff suppressed because it is too large Load Diff

View File

@ -4,14 +4,14 @@ import (
"flag"
"fmt"
"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
"github.com/zeromicro/zero-contrib/zrpc/registry/nacos"
//"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
"github.com/zeromicro/go-zero/core/conf"
"github.com/zeromicro/go-zero/core/service"
"github.com/zeromicro/go-zero/zrpc"
"github.com/zeromicro/zero-contrib/zrpc/registry/nacos"
//"github.com/zeromicro/zero-contrib/zrpc/registry/nacos"
"google.golang.org/grpc"
"google.golang.org/grpc/reflection"
"strconv"
"strings"
"trasfer_middleware/cmd/rpc/internal/config"
"trasfer_middleware/cmd/rpc/internal/server"
"trasfer_middleware/cmd/rpc/internal/svc"
@ -34,7 +34,14 @@ func main() {
}
})
//registerNacos(&c)
registerNacos(&c)
//until_nacos.NewRegistrarxxx(
// c.Nacos.Hosts,
// c.Nacos.Port,
// v1c.WithNamespaceId(c.Nacos.NameSpace),
// v1c.WithLogDir("./log/base"),
//)
defer s.Stop()
fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)
@ -43,25 +50,25 @@ func main() {
func registerNacos(c *config.Config) {
sc := []constant.ServerConfig{}
for _, v := range c.Nacos.Hosts {
splitSlice := strings.Split(v, ":")
port, _ := strconv.Atoi(splitSlice[1])
sc = append(sc, *constant.NewServerConfig(splitSlice[0], uint64(port)))
}
sc = append(sc, *constant.NewServerConfig(c.Nacos.Hosts, c.Nacos.Port))
cc := &constant.ClientConfig{
NamespaceId: c.Nacos.NameSpace,
TimeoutMs: c.Nacos.TimeOut,
NotLoadCacheAtStart: true,
Username: c.Nacos.Username,
Password: c.Nacos.Password,
LogDir: "/tmp/nacos/log",
CacheDir: "/tmp/nacos/cache",
LogLevel: "debug",
//Username: c.Nacos.Username,
//Password: c.Nacos.Password,
LogDir: "/tmp/nacos/log",
CacheDir: "/tmp/nacos/cache",
LogLevel: "debug",
}
//splitSlice := strings.Split(c.ListenOn, ":")
//ip, _ := common.GetLocalIP()
opts := nacos.NewNacosConfig(c.Nacos.ServiceName, c.ListenOn, sc, cc)
err := nacos.RegisterService(opts)
if err != nil {
panic(err)
}
fmt.Printf("rpc 连接成功")
}

View File

@ -13,101 +13,100 @@ import (
)
type (
Address = transfer.Address
BillCus = transfer.BillCus
DefaultReq = transfer.DefaultReq
DefaultRes = transfer.DefaultRes
EmptyReqs = transfer.EmptyReqs
Express = transfer.Express
ExpressData = transfer.ExpressData
ExpressList = transfer.ExpressList
GoodsChild = transfer.GoodsChild
GoodsStructWithChild = transfer.GoodsStructWithChild
GoodsStructWithChildData = transfer.GoodsStructWithChildData
GoodsStructWithChildData_Media = transfer.GoodsStructWithChildData_Media
List = transfer.List
MarketKeyDiscardReq = transfer.MarketKeyDiscardReq
MarketKeyDiscardRes = transfer.MarketKeyDiscardRes
MarketKeyDiscardRes_Data = transfer.MarketKeyDiscardRes_Data
MarketKeySendReq = transfer.MarketKeySendReq
MarketKeySendRes = transfer.MarketKeySendRes
MarketKeySendRes_Data = transfer.MarketKeySendRes_Data
MarketQueryReq = transfer.MarketQueryReq
MarketQueryRes = transfer.MarketQueryRes
MarketQueryRes_Data = transfer.MarketQueryRes_Data
NewMarketDiscardReq = transfer.NewMarketDiscardReq
NewMarketDiscardRes = transfer.NewMarketDiscardRes
NewMarketOrderReq = transfer.NewMarketOrderReq
NewMarketOrderRes = transfer.NewMarketOrderRes
NewMarketOrderRes_Data = transfer.NewMarketOrderRes_Data
NewMarketQueryReq = transfer.NewMarketQueryReq
OrderAfterOpBasic = transfer.OrderAfterOpBasic
OrderAfterOpGoodsInfo = transfer.OrderAfterOpGoodsInfo
OrderInfoData = transfer.OrderInfoData
OrderListData = transfer.OrderListData
OrderListData_OrderListDataList = transfer.OrderListData_OrderListDataList
OrderOpBasicInfo = transfer.OrderOpBasicInfo
OrderOpGoodsInfo = transfer.OrderOpGoodsInfo
OrderOpLogistics = transfer.OrderOpLogistics
OrderOpSubmitGoodsInfo = transfer.OrderOpSubmitGoodsInfo
PhysicalAddressListReq = transfer.PhysicalAddressListReq
PhysicalAddressListRes = transfer.PhysicalAddressListRes
PhysicalCusBalanceRes = transfer.PhysicalCusBalanceRes
PhysicalCusBalanceResData = transfer.PhysicalCusBalanceResData
PhysicalCusLogsReq = transfer.PhysicalCusLogsReq
PhysicalCusLogsRes = transfer.PhysicalCusLogsRes
PhysicalCusLogsRes_BalanceLog = transfer.PhysicalCusLogsRes_BalanceLog
PhysicalCusLogsRes_PhysicalCusLogsResDataList = transfer.PhysicalCusLogsRes_PhysicalCusLogsResDataList
PhysicalExpressListReq = transfer.PhysicalExpressListReq
PhysicalExpressListRes = transfer.PhysicalExpressListRes
PhysicalExpressListResData = transfer.PhysicalExpressListResData
PhysicalFinanceBillReq = transfer.PhysicalFinanceBillReq
PhysicalFinanceBillRes = transfer.PhysicalFinanceBillRes
PhysicalFinanceBillResData = transfer.PhysicalFinanceBillResData
PhysicalGoodsDetailReq = transfer.PhysicalGoodsDetailReq
PhysicalGoodsListReq = transfer.PhysicalGoodsListReq
PhysicalGoodsListRes = transfer.PhysicalGoodsListRes
PhysicalGoodsStockReq = transfer.PhysicalGoodsStockReq
PhysicalGoodsStockRes = transfer.PhysicalGoodsStockRes
PhysicalGoodsStockResData = transfer.PhysicalGoodsStockResData
PhysicalGoodsStockResData_GoodsStock = transfer.PhysicalGoodsStockResData_GoodsStock
PhysicalOrderAfterApplyReq = transfer.PhysicalOrderAfterApplyReq
PhysicalOrderAfterApplyRes = transfer.PhysicalOrderAfterApplyRes
PhysicalOrderAfterApplyResData = transfer.PhysicalOrderAfterApplyResData
PhysicalOrderAfterApplyResData_ApplyOrderAfterByOpenapiReply = transfer.PhysicalOrderAfterApplyResData_ApplyOrderAfterByOpenapiReply
PhysicalOrderAfterReturnReq = transfer.PhysicalOrderAfterReturnReq
PhysicalOrderAfterReturnRes = transfer.PhysicalOrderAfterReturnRes
PhysicalOrderAfterReturnResData = transfer.PhysicalOrderAfterReturnResData
PhysicalOrderCloseReq = transfer.PhysicalOrderCloseReq
PhysicalOrderCloseRes = transfer.PhysicalOrderCloseRes
PhysicalOrderCloseResData = transfer.PhysicalOrderCloseResData
PhysicalOrderInfoReq = transfer.PhysicalOrderInfoReq
PhysicalOrderInfoRes = transfer.PhysicalOrderInfoRes
PhysicalOrderInfoRes_PhysicalOrderInfoResData = transfer.PhysicalOrderInfoRes_PhysicalOrderInfoResData
PhysicalOrderListReq = transfer.PhysicalOrderListReq
PhysicalOrderListRes = transfer.PhysicalOrderListRes
PhysicalOrderListResData = transfer.PhysicalOrderListResData
PhysicalOrderLogisticsLogsReq = transfer.PhysicalOrderLogisticsLogsReq
PhysicalOrderLogisticsLogsRes = transfer.PhysicalOrderLogisticsLogsRes
PhysicalOrderLogisticsLogsResData = transfer.PhysicalOrderLogisticsLogsResData
PhysicalOrderSubReq = transfer.PhysicalOrderSubReq
PhysicalOrderSubRes = transfer.PhysicalOrderSubRes
PhysicalOrderSubResData = transfer.PhysicalOrderSubResData
RsCouponGrantReq = transfer.RsCouponGrantReq
RsCouponGrantRes = transfer.RsCouponGrantRes
RsCouponGrantRes_Data = transfer.RsCouponGrantRes_Data
RsCouponGrantRes_Data_VoucherInfo = transfer.RsCouponGrantRes_Data_VoucherInfo
ZltxOrderCardQueryReq = transfer.ZltxOrderCardQueryReq
ZltxOrderCardQueryRes = transfer.ZltxOrderCardQueryRes
ZltxOrderCardReq = transfer.ZltxOrderCardReq
ZltxOrderRechargeQueryReq = transfer.ZltxOrderRechargeQueryReq
ZltxOrderRechargeQueryRes = transfer.ZltxOrderRechargeQueryRes
ZltxOrderRechargeReq = transfer.ZltxOrderRechargeReq
ZltxOrderSmsReq = transfer.ZltxOrderSmsReq
ZltxOrderSmsRes = transfer.ZltxOrderSmsRes
ZltxRechargeInfoRes = transfer.ZltxRechargeInfoRes
ZltxRechargeProductRes = transfer.ZltxRechargeProductRes
ZltxRechargeProductRes_Product = transfer.ZltxRechargeProductRes_Product
Address = transfer.Address
BillCus = transfer.BillCus
DefaultReq = transfer.DefaultReq
DefaultRes = transfer.DefaultRes
EmptyReqs = transfer.EmptyReqs
Express = transfer.Express
ExpressData = transfer.ExpressData
ExpressList = transfer.ExpressList
GoodsChild = transfer.GoodsChild
GoodsStructWithChild = transfer.GoodsStructWithChild
GoodsStructWithChildData = transfer.GoodsStructWithChildData
GoodsStructWithChildData_Media = transfer.GoodsStructWithChildData_Media
List = transfer.List
MarketKeyDiscardReq = transfer.MarketKeyDiscardReq
MarketKeyDiscardRes = transfer.MarketKeyDiscardRes
MarketKeyDiscardRes_Data = transfer.MarketKeyDiscardRes_Data
MarketKeySendReq = transfer.MarketKeySendReq
MarketKeySendRes = transfer.MarketKeySendRes
MarketKeySendRes_Data = transfer.MarketKeySendRes_Data
MarketQueryReq = transfer.MarketQueryReq
MarketQueryRes = transfer.MarketQueryRes
MarketQueryRes_Data = transfer.MarketQueryRes_Data
NewMarketDiscardReq = transfer.NewMarketDiscardReq
NewMarketDiscardRes = transfer.NewMarketDiscardRes
NewMarketOrderReq = transfer.NewMarketOrderReq
NewMarketOrderRes = transfer.NewMarketOrderRes
NewMarketOrderRes_Data = transfer.NewMarketOrderRes_Data
NewMarketQueryReq = transfer.NewMarketQueryReq
OrderAfterOpBasic = transfer.OrderAfterOpBasic
OrderAfterOpGoodsInfo = transfer.OrderAfterOpGoodsInfo
OrderInfoData = transfer.OrderInfoData
OrderListData = transfer.OrderListData
OrderListData_OrderListDataList = transfer.OrderListData_OrderListDataList
OrderOpBasicInfo = transfer.OrderOpBasicInfo
OrderOpGoodsInfo = transfer.OrderOpGoodsInfo
OrderOpLogistics = transfer.OrderOpLogistics
OrderOpSubmitGoodsInfo = transfer.OrderOpSubmitGoodsInfo
PhysicalAddressListReq = transfer.PhysicalAddressListReq
PhysicalAddressListRes = transfer.PhysicalAddressListRes
PhysicalCusBalanceRes = transfer.PhysicalCusBalanceRes
PhysicalCusBalanceResData = transfer.PhysicalCusBalanceResData
PhysicalCusLogsReq = transfer.PhysicalCusLogsReq
PhysicalCusLogsRes = transfer.PhysicalCusLogsRes
PhysicalCusLogsRes_BalanceLog = transfer.PhysicalCusLogsRes_BalanceLog
PhysicalCusLogsRes_PhysicalCusLogsResDataList = transfer.PhysicalCusLogsRes_PhysicalCusLogsResDataList
PhysicalExpressListReq = transfer.PhysicalExpressListReq
PhysicalExpressListRes = transfer.PhysicalExpressListRes
PhysicalExpressListResData = transfer.PhysicalExpressListResData
PhysicalFinanceBillReq = transfer.PhysicalFinanceBillReq
PhysicalFinanceBillRes = transfer.PhysicalFinanceBillRes
PhysicalFinanceBillResData = transfer.PhysicalFinanceBillResData
PhysicalGoodsDetailReq = transfer.PhysicalGoodsDetailReq
PhysicalGoodsListReq = transfer.PhysicalGoodsListReq
PhysicalGoodsListRes = transfer.PhysicalGoodsListRes
PhysicalGoodsStockReq = transfer.PhysicalGoodsStockReq
PhysicalGoodsStockRes = transfer.PhysicalGoodsStockRes
PhysicalGoodsStockResData = transfer.PhysicalGoodsStockResData
PhysicalGoodsStockResData_GoodsStock = transfer.PhysicalGoodsStockResData_GoodsStock
PhysicalOrderAfterApplyReq = transfer.PhysicalOrderAfterApplyReq
PhysicalOrderAfterApplyRes = transfer.PhysicalOrderAfterApplyRes
PhysicalOrderAfterApplyResData = transfer.PhysicalOrderAfterApplyResData
PhysicalOrderAfterReturnReq = transfer.PhysicalOrderAfterReturnReq
PhysicalOrderAfterReturnRes = transfer.PhysicalOrderAfterReturnRes
PhysicalOrderAfterReturnResData = transfer.PhysicalOrderAfterReturnResData
PhysicalOrderCloseReq = transfer.PhysicalOrderCloseReq
PhysicalOrderCloseRes = transfer.PhysicalOrderCloseRes
PhysicalOrderCloseResData = transfer.PhysicalOrderCloseResData
PhysicalOrderInfoReq = transfer.PhysicalOrderInfoReq
PhysicalOrderInfoRes = transfer.PhysicalOrderInfoRes
PhysicalOrderInfoRes_PhysicalOrderInfoResData = transfer.PhysicalOrderInfoRes_PhysicalOrderInfoResData
PhysicalOrderListReq = transfer.PhysicalOrderListReq
PhysicalOrderListRes = transfer.PhysicalOrderListRes
PhysicalOrderListResData = transfer.PhysicalOrderListResData
PhysicalOrderLogisticsLogsReq = transfer.PhysicalOrderLogisticsLogsReq
PhysicalOrderLogisticsLogsRes = transfer.PhysicalOrderLogisticsLogsRes
PhysicalOrderLogisticsLogsResData = transfer.PhysicalOrderLogisticsLogsResData
PhysicalOrderSubReq = transfer.PhysicalOrderSubReq
PhysicalOrderSubRes = transfer.PhysicalOrderSubRes
PhysicalOrderSubResData = transfer.PhysicalOrderSubResData
RsCouponGrantReq = transfer.RsCouponGrantReq
RsCouponGrantRes = transfer.RsCouponGrantRes
RsCouponGrantRes_Data = transfer.RsCouponGrantRes_Data
RsCouponGrantRes_Data_VoucherInfo = transfer.RsCouponGrantRes_Data_VoucherInfo
ZltxOrderCardQueryReq = transfer.ZltxOrderCardQueryReq
ZltxOrderCardQueryRes = transfer.ZltxOrderCardQueryRes
ZltxOrderCardReq = transfer.ZltxOrderCardReq
ZltxOrderRechargeQueryReq = transfer.ZltxOrderRechargeQueryReq
ZltxOrderRechargeQueryRes = transfer.ZltxOrderRechargeQueryRes
ZltxOrderRechargeReq = transfer.ZltxOrderRechargeReq
ZltxOrderSmsReq = transfer.ZltxOrderSmsReq
ZltxOrderSmsRes = transfer.ZltxOrderSmsRes
ZltxRechargeInfoRes = transfer.ZltxRechargeInfoRes
ZltxRechargeProductRes = transfer.ZltxRechargeProductRes
ZltxRechargeProductRes_Product = transfer.ZltxRechargeProductRes_Product
Transfer interface {
ZltxOrderRecharge(ctx context.Context, in *ZltxOrderRechargeReq, opts ...grpc.CallOption) (*DefaultRes, error)

14
go.mod
View File

@ -4,8 +4,10 @@ go 1.22.2
require (
github.com/apache/rocketmq-client-go/v2 v2.1.2
github.com/go-kratos/kratos/contrib/registry/nacos/v2 v2.0.0-20250210091908-15168b5a1b7d
github.com/jinzhu/copier v0.4.0
github.com/mitchellh/mapstructure v1.5.0
github.com/nacos-group/nacos-sdk-go v1.1.5
github.com/nacos-group/nacos-sdk-go/v2 v2.2.3
github.com/pkg/errors v0.9.1
github.com/sleepinggodoflove/lansexiongdi-marketing-sdk v0.0.14
@ -13,10 +15,10 @@ require (
github.com/streadway/amqp v1.1.0
github.com/zeromicro/go-zero v1.6.5
github.com/zeromicro/zero-contrib/zrpc/registry/nacos v0.0.0-20231030135404-af9ae855016f
go.opentelemetry.io/otel v1.19.0
go.opentelemetry.io/otel v1.24.0
go.opentelemetry.io/otel/exporters/jaeger v1.17.0
go.opentelemetry.io/otel/sdk v1.19.0
go.opentelemetry.io/otel/trace v1.19.0
go.opentelemetry.io/otel/sdk v1.24.0
go.opentelemetry.io/otel/trace v1.24.0
google.golang.org/grpc v1.67.1
google.golang.org/protobuf v1.34.2
)
@ -36,7 +38,9 @@ require (
github.com/emirpasic/gods v1.18.1 // indirect
github.com/fatih/color v1.16.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
github.com/go-logr/logr v1.3.0 // indirect
github.com/go-errors/errors v1.0.1 // indirect
github.com/go-kratos/kratos/v2 v2.8.3 // indirect
github.com/go-logr/logr v1.4.1 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
@ -88,7 +92,7 @@ require (
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 // indirect
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect
go.opentelemetry.io/otel/exporters/zipkin v1.19.0 // indirect
go.opentelemetry.io/otel/metric v1.19.0 // indirect
go.opentelemetry.io/otel/metric v1.24.0 // indirect
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/automaxprocs v1.5.3 // indirect

39
go.sum
View File

@ -751,6 +751,7 @@ github.com/alicebob/gopher-json v0.0.0-20230218143504-906a9b012302/go.mod h1:SGn
github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6uH3VlUfb/HS5zKg=
github.com/alicebob/miniredis/v2 v2.32.1 h1:Bz7CciDnYSaa0mX5xODh6GUITRSx+cVhjNoOR4JssBo=
github.com/alicebob/miniredis/v2 v2.32.1/go.mod h1:AqkLNAfUm0K07J28hnAyyQKf/x0YkCY/g5DCtuL01Mw=
github.com/aliyun/alibaba-cloud-sdk-go v1.61.18/go.mod h1:v8ESoHo4SyHmuB4b1tJqDHxfTGEciD+yhvOU/5s1Rfk=
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 h1:PpfENOj/vPfhhy9N2OFRjpue0hjM5XqAp2thFmkXXIk=
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU=
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
@ -872,6 +873,8 @@ github.com/fullstorydev/grpcurl v1.8.7/go.mod h1:pVtM4qe3CMoLaIzYS8uvTuDj2jVYmXq
github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
@ -885,6 +888,10 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-kratos/kratos/contrib/registry/nacos/v2 v2.0.0-20250210091908-15168b5a1b7d h1:po7aRrAMypX3fbkli93U4pOwYymEF5BUTGXYhk5mHJI=
github.com/go-kratos/kratos/contrib/registry/nacos/v2 v2.0.0-20250210091908-15168b5a1b7d/go.mod h1:jYFYjR7PJFJkrVLC9eV4RVYg6IU3zKvJolUYJmW4xaY=
github.com/go-kratos/kratos/v2 v2.8.3 h1:kkNBq0gvdX+b8cbaN+p6Sdh95DgMhx7GimefXb4o7Ss=
github.com/go-kratos/kratos/v2 v2.8.3/go.mod h1:+Vfe3FzF0d+BfMdajA11jT0rAyJWublRE/seZQNZVxE=
github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
@ -896,8 +903,9 @@ github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTg
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
@ -1201,6 +1209,8 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
github.com/nacos-group/nacos-sdk-go v1.1.5 h1:bAs4gi4HIV9gW9/hO8bqwTfDxwVWpqR3NkoRmq+PJME=
github.com/nacos-group/nacos-sdk-go v1.1.5/go.mod h1:cBv9wy5iObs7khOqov1ERFQrCuTR4ILpgaiaVMxEmGI=
github.com/nacos-group/nacos-sdk-go/v2 v2.2.3 h1:sUQx4f1bXDeeOOEQZjGAitzxYApbYY9fVDbxVCaBW+I=
github.com/nacos-group/nacos-sdk-go/v2 v2.2.3/go.mod h1:UL4U89WYdnyajgKJUMpuT1Rr6iNmbjrxOO40JRgtA00=
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
@ -1311,8 +1321,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/zerolog v1.28.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@ -1329,6 +1339,7 @@ github.com/sleepinggodoflove/lansexiongdi-marketing-sdk v0.0.14/go.mod h1:2tlSbX
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs=
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
@ -1421,8 +1432,8 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU=
go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs=
go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY=
go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo=
go.opentelemetry.io/otel/exporters/jaeger v1.14.0/go.mod h1:4Ay9kk5vELRrbg5z4cpP9EtmQRFap2Wb0woPG4lujZA=
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI=
@ -1442,20 +1453,21 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7g
go.opentelemetry.io/otel/exporters/zipkin v1.14.0/go.mod h1:RcjvOAcvhzcufQP8aHmzRw1gE9g/VEZufDdo2w+s4sk=
go.opentelemetry.io/otel/exporters/zipkin v1.19.0 h1:EGY0h5mGliP9o/nIkVuLI0vRiQqmsYOcbwCuotksO1o=
go.opentelemetry.io/otel/exporters/zipkin v1.19.0/go.mod h1:JQgTGJP11yi3o4GHzIWYodhPisxANdqxF1eHwDSnJrI=
go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE=
go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI=
go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco=
go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM=
go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o=
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw=
go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg=
go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8=
go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg=
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI=
go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
@ -1467,9 +1479,12 @@ go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ
go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
@ -1857,6 +1872,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@ -2240,6 +2256,7 @@ gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY=
gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI=
gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=

View File

@ -4,4 +4,4 @@ PORT="10001"
TEST_ADDRESS="registry.cn-chengdu.aliyuncs.com/go_ls/transfer_middleware"
PRODUCE_ADDRESS="registry.cn-chengdu.aliyuncs.com/go_ls/transfer_middleware_produce"
COMMIT_CONTENT="UPDATE"
VERSION="v3.0.0"
VERSION="v3.0.5"

View File

@ -3,6 +3,8 @@ package common
import (
"crypto/md5"
"encoding/hex"
"fmt"
"net"
"reflect"
"strings"
)
@ -61,3 +63,52 @@ func MergeMaps(maps ...map[string]interface{}) map[string]interface{} {
}
return merged
}
// 判断一个IP地址是否是私有局域网IP地址
func isPrivateIP(ip net.IP) bool {
privateIPBlocks := []*net.IPNet{
{IP: net.ParseIP("10.0.0.0"), Mask: net.CIDRMask(8, 32)},
{IP: net.ParseIP("172.16.0.0"), Mask: net.CIDRMask(12, 32)},
{IP: net.ParseIP("192.168.0.0"), Mask: net.CIDRMask(16, 32)},
// 如果需要IPv6私有地址可以在这里添加
}
for _, block := range privateIPBlocks {
if block.Contains(ip) {
return true
}
}
return false
}
func GetLocalIP() (string, error) {
interfaces, err := net.Interfaces()
if err != nil {
return "", err
}
for _, iface := range interfaces {
addrs, err := iface.Addrs()
if err != nil {
continue
}
for _, addr := range addrs {
var ip net.IP
switch v := addr.(type) {
case *net.IPNet:
ip = v.IP
case *net.IPAddr:
ip = v.IP
}
// 忽略IPv6地址和回环地址127.0.0.1
if ip.To4() != nil && !ip.IsLoopback() && isPrivateIP(ip) {
return ip.String(), nil
}
}
}
return "", fmt.Errorf("no local IP address found")
}

View File

@ -19,6 +19,7 @@ func GetConfig() string {
default:
dir = "local.yaml"
}
fmt.Printf("当前环境:%s", dir)
return dir
}

56
until/test/a_test.go Normal file
View File

@ -0,0 +1,56 @@
package test
import (
"context"
key2 "github.com/sleepinggodoflove/lansexiongdi-marketing-sdk/api/v1/key"
"github.com/sleepinggodoflove/lansexiongdi-marketing-sdk/core"
"testing"
)
var (
appId = "KYP4nKr53itdP8QQjMyu6pxp"
privateKey = "MIIEowIBAAKCAQEA7a2I4l8OOdW4weVFvj4u/mBqP3aZhJ0mOTKl4MCW4Pf6gNAlZa5dZYOS/BocmG872+pd10BiI73qiAWsuVaPwCL0A37lQbCXlG0fDAfCLogXuF1qVNRZgkYKrx/5Gppo2PNed7E5YyCUkMUKVPbuwuZteMZJH8d1o6Uojbb/xJQvAGOlx5Y04VZWp/6p2GjhW0srwgbpVegMyyn2Qblx1Lo+Uq5zG8um7FTpbtb/L/itpBFEDSZGIIKDfn4FPyt+jQ0SW5TDYQClSvWHK4V3RkWOVkD1nHeBpZyp7JNehK+7kBfO6G4NJabkyoWqFEiZcTy38ZWQdqJ9N4LZuY37NwIDAQABAoIBAGs2u6e5z1YBda1pehN+Q36WCXeFTW0H4qUslq0S0zy6P/L5cdUzWYggWR6FvN56Vts2Foyxy1NqKTCgtrCIPqIiYkZtaIdAXLAkpTutCEgrNeABq6SGgbYFWG51Es6QVrl+1t9RP5zaponDiIyZM00R2tH/SB8gv41JREjhAvEuNIwPyaoVVt+U/kAdhJgiMKsDpoGaMfsJk76sORu6qQqBkBN8cglN94xC0QtROytW3EY8SnZmgGZHcY3YTXM74CWM8yBg7rNuKv0982f9hKvUDHKMFYly1PzYiSgplkT7RYCMjo2FFf1lt7k7N61+4nalS/EM6324m2poisTRFAkCgYEA+3oXvtwrTim0kXG7V7w5PS8u5dU0sAAH4ACSyzy8nEdKEk4ipoaTGm6km8ko0O+9E70SwZQgK/eAnmsYf5WtMzvItweKUUVsBCm01qSHlu5vzGO3H1ndi7hg+tH9VrOQH3+odQJP9FqC4BkncMszHM4nLglWSTixTTvGIovQLy0CgYEA8fPnu0tWqhfQV6svaA5kt4h6cL52ARKlubRuYkI4hGuikKYpd2A3WuVtD1LkuPQSjwID9730HAqLc7ZMwONjQ8NANi9ZoJR6A+Vzba9zDPQmSc80Ax7Kkjc03D1Y7yiP6P8bWnhCCbRcMy+dcobvBZc2zaWzSNjZwPOSV9xaMnMCgYAclz354hg+U7mGy7JsACdV0HZ5hOrvk6FRk18dIjOjZOuD90QzQJua5rdqSs2MK6WIh/eI8KlTtlj2KeDoKIE/kO15+a59HPJx6rf3q08LFuK5DyEzvEjW6MiF27f80n9xRVdGrlOeyWeVyOZWCZQvEzUbI86eloZ57HDTXqf1pQKBgF6T6xeJgZ0Hpgc/AU75oWEk1kfQC6yrr2CCKUv7esA4mtlUOo1RbRH48MK2snWh4sdIEGj9NbjoXk6jCim0OQ85+ZW0uKJOp8tyG8baeGyt23GqrzgxBxpUvjMBQAxsnKSFZBnfPGEywX+4syEbob9btq54gTaOncAQ9jmmBxQFAoGBAIpPbq2lYwOhgoUJ2BR34xjpmNOiOAF5AVLPGTH44a+iGMJ4tbF9AvfL4xsCWK9zMi3ExaKVN0lNn0cWx2lpXxwO6B+l4L//eczmHx4h1eLJd6ZWyTj7lq+RBOOUgHLKEssZfJ11RYTZjSD7s75JZteM2OFw7BVRRNgw387A3mj6"
publicKey = "MIIBCgKCAQEA43/kRptu3Y5i/LjZhGQMaExG7+VE4MvonWpXELhxFdLAsfLA+e1XcKBzD6uHWaKo+L7CWvSBtj3LXAr++uInDnxAiPbgsnmYe8tEeZzg2IYeYPThLH84XQouuTx1pspqvU2t7ZXQPJulq5LbYJUmRR+V4d8zKhSsctLlg3AhujHnZ4LUWJXjrnt++JYi3hFai+p1knUic5rXh/35HoYbnnljGhPPe2U3xn4TWvVkeAJQpxkdS4s2AuSUg+L0M5kkHgeYAr28YQTwOm8GcCaXuLUDdNdX1/Iud9tgsLzQVP3qVdxKVNp8vRZOnKn6OjwLaTBkePVuMVgmtBTR+Gsm+QIDAQAB"
key = "f6340a2f536827e35f9f17c8dc9660e0"
baseURL = "https://gateway.dev.cdlsxd.cn"
signType = core.SignRSA
)
func newCore() (*core.Core, error) {
return core.NewCore(&core.Config{
AppID: appId,
PrivateKey: privateKey,
PublicKey: publicKey,
Key: key,
//SignType: signType,
BaseURL: baseURL,
})
}
func TestOrder(t *testing.T) {
c, err := newCore()
if err != nil {
t.Error(err)
return
}
a := &key2.Key{c}
r, err := a.Order(context.Background(), &key2.OrderRequest{
OutBizNo: "10yue00001223001",
ActivityNo: "N123456",
Number: 1,
})
if err != nil {
t.Error(err)
return
}
if !r.IsSuccess() {
t.Errorf("获取key失败:%s", r.Message)
return
}
//data, err := r.ConvertData()
//if err != nil {
// t.Error(err)
// return
//}
t.Logf("data=%+v", r)
}

125
until/until_nacos/nacos.go Normal file
View File

@ -0,0 +1,125 @@
package until_nacos
import (
"fmt"
"github.com/go-kratos/kratos/contrib/registry/nacos/v2"
"github.com/nacos-group/nacos-sdk-go/clients"
"github.com/nacos-group/nacos-sdk-go/clients/config_client"
"github.com/nacos-group/nacos-sdk-go/common/constant"
"github.com/nacos-group/nacos-sdk-go/common/logger"
"github.com/nacos-group/nacos-sdk-go/vo"
"time"
)
type Logger struct {
}
func (l Logger) Info(args ...interface{}) {
}
func (l Logger) Warn(args ...interface{}) {
}
func (l Logger) Error(args ...interface{}) {
fmt.Println("hello")
}
func (l Logger) Debug(args ...interface{}) {
}
func (l Logger) Infof(fmt string, args ...interface{}) {
}
func (l Logger) Warnf(fmt string, args ...interface{}) {
}
func (l Logger) Errorf(fmt string, args ...interface{}) {
}
func (l Logger) Debugf(fmt string, args ...interface{}) {
}
func NewDiscovery(ip string, port uint64, space string, user string, password string, log string) *nacos.Registry {
defer func() {
if err := recover(); err != nil {
fmt.Println("panic:", err)
}
}()
sc := []constant.ServerConfig{
*constant.NewServerConfig(ip, port),
}
cc := constant.ClientConfig{
NamespaceId: space,
TimeoutMs: 5000,
LogDir: "./log/" + time.Now().Format(time.DateOnly) + "/" + log,
LogLevel: "error",
CustomLogger: Logger{},
Username: user,
Password: password,
}
client, err := clients.NewNamingClient(
vo.NacosClientParam{
ServerConfigs: sc,
ClientConfig: &cc,
},
)
if err != nil {
logger.Error("nacos client err", err)
}
return nacos.New(client)
}
func NewRegistrarxxx(ip string, port uint64, opts ...constant.ClientOption) *nacos.Registry {
sc := []constant.ServerConfig{
*constant.NewServerConfig(ip, port),
}
clientOpts := append([]constant.ClientOption{
constant.WithNamespaceId("transfer"),
constant.WithTimeoutMs(5000),
constant.WithCustomLogger(Logger{}),
}, opts...)
cc := constant.NewClientConfig(clientOpts...)
client, err := clients.NewNamingClient(
vo.NacosClientParam{
ServerConfigs: sc,
ClientConfig: cc,
},
)
if err != nil {
panic(err)
}
return nacos.New(client)
}
func NewNacosConfig(ip string, port uint64, opts ...constant.ClientOption) config_client.IConfigClient {
//nacos配置中心
sc := []constant.ServerConfig{
*constant.NewServerConfig(ip, port),
}
clientOpts := append([]constant.ClientOption{
constant.WithTimeoutMs(5000),
constant.WithLogDir("./log/nacos/log/" + time.Now().Format(time.DateOnly)),
constant.WithCacheDir("./log/nacos/cache"),
constant.WithLogLevel("error"),
constant.WithCustomLogger(Logger{}),
}, opts...)
cc := constant.NewClientConfig(clientOpts...)
client, err := clients.NewConfigClient(
vo.NacosClientParam{
ClientConfig: cc,
ServerConfigs: sc,
},
)
if err != nil {
panic(err)
}
return client
}