善于解决生产中遇到的问题,
偏爱设计开发优雅的程序结构,
习惯于用自动化技术简化研发过程,
自我肯定于在服务7*24无故障运行和团队高效协作。
自2002年毕业以来,我持续投身于Java系统的设计和开发工作,累积了20年的丰富经验。在这段时间中,我在一家初创公司服务了16年,期间主导设计并开发了一款创新的分布式应用开发框架(Distributed Application Framework),该框架在过去10年中成功应用于生产环境。它在团队职责分配、降低开发门槛、规范代码编写、提升工作效率、定位故障与瓶颈、以及保证系统无故障运行方面均展现出色的性能。此外,我还积极涉猎服务部署、数据库运维、需求与产品设计等领域,横跨从前端(使用Thymeleaf)到后端的全栈开发,并在从客户端(Android)到服务器端的多方位工作中积累了宝贵经验。
它是我设计开发的一个分布式应用开发和运行框架,具备负载均衡、远程配置、调用栈Tracking、模块维度和接口维度调用频度和响应时间分析、 Host维度硬件信息收集、外部接口网关等功能和特性。已通过十年的生产环境验证,并在生产中不断升级进化。
code: "NA"
responseTimeStack {
ngLabel: "SafeboxNG"
ngVersion: "0.0.1"
ip: "10.140.0.5"
port: 8000
action: "DecryptCipher"
actVersion: "0.0.1"
time: 829
children {
ngLabel: "EncrypterNG"
ngVersion: "0.0.1"
ip: "10.140.0.5"
port: 8004
action: "Decrypt"
actVersion: "0.0.1"
time: 811
}
}
body {
type_url: "type.googleapis.com/DecryptCipherResponse"
value: "hello world"
}
nodeGroups {
ngLabel: "EncrypterNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.5"
port: 8003
ngLabel: "EncrypterNG"
ngVersion: "0.0.1"
recordTime: 1657681211312
nodeStatus {
collectTime: 1657681211312
nodeStatus: ON
interfaceStatus {
action: "Decrypt"
actVersion: "0.0.1"
}
interfaceStatus {
action: "Encrypt"
actVersion: "0.0.1"
}
}
pid: "29699"
}
}
nodeGroups {
ngLabel: "BawsNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.4"
port: 8002
ngLabel: "BawsNG"
ngVersion: "0.0.1"
recordTime: 1657681214189
nodeStatus {
collectTime: 1657681214189
nodeStatus: READY
}
pid: "19754"
}
}
nodeGroups {
ngLabel: "TransactionPullNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.4"
port: 8008
ngLabel: "TransactionPullNG"
ngVersion: "0.0.1"
recordTime: 1657681216397
nodeStatus {
collectTime: 1657681216397
nodeStatus: ON
interfaceStatus {
action: "PullLosData"
actVersion: "0.0.1"
}
interfaceStatus {
action: "PullCandleData"
actVersion: "0.0.1"
avaiCostsPerMin: 2
avaiHitsPerMin: 114
}
interfaceStatus {
action: "PullOrder"
actVersion: "0.0.1"
}
interfaceStatus {
action: "PullExcCurrencyData"
actVersion: "0.0.1"
avaiHitsPerMin: 6
}
}
pid: "4807"
}
}
nodeGroups {
ngLabel: "AssetAdminNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.2"
port: 8001
ngLabel: "AssetAdminNG"
ngVersion: "0.0.1"
recordTime: 1657681211031
nodeStatus {
collectTime: 1657681211031
nodeStatus: ON
interfaceStatus {
action: "NewIssueTask"
actVersion: "0.0.1"
}
}
pid: "18006"
}
}
nodeGroups {
ngLabel: "SafeboxNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.5"
port: 8002
ngLabel: "SafeboxNG"
ngVersion: "0.0.1"
recordTime: 1657681212709
nodeStatus {
collectTime: 1657681212709
nodeStatus: ON
interfaceStatus {
action: "CipherAck"
actVersion: "0.0.1"
}
interfaceStatus {
action: "DecryptCipher"
actVersion: "0.0.1"
}
interfaceStatus {
action: "GetUser"
actVersion: "0.0.1"
}
interfaceStatus {
action: "GetCipher"
actVersion: "0.0.1"
}
interfaceStatus {
action: "SendCode"
actVersion: "0.0.1"
}
interfaceStatus {
action: "SaveData"
actVersion: "0.0.1"
}
interfaceStatus {
action: "ClearCipher"
actVersion: "0.0.1"
}
interfaceStatus {
action: "FaceRecognize"
actVersion: "0.0.1"
}
interfaceStatus {
action: "VerifyCode"
actVersion: "0.0.1"
}
}
pid: "3906"
}
}
nodeGroups {
ngLabel: "SmsNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.4"
port: 8001
ngLabel: "SmsNG"
ngVersion: "0.0.1"
recordTime: 1657681214953
nodeStatus {
collectTime: 1657681214953
nodeStatus: ON
interfaceStatus {
action: "SendConfirmCodeToUser"
actVersion: "0.0.1"
}
interfaceStatus {
action: "SendSmsToUser"
actVersion: "0.0.1"
}
}
pid: "9484"
}
}
nodeGroups {
ngLabel: "NoticeTgNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.4"
port: 8004
ngLabel: "NoticeTgNG"
ngVersion: "0.0.1"
recordTime: 1657681208149
nodeStatus {
collectTime: 1657681208149
nodeStatus: ON
interfaceStatus {
action: "SendMessage"
actVersion: "0.0.1"
}
}
pid: "9917"
}
}
nodeGroups {
ngLabel: "ADMIN"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.4"
port: 8000
ngLabel: "ADMIN"
ngVersion: "0.0.1"
recordTime: 1657681211699
nodeStatus {
collectTime: 1657681211699
nodeStatus: ON
interfaceStatus {
action: "getcfg"
actVersion: "0.0.1"
}
interfaceStatus {
action: "getport"
actVersion: "0.0.1"
}
interfaceStatus {
action: "whereis"
actVersion: "0.0.1"
avaiHitsPerMin: 156
}
interfaceStatus {
action: "ping"
actVersion: "0.0.1"
avaiHitsPerMin: 84
}
}
pid: "30149"
}
}
nodeGroups {
ngLabel: "RobotNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.2"
port: 8000
ngLabel: "RobotNG"
ngVersion: "0.0.1"
recordTime: 1657681209355
nodeStatus {
collectTime: 1657681209355
nodeStatus: ON
interfaceStatus {
action: "QueryDnhRecord"
actVersion: "0.0.1"
avaiCostsPerMin: 12
avaiHitsPerMin: 6
}
interfaceStatus {
action: "MarketData"
actVersion: "0.0.1"
avaiHitsPerMin: 57336
}
}
pid: "27885"
}
}
nodeGroups {
ngLabel: "ChartsNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.2"
port: 8004
ngLabel: "ChartsNG"
ngVersion: "0.0.1"
recordTime: 1657681208659
nodeStatus {
collectTime: 1657681208659
nodeStatus: ON
interfaceStatus {
action: "PetLosList"
actVersion: "0.0.1"
}
interfaceStatus {
action: "MarketDataRec"
actVersion: "0.0.1"
avaiHitsPerMin: 52314
}
interfaceStatus {
action: "CandleList"
actVersion: "0.0.1"
}
interfaceStatus {
action: "ExcCurrencyRec"
actVersion: "0.0.1"
avaiCostsPerMin: 3
avaiHitsPerMin: 36
}
interfaceStatus {
action: "SubscribeCharts"
actVersion: "0.0.1"
}
}
pid: "26285"
}
}
nodeGroups {
ngLabel: "TransAgentNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.2"
port: 8009
ngLabel: "TransAgentNG"
ngVersion: "0.0.1"
recordTime: 1657681214709
nodeStatus {
collectTime: 1657681214708
nodeStatus: ON
interfaceStatus {
action: "NewTransaction"
actVersion: "0.0.1"
}
interfaceStatus {
action: "QueryNeedSignTransaction"
actVersion: "0.0.1"
}
interfaceStatus {
action: "QueryTransaction"
actVersion: "0.0.1"
}
interfaceStatus {
action: "SignTransaction"
actVersion: "0.0.1"
}
}
pid: "19128"
}
}
nodeGroups {
ngLabel: "KeyStoreNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.5"
port: 8007
ngLabel: "KeyStoreNG"
ngVersion: "0.0.1"
recordTime: 1657681210971
nodeStatus {
collectTime: 1657681210971
nodeStatus: ON
interfaceStatus {
action: "SysPreSetSymmetricKey"
actVersion: "0.0.1"
}
interfaceStatus {
action: "GetAccountIdByCode"
actVersion: "0.0.1"
}
interfaceStatus {
action: "GetSignature"
actVersion: "0.0.1"
avaiHitsPerMin: 12
}
interfaceStatus {
action: "SysSetSymmetricKey"
actVersion: "0.0.1"
}
}
pid: "1473"
}
}
nodeGroups {
ngLabel: "IbConnectorNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.5"
port: 8001
ngLabel: "IbConnectorNG"
ngVersion: "0.0.1"
recordTime: 1657681207934
nodeStatus {
collectTime: 1657681207933
nodeStatus: ON
interfaceStatus {
action: "OrderStatus"
actVersion: "0.0.1"
}
interfaceStatus {
action: "MarketData"
actVersion: "0.0.1"
avaiHitsPerMin: 222
}
interfaceStatus {
action: "SubscribeData"
actVersion: "0.0.1"
}
interfaceStatus {
action: "GetOrder"
actVersion: "0.0.1"
}
interfaceStatus {
action: "IsMarketOpen"
actVersion: "0.0.1"
avaiHitsPerMin: 6
}
interfaceStatus {
action: "OpenOrder"
actVersion: "0.0.1"
}
}
pid: "24031"
}
}
nodeGroups {
ngLabel: "HttpProxyNG"
ngVersion: "0.0.1"
nodes {
ip: "10.140.0.4"
port: -1
ngLabel: "HttpProxyNG"
ngVersion: "0.0.1"
recordTime: 1657681216374
nodeStatus {
collectTime: 1657681216374
nodeStatus: READY
}
pid: "23553"
}
}
}
node_encrypter.xml
...
<xwork>
<include file="xwork-default.xml"/>
<package name="Encrypt" namespace="Encrypt">
<action name="0.0.1" class="org.barsf.encrypter.action.EncryptAction">
</action>
</package>
<package name="Decrypt" namespace="Decrypt">
<action name="0.0.1" class="org.barsf.encrypter.action.DecryptAction">
</action>
</package>
</xwork>
encrypter_cm_core.proto
...
// 加密
message EncryptRequest {
bytes data = 1; // 明文
bytes key = 2; // 密钥
}
message EncryptResponse {
bytes encryptedData = 1; // 加密后的密文
}
// 解密
message DecryptRequest {
bytes encryptedData = 1; // 密文
bytes key = 2; // 密钥
}
message DecryptResponse{
bytes data = 1; // 解密后的明文
}


由于我自己的失误,导致之前的求职简历文档丢失,以往相对短期的工作经历时间段已经模糊,下面列举的时间段不准确可能与真实情况有月级别的误差,但工作单位和内容无误。