Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hilo-userProxy
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hujiebin
hilo-userProxy
Commits
653ab059
Commit
653ab059
authored
Oct 23, 2023
by
hujiebin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Feature/consul redis
parent
3f0994f8
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
107 additions
and
497 deletions
+107
-497
config.go
common/config/config.go
+8
-462
debug.ini
debug.ini
+2
-0
go.mod
go.mod
+7
-3
go.sum
go.sum
+36
-0
local.ini
local.ini
+2
-0
main.go
main.go
+50
-32
release.ini
release.ini
+2
-0
No files found.
common/config/config.go
View file @
653ab059
...
...
@@ -34,276 +34,10 @@ type MysqlCodeConfig struct {
//redis配置
type
RedisConfig
struct
{
REDIS_HOST
string
REDIS_PASSWORD
string
}
//jwt
type
JwtConfig
struct
{
SECRET
string
ISSUER_API
string
ISSUER_MGR
string
EXPIRE
string
}
//oss
type
OssConfig
struct
{
OSS_ACCESS_KEY_ID
string
OSS_ACCESS_KEY_SECRET
string
OSS_ROLE_ARN
string
OSS_END_POINT
string
OSS_BUCKET
string
OSS_CDN
string
OSS_EXPIRED_TIME
uint
OSS_STS_POINT
string
OSS_STS
string
OSS_STS_AES
string
}
// aws
type
AwsConfig
struct
{
AWS_BUCKET
string
AWS_CDN
string
AWS_DIR
string
CONFIDENCE
float32
}
//APP
type
AppConfig
struct
{
BIZ_SECRET
string
WEB_SECRET
string
OPERATION_SECRET
string
SUPERUSER
string
OFFICIAL_GROUP
string
MINIMAL_VERSION_ANDROID
int
MINIMAL_VERSION_IOS
int
MODERATE
string
}
//googlePay 配置信息
type
GooglePayConfig
struct
{
JsonKey
[]
byte
}
//融云
type
RongyunConfig
struct
{
RONG_CLOUD_APP_KEY
string
RONG_CLOUD_APP_SECRET
string
RONG_CLOUD_URL
string
}
//腾讯云
type
TencentyunConfig
struct
{
TENCENTYUN_APP_ID
int
TENCENTYUN_KEY
string
TX_OVERSEA_APP_ID
int
TX_OVERSEA_KEY
string
}
//emas
type
EmasConfig
struct
{
ANDROID_APP_KEY
string
ANDROID_APP_SECRET
string
REGION_ID
string
ACCESS_KEY_ID
string
ACCESS_KEY_SECRET
string
IOS_APP_KEY
string
IOS_APP_SECRET
string
APNS
string
}
//声网
type
AgoraConfig
struct
{
APP_ID
string
APP_CERTIFICATE
string
CUSTOMER_KEY
string
CUSTOMER_SECRET
string
}
//匹配的配置
type
MatchConfig
struct
{
//一开始匹配的默认时长(单位:秒)
MATCH_FREE_TIME
int
//一开始匹配的默认时长(单位:秒)VIP
MATCH_FREE_TIME_VIP
int
//免费加时的时长 (单位:秒)
MATCH_ADD_TIME_FREE
int
//匹配的声网的延迟加时(单位:秒)
MATCH_AGORA_TIME
int
//匹配周期(单位:秒)
MATCH_CYCLE
int
//过期时间(单位:秒),用户redisCache时间
MATCH_USER_EXPIRES
int
//pb match_success中, wait_duration 开始/下一个时间(单位:秒)
MATCH_SUCCESS_WAIT_DURATION
uint32
//pb match_success中, single_wait_time_in_sec 单方等待连接最长时间(单位:秒)
MATCH_SUCCESS_SINGLE_WAIT_TIME_IN_SEC
uint32
//pb match_success中, dual_wait_time_in_sec 双方连接中最长时间(单位:秒)
MATCH_SUCCESS_DUAL_WAIT_TIME_IN_SEC
uint32
}
//在线
type
OnlineConfig
struct
{
//在线周期
ONLINE_CYCLE
int
//在线过期时间
ONLINE_USER_EXPIRES
int
}
//1对1视频
type
VideoConfig
struct
{
VIDEO_DAILY_FREE_NUM
int
//一开始匹配的默认时长(单位:秒)
VIDEO_FREE_TIME
int
//一开始匹配的默认时长(单位:秒),vip
VIDEO_FREE_TIME_VIP
int
//免费加时的时长 (单位:秒)
VIDEO_ADD_TIME_FREE
int
//声网的延迟加时(单位:秒)
VIDEO_AGORA_TIME
int
//1分钟视频,普通用户价格
VIDEO_MINUTE_NORMAL
int
//1分钟视频,公会用户价格
VIDEO_MINUTE_UNION
int
}
//会话
type
SessionConfig
struct
{
SESSION_DAILY_FREE_NUM
int
GUILD_USER_HELLO_DAY
int
}
type
BeanConfig
struct
{
DIAMOND_BEAN_RATE
int
}
type
H5Config
struct
{
USER_LEVEL
string
GROUP_SUPPORT
string
LUCKY_WHEEL
string
WEEKLY_STAR
string
WEEKLY_CP
string
COUNTRY_STAR
string
NOBLE_BUY_IOS
string
NOBLE_BUY_IOS_AUDIT
string
GUILD_DATA_URL
string
MGR_GUILD_DATA_URL
string
RANKING_PINK_DIAMOND_URL
string
GROUP_POWER_GRADE_URL
string
GROUP_POWER_ACT_URL
string
SHEEP_H5_URL
string
}
type
GroupImConfig
struct
{
MSG_SORT_EXPIRE
int
MSG_SORT_SNAP
int
MSG_PARALLEL_SIZE
int
}
type
GradeConfig
struct
{
//魅力速度
CHARM_SPEED_VIP
int
//活跃
ACTITY_SPEED_VIP
int
//财富
WEALTH_SPEED_VIP
int
}
type
LikeConfig
struct
{
//喜欢人数
I_LIKE_NUM
int
//喜欢人数VIP
I_LIKE_NUM_VIP
int
//喜欢人数贵族
I_LIKE_NUM_NOBLE
int
}
type
ApplePayConfig
struct
{
PASSWORD
string
}
type
RegisterConfig
struct
{
IMEI_TOTAL
int
IMEI_OAUTH
int
ACCOUNT_IP
int
ACCOUNT_IP_DURATION
int
}
type
BannerConfig
struct
{
GIFT_BANNER_LEVEL1
int
GIFT_BANNER_LEVEL2
int
GIFT_BANNER_LEVEL3
int
}
type
DiamondConfig
struct
{
DAILY_LOGIN_IMEI_LIMIT
int
DAILY_LOGIN_IP_LIMIT
int
PRIVATE_GIFT_RETURN
int
NEW_USER_INVITE_AWARD
uint32
}
type
LuckWheelConfig
struct
{
MINIMAL_PARTICIPANT
int
// 轮盘开始最少需要的参与人数
WAIT_TIMELONG
int
// 等待轮盘开始的时长(分钟)
WINNER_DIAMOND_BANNER
int
//全服广播钻石门槛
}
//自定义主题
type
GroupCustomThemeConfig
struct
{
PIC_LIMIT
int
//图片数量
DAY
int
//有效天数
}
type
GiftConfig
struct
{
WALL_DIAMOND
int
//上礼物墙,礼物钻石金额
}
type
DailyConfig
struct
{
LOGIN_COMMON
int
LOGIN_VIP
int
}
type
FruitTycoonConfig
struct
{
BIG_WINNER_THRESDHOLD
uint
BIG_WINNER_LOW
uint
BIG_WINNER_HIGH
uint
POOL_RATIO
uint32
WATERMELON_RATIO
uint32
}
type
ActivityConfig
struct
{
COUNTRY_STAR_POOL_RATIO
uint32
COUNTRY_STAR_ORDINARY_RATIO
uint32
}
type
CheckoutConfig
struct
{
URL
string
AUTHORIZATION
string
H5
string
HILO_SECRET_KEY
string
}
type
RiskControlConfig
struct
{
USER_QPS_LIMIT
int64
USER_URL_QPS_LIMIT
int64
}
type
PayerMaxConfig
struct
{
URL
string
KEY
string
MERCHANT_ID
string
BIZ_TYPE
string
VERSION
string
FRONT_CALLBACK_URL
string
SHOW_RESULT
string
EXPIRE_TIME
string
LANGUAGE
string
}
type
PaypalConfig
struct
{
PAYPAL_CLIENT_ID
string
PAYPAL_SECRET_ID
string
RETURN_URL
string
REDIS_HOST
string
REDIS_PASSWORD
string
REDIS_CLUSTER_HOST
string
REDIS_CLUSTER_PASSWORD
string
}
const
(
...
...
@@ -315,41 +49,13 @@ const (
var
mysqlConfigData
MysqlConfig
var
mysqlCodeConfigData
MysqlCodeConfig
var
redisConfigData
RedisConfig
var
jwtConfigData
JwtConfig
var
appConfigData
AppConfig
var
ossConfigData
OssConfig
var
awsConfigData
AwsConfig
var
googlePayData
GooglePayConfig
var
rongyunData
RongyunConfig
var
tencentyunData
TencentyunConfig
var
emasData
EmasConfig
var
agora
AgoraConfig
var
matchData
MatchConfig
var
onlineData
OnlineConfig
var
sessionData
SessionConfig
var
videoData
VideoConfig
var
beanData
BeanConfig
var
h5Data
H5Config
var
groupImData
GroupImConfig
var
gradeData
GradeConfig
var
likeData
LikeConfig
var
applePayData
ApplePayConfig
var
registerData
RegisterConfig
var
bannerConfig
BannerConfig
var
diamondConfig
DiamondConfig
var
luckyWheelConfig
LuckWheelConfig
var
groupCustomThemeConfig
GroupCustomThemeConfig
var
giftConfig
GiftConfig
var
dailyConfig
DailyConfig
var
fruitTycoonConfig
FruitTycoonConfig
var
activityConfig
ActivityConfig
var
checkoutConfig
CheckoutConfig
var
riskControl
RiskControlConfig
var
payerMaxConfig
PayerMaxConfig
var
paypalConfig
PaypalConfig
var
mode
string
var
master
bool
func
GetConfigRedis
()
RedisConfig
{
return
redisConfigData
}
func
init
()
{
str
,
_
:=
os
.
Getwd
()
logrus
.
New
()
.
Info
(
str
)
...
...
@@ -390,164 +96,4 @@ func init() {
if
err
:=
conf
.
Section
(
"REDIS"
)
.
MapTo
(
&
redisConfigData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"JWT"
)
.
MapTo
(
&
jwtConfigData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"APP"
)
.
MapTo
(
&
appConfigData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
else
{
logrus
.
New
()
.
Infof
(
"APP: %+v"
,
appConfigData
)
}
if
err
:=
conf
.
Section
(
"OSS"
)
.
MapTo
(
&
ossConfigData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"AWS"
)
.
MapTo
(
&
awsConfigData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
else
{
if
awsConfigData
.
CONFIDENCE
<=
50
{
awsConfigData
.
CONFIDENCE
=
80
}
logrus
.
New
()
.
Infof
(
"AWS: %+v"
,
awsConfigData
)
}
if
err
:=
conf
.
Section
(
"RONGYUN"
)
.
MapTo
(
&
rongyunData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"TENCENTYUN"
)
.
MapTo
(
&
tencentyunData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
else
{
logrus
.
New
()
.
Info
(
"TENCENTYUN: "
,
tencentyunData
)
}
if
err
:=
conf
.
Section
(
"EMAS"
)
.
MapTo
(
&
emasData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"AGORA"
)
.
MapTo
(
&
agora
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"MATCH"
)
.
MapTo
(
&
matchData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"ONLINE"
)
.
MapTo
(
&
onlineData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"SESSION"
)
.
MapTo
(
&
sessionData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"VIDEO"
)
.
MapTo
(
&
videoData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"BEAN"
)
.
MapTo
(
&
beanData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"H5"
)
.
MapTo
(
&
h5Data
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"GROUPIM"
)
.
MapTo
(
&
groupImData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"GRADE"
)
.
MapTo
(
&
gradeData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"LIKE"
)
.
MapTo
(
&
likeData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"APPLEPAY"
)
.
MapTo
(
&
applePayData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"REGISTER"
)
.
MapTo
(
&
registerData
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"BANNER"
)
.
MapTo
(
&
bannerConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"DIAMOND"
)
.
MapTo
(
&
diamondConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
else
{
if
diamondConfig
.
NEW_USER_INVITE_AWARD
<=
0
{
diamondConfig
.
NEW_USER_INVITE_AWARD
=
5000
}
}
if
err
:=
conf
.
Section
(
"LUCKY_WHEEL"
)
.
MapTo
(
&
luckyWheelConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"GROUP_CUSTOM_THEME"
)
.
MapTo
(
&
groupCustomThemeConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"GIFT"
)
.
MapTo
(
&
giftConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"DAILY"
)
.
MapTo
(
&
dailyConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"CHECKOUT"
)
.
MapTo
(
&
checkoutConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"PAYER_MAX"
)
.
MapTo
(
&
payerMaxConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"PAYPAL"
)
.
MapTo
(
&
paypalConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
if
err
:=
conf
.
Section
(
"FRUIT_TYCOON"
)
.
MapTo
(
&
fruitTycoonConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
else
{
// 防止未配置或配置错误
if
fruitTycoonConfig
.
BIG_WINNER_LOW
<=
0
{
fruitTycoonConfig
.
BIG_WINNER_LOW
=
10000
}
if
fruitTycoonConfig
.
BIG_WINNER_HIGH
<=
0
{
fruitTycoonConfig
.
BIG_WINNER_HIGH
=
20000
}
if
fruitTycoonConfig
.
POOL_RATIO
<=
0
||
fruitTycoonConfig
.
POOL_RATIO
>
100
{
fruitTycoonConfig
.
POOL_RATIO
=
20
}
if
fruitTycoonConfig
.
WATERMELON_RATIO
<=
0
||
fruitTycoonConfig
.
WATERMELON_RATIO
>
100
{
fruitTycoonConfig
.
WATERMELON_RATIO
=
70
}
logrus
.
New
()
.
Infof
(
"FRUIT_TYCOON: %+v"
,
fruitTycoonConfig
)
}
if
err
:=
conf
.
Section
(
"ACTIVITY"
)
.
MapTo
(
&
activityConfig
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
else
{
// 防止未配置或配置错误
if
activityConfig
.
COUNTRY_STAR_POOL_RATIO
<=
0
{
activityConfig
.
COUNTRY_STAR_POOL_RATIO
=
20
}
if
activityConfig
.
COUNTRY_STAR_ORDINARY_RATIO
<=
0
{
activityConfig
.
COUNTRY_STAR_ORDINARY_RATIO
=
20
}
logrus
.
New
()
.
Infof
(
"ACTIVITY: %+v"
,
activityConfig
)
}
if
err
:=
conf
.
Section
(
"RISK_CONTROL"
)
.
MapTo
(
&
riskControl
);
err
!=
nil
{
logrus
.
New
()
.
Fatal
(
err
)
}
else
{
if
riskControl
.
USER_QPS_LIMIT
<=
0
{
riskControl
.
USER_QPS_LIMIT
=
128
}
if
riskControl
.
USER_URL_QPS_LIMIT
<=
0
{
riskControl
.
USER_URL_QPS_LIMIT
=
64
}
logrus
.
New
()
.
Infof
(
"RISK_CONTROL: %+v"
,
riskControl
)
}
}
debug.ini
View file @
653ab059
...
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
[REDIS]
REDIS_HOST
=
47.244.34.27:6379
REDIS_PASSWORD
=
8QZ9JD1zLvPR3yHf
REDIS_CLUSTER_HOST
=
47.244.34.27:6379
REDIS_CLUSTER_PASSWORD
=
8QZ9JD1zLvPR3yHf
[JWT]
SECRET
=
hilo1632
ISSUER_API
=
hiloApi
...
...
go.mod
View file @
653ab059
...
...
@@ -4,7 +4,10 @@ go 1.17
require (
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da // indirect
github.com/cespare/xxhash/v2 v2.1.1 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/fatih/color v1.9.0 // indirect
github.com/go-redis/redis/v8 v8.3.3 // indirect
github.com/golang/protobuf v1.4.3 // indirect
github.com/gorilla/websocket v1.4.2 // indirect
github.com/hashicorp/consul/api v1.7.0 // indirect
...
...
@@ -25,9 +28,10 @@ require (
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 // indirect
github.com/satori/go.uuid v1.2.0 // indirect
github.com/sirupsen/logrus v1.7.0 // indirect
golang.org/x/net v0.0.0-20200822124328-c89045814202 // indirect
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd // indirect
golang.org/x/text v0.3.2 // indirect
go.opentelemetry.io/otel v0.13.0 // indirect
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 // indirect
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f // indirect
golang.org/x/text v0.3.3 // indirect
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect
google.golang.org/grpc v1.42.0 // indirect
google.golang.org/protobuf v1.25.0 // indirect
...
...
go.sum
View file @
653ab059
...
...
@@ -9,6 +9,7 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
...
...
@@ -19,6 +20,8 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWH
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
...
...
@@ -28,7 +31,11 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-redis/redis/v8 v8.3.3 h1:e0CL9fsFDK92pkIJH2XAeS/NwO2VuIOAoJvI6yktZFk=
github.com/go-redis/redis/v8 v8.3.3/go.mod h1:jszGxBCez8QA1HWSmQxJO9Y82kNibbUmeYhKWrBejTU=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
...
...
@@ -49,6 +56,7 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
...
...
@@ -79,6 +87,7 @@ github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg
github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
github.com/hashicorp/serf v0.9.3 h1:AVF6JDQQens6nMHT9OGERBvK0f8rPrAGILnsKLr6lzM=
github.com/hashicorp/serf v0.9.3/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
...
...
@@ -108,6 +117,13 @@ github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eI
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
...
...
@@ -130,7 +146,10 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
go.opentelemetry.io/otel v0.13.0 h1:2isEnyzjjJZq6r2EKMsFj4TxiQiexsM04AVhwbR/oBA=
go.opentelemetry.io/otel v0.13.0/go.mod h1:dlSNewoRYikTkotEnxdmuBHgzT+k/idJSfDv/FxEnOY=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
...
...
@@ -142,6 +161,7 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
...
...
@@ -149,8 +169,11 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA=
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
...
...
@@ -159,23 +182,32 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
...
...
@@ -212,11 +244,15 @@ google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c=
gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
local.ini
View file @
653ab059
...
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
[REDIS]
REDIS_HOST
=
47.244.34.27:6379
REDIS_PASSWORD
=
8QZ9JD1zLvPR3yHf
REDIS_CLUSTER_HOST
=
47.244.34.27:6379
REDIS_CLUSTER_PASSWORD
=
8QZ9JD1zLvPR3yHf
[JWT]
SECRET
=
hilo1632
ISSUER_API
=
hiloApi
...
...
main.go
View file @
653ab059
...
...
@@ -4,8 +4,9 @@ import (
"context"
"flag"
"fmt"
"github.com/go-redis/redis/v8"
"hilo-userProxy/common"
"hilo-userProxy/common/con
sul
"
"hilo-userProxy/common/con
fig
"
"net"
"net/http"
_
"net/http/pprof"
...
...
@@ -22,7 +23,6 @@ import (
"github.com/golang/protobuf/proto"
"github.com/gorilla/websocket"
consulapi
"github.com/hashicorp/consul/api"
uuid
"github.com/satori/go.uuid"
log
"github.com/sirupsen/logrus"
"google.golang.org/grpc"
...
...
@@ -85,6 +85,7 @@ func getShortToken(token string) string {
return
s
[
len
(
s
)
-
1
]
}
}
func
serverWebsocket
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
ws
,
err
:=
upgrader
.
Upgrade
(
w
,
r
,
nil
)
if
err
!=
nil
{
...
...
@@ -744,48 +745,65 @@ var listenPort = flag.String("port", "8081", "listen port")
func
main
()
{
flag
.
Parse
()
client
,
err
:=
consulapi
.
NewClient
(
consulapi
.
DefaultConfig
())
//非默认情况下需要设置实际的参数
if
client
==
nil
{
mylogrus
.
MyLog
.
Fatalln
(
"Fail to get consul client."
)
}
// init redis cluster
rdbCluster
:=
redis
.
NewClient
(
&
redis
.
Options
{
Addr
:
config
.
GetConfigRedis
()
.
REDIS_CLUSTER_HOST
,
Password
:
config
.
GetConfigRedis
()
.
REDIS_CLUSTER_PASSWORD
,
})
myIp
,
myNodeName
:=
consul
.
GetAgentInfo
(
client
)
myLocalIp
,
err
:=
common
.
GetClientIpV2
()
if
err
!=
nil
{
mylogrus
.
MyLog
.
Fatal
(
err
)
}
mylogrus
.
MyLog
.
Infof
(
"myIp is %s, myNodeName: %s, localIp is %s"
,
myIp
,
myNodeName
,
myLocalIp
)
cataLog
:=
client
.
Catalog
()
if
cataLog
==
nil
{
mylogrus
.
MyLog
.
Fatalln
(
"No catalog."
)
}
services
,
_
,
err
:=
cataLog
.
Service
(
userCenterConsulName
,
""
,
nil
)
if
err
!=
nil
{
mylogrus
.
MyLog
.
Fatalln
(
err
)
}
if
len
(
services
)
==
0
{
mylogrus
.
MyLog
.
Fatalln
(
"userCenter not found."
)
}
var
addrs
[]
string
bd
:=
&
Builder
{
addrs
:
map
[
string
][]
string
{
"/api"
:
{
userCenterAddr
}}}
for
_
,
s
:=
range
services
{
addrs
=
append
(
addrs
,
fmt
.
Sprintf
(
"%s:%d"
,
s
.
ServiceAddress
,
s
.
ServicePort
))
}
if
len
(
addrs
)
>
0
{
bd
=
&
Builder
{
addrs
:
map
[
string
][]
string
{
"/api"
:
addrs
}}
userCenterAddr
=
"uc:///api"
if
rdbCluster
!=
nil
{
redisKey
:=
fmt
.
Sprintf
(
"service:userCenter"
)
ipPorts
,
err
:=
rdbCluster
.
ZRangeByScore
(
context
.
Background
(),
redisKey
,
&
redis
.
ZRangeBy
{
Min
:
fmt
.
Sprintf
(
"%d"
,
time
.
Now
()
.
Add
(
-
time
.
Second
*
15
)
.
Unix
()),
// 3倍心跳
Max
:
"+inf"
,
})
.
Result
()
if
err
!=
nil
{
failMsg
:=
fmt
.
Sprintf
(
"get service fail,svc:%v,err:%v"
,
"userCenter"
,
err
)
mylogrus
.
MyLog
.
Errorf
(
failMsg
)
}
else
if
len
(
ipPorts
)
>
0
{
bd
=
&
Builder
{
addrs
:
map
[
string
][]
string
{
"/api"
:
ipPorts
}}
userCenterAddr
=
"uc:///api"
mylogrus
.
MyLog
.
Infof
(
"userCenterAddr:%v,addr:%v"
,
userCenterAddr
,
ipPorts
)
}
}
mylogrus
.
MyLog
.
Infof
(
"userCenterAddr:%v,addr:%v"
,
userCenterAddr
,
addrs
)
// 服务发现
resolver
.
Register
(
bd
)
go
func
()
{
consul
.
RegisterWatcher
(
userCenterConsulName
,
func
(
addr
[]
string
)
{
if
len
(
addr
)
>
0
{
bd
.
UpdateState
(
addr
)
// 更新新的注册名
//consul.RegisterWatcher(userCenterConsulName, func(addr []string) {
// if len(addr) > 0 {
// bd.UpdateState(addr) // 更新新的注册名
// }
//})
ticker
:=
time
.
NewTicker
(
time
.
Minute
)
defer
ticker
.
Stop
()
for
{
select
{
case
<-
ticker
.
C
:
redisKey
:=
fmt
.
Sprintf
(
"service:userCenter"
)
ipPorts
,
err
:=
rdbCluster
.
ZRangeByScore
(
context
.
Background
(),
redisKey
,
&
redis
.
ZRangeBy
{
Min
:
fmt
.
Sprintf
(
"%d"
,
time
.
Now
()
.
Add
(
-
time
.
Second
*
15
)
.
Unix
()),
// 3倍心跳
Max
:
"+inf"
,
})
.
Result
()
if
err
!=
nil
{
failMsg
:=
fmt
.
Sprintf
(
"get service fail,svc:%v,err:%v"
,
"userCenter"
,
err
)
mylogrus
.
MyLog
.
Errorf
(
failMsg
)
break
}
if
len
(
ipPorts
)
<=
0
{
failMsg
:=
fmt
.
Sprintf
(
"get service empty,svc:%v,err:%v"
,
"userCenter"
,
err
)
mylogrus
.
MyLog
.
Errorf
(
failMsg
)
break
}
else
{
bd
.
UpdateState
(
ipPorts
)
// 更新新的注册名
}
}
}
)
}
}()
// Set up a connection to the userCenter.
...
...
release.ini
View file @
653ab059
...
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
[REDIS]
REDIS_HOST
=
r-eb3btxn8vfdsuwdbuf.redis.dubai.rds.aliyuncs.com:6379
REDIS_PASSWORD
=
REDIS_CLUSTER_HOST
=
r-eb3yt6k8zgxs62kjjs.redis.dubai.rds.aliyuncs.com:6379
REDIS_CLUSTER_PASSWORD
=
[JWT]
SECRET
=
hilo1504
ISSUER_API
=
hiloApi
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment