LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > 技术文章——娄底政务数据曲折上链路

技术文章——娄底政务数据曲折上链路

2020-03-25 德方智链 来源:火星财经

2020年1月,德方智链与娄底市合作的“链企银——城市金融综合服务平台”正式上线,平台利用区块链、大数据和人工智能等先进技术,建立覆盖银行、政府和企业等全方位海量可信数据,改变传统的以抵押担保为主的放贷模式,解决中小企业融资难融资贵的问题。

“链企银”平台的搭建历时半年之久,期间也遇到过各种难题,其中平台搭建之后与娄底市政府之间的数据信息上链尤为关键,今天就和大家分享下关于“链企银”平台政务数据打通的曲折上链的全过程!

三天时间,如何快速开发部署政务数据、圆满上链?链企银小组成员接受挑战!

从拿到完整需求到完成开发和部署,仅有三天时间,链企银团队在接到这项艰巨的任务后,快速调配资源,组成特别行动小组,小组成员包括前端和后端工程师、区块链技术专家、环境部署和运维人员组成。大家分工明确,快速进入部署状态,加班加点设计方案、开发联调,虽然在开发过程中遇到了一些小挑战(比如:发现POI在高达26万行数据的xlsx大文件的数据解析时,解析时长会延长到半个小时,且可能会发生内存不足的问题。但后续了解到政务数据实际是已xls文件提供,xls文件的行数上限是65536,因此暂时无需考虑数据量过大导致解析失败的问题),最终涉及数据导入、数据上链、数据展现的各项工作按计划在两天时间内完成,并且联调完美通过。

如何在一天时间内将数据处理模块、区块链网络、区块链浏览器和数据库等服务远程部署到娄底市指定机房服务器?

政务数据最关键的因素就是数据安全性,为保证其安全性,存储政务数据服务器需要与互联网隔离,链企银团队产品运维工程师李工在娄底机房同事的远程协助下通过远程访问服务开启了紧张的部署工作,导镜像、装数据库、部应用,启区块链网络… 就在一切都很顺利的时候,突然K8s网络出现问题,李工发现需要关闭防火墙和交换分区,此时此刻已经是晚上7点多钟,李工顾不上吃饭休息,与娄底机房同事默契配合,抓紧K8s的部署工作,中途又遭遇了k8s的服务端口不通的问题,李工和团小组成员张工、苏工等经过多渠道资料研究、讨论以及反复尝试,在iptables中将k8s内部服务的所有端口都加入放行列表中,终于恢复正常。

但问题仍在继续,由于机房服务器无法提供托管的k8s服务,因此需要自行搭建k8s-master,整个搭建过程刚开始是顺利的,等到etcd、kube-apiserver、kube-controller-manager 、kube-flannel、kube-proxy、kube-scheduler部署完成之后发现coredns却出现问题,通过报错发现53端口被占用,通过进程查看工具发现本地已经跑了一个dnsmasq服务,遂将其杀死,cordns启动恢复正常。随后在容器内测试时,k8s的服务域名仍无法ping通,但coredns容器正常运行且无异常日志。由于网络很慢,在经过长时间的等待后在容器内安装了telnet命令,发现通过服务域名和端口是可正常访问服务了,只是服务器的策略禁ping,此时才完全确认k8s网络和服务运行完全正常,可开始部署区块链组件。

上天不负苦心人,历时一个通宵,反反复复出现问题、排查问题和解决问题后,区块链网络也正常运行起来,后端服务上链功能也正常运行,且看到区块链浏览器中,上链数量也在稳定增加,一切都在正常运作。

数据上链出现卡顿,Mrason挖矿木马病毒突现,如何解救?

在运行一段时间后发现速度很慢,服务器资源消耗很多,服务器非常卡,通过查看进程发现,一个Mrason的进程运行的过程中固定消耗了十个核心的cpu资源,造成了资源紧张严重影响了数据导入的效率,时不时还会出现卡顿,这是什么原因导致?产品运维工程师李工的第一反应是中毒了,果然,通过搜索发现,是一种挖矿木马程序(因部署服务器处在娄底IDC机房,外地人员无法通过内网进行登录认证,因此需开通外网访问权限,在这个过程当中由于root密码设置过于简单给了黑客可乘之机植入了Mrason挖矿木马,这也是很多技术人员在远程操作中经常会碰到的一个问题,在此建议大家不要为了贪图方便,设置过于简单的密码,黑客无处不在)。定位了问题所在,链企银小组成员迅速给出解决方案,将Marson进程定时进行查杀,发现杀死之后进程又死灰复燃,遂将查杀频率提升至5秒每次,但这始终无法彻底杀掉病毒,服务器资源还是时不时非常紧张,随即祭出了永久解救方案,找出Marson的父进程,并将其所在的定时拉起任务停掉,并同时更新root的验证密码,自此之后便再无出现过占用cpu过高的非应用进程,一切又归于太平。

服务不够稳定,反复出现问题怎么办?曲折的道路永远不缺解决问题的决心!

经过一段时间的压测,链企银小组运维人员发现服务不够稳定,总是在中途崩溃退出,导致上链中断或者数据不一致。问题一出,小组负责人立刻紧急商讨,监控服务器资源使用情况、监控数据库连接情况、监控服务运行状况,以及查看各服务日志是否正常,发现个别服务在一定情况下总是内存释放出错导致程序崩溃,同时数据库连接爆满,问题已经初步定位,马上给出解决方案:

针对内存问题,是由于内存不足,释放时报错,最快的方案就是增大服务的堆栈内存。

针对数据库连接问题,因为数据库限制了连接数,导致报 Too many connections 错误,导致插入区块链浏览器操作比较频繁的链接拿不到链接,数据插入不到数据库,决定增大最大连接数和调整线程缓存大小。

通过show variables like '%max_connections%'查看最大连接数,发现其值过小。

遂将其调大,问题解决。

同时将thread_cache_size从20调大到100了,减少频繁创建连接,提高效率。

一切完成之后,马上再次压测,1万、2万、3万,…,总数据量一直平稳增加,直到最终上链数据量定在61775,与预期的结果完全一致。

经过多次调试与不懈努力,链企银小组成员终于克服重重困难,在规定时间内顺利做好前期搭建、部署工作。

过程就是不断遇到问题并且解决问题,政务数据上链之旅正式开始,15万条政务数据成功上链!

前期准备测试部署工作全部就绪,真正的政务数据上链之旅马上就要开始,此时需要导入真正的政务数据,需要在与互联网隔离的情况下进行。区块链技术组长苏工赶到娄底机房现场,一切准备就绪,断外网,重新启动k8s,却再次出现问题,k8s出现无法启动的情况,经过逐一排查,发现是由于断网后,失去了k8s赖以运行的IP地址,导致K8S各组件一直无法正常启动。由于政务数据系政府内部机密数据,部署完成之后需断开外网,由于此前只配置了一块网卡,导致k8s等服务找不到监听的IP地址遂全部挂掉,于是需要对另外一块网卡进行配置。在娄底机房工作人员和相关领导的协助下,苏工拉网线接上机房交换机后,服务器动态获取到内网IP地址,然后配置成静态,将k8s服务监听于这个内网IP,应用重新部署恢复正常。k8s成功启动,服务正常运行,政务数据进行上链,最终顺利地将有效的15万多条数据成功上链!

截止到目前,链企银平台政务数据已经突破50万条,是平台大数据风控的重要数据基础,也是帮助中小企业从抵押贷款模式转向信贷模式不可或缺的根基。

这次的政务数据上链任务圆满完成。

“在时间紧、任务重的情况下,哪怕只有50%的信心,也要顶上去,做起来,静下心分析,发现问题解决问题。这不就是一个程序员的成长历程吗?”——区块链技术组长苏工说道。

通过这次项目实战,圆满完成平台政务数据上链任务,是链企银团队超强战斗力、责任心和团队合作能力的展现!平台自上线以来,在娄底市政府的大力支持下,积极助力当地中小微企业融资,解决疫情当下的企业现金流困境,协助政府部门进行疫情管控!截止目前,平台已经有2348家娄底企业注册,累计受理企业申请116笔,3月份融资申请金额突破2亿元。目前已经完成贷款发放突破千万,其他的审批均在流程中。链企银平台的价值正在凸显!

未来链企银平台将为娄底市提供更为完善的科技赋能和综合金融服务赋能,真正帮助娄底乃至全国中小企业解决融资难题,用专业的态度和扎实的技术实力开创新型金融体系的基石。

本文来源:德方智链
原文标题:技术文章——娄底政务数据曲折上链路

—-

编译者/作者:德方智链

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...