在公司这些年

在公司快两年了,很少做总结,突然想对这年两的工作做下总价,梳理下自己学到了哪些内容,还有哪些方面可以提高。

一.业务
1.统一认证系统的主要功能有哪些?
分五块
1).对内的手机SDK
注册,登录,找回修改密码,查询用户信息
其中登录包括四种方式的登录:
账号密码登录,短信验证码登录,网关鉴权登录,短信上行登录
2).对外的手机SDK
登录,查询用户资料,查询用户状态,查询SIM卡状态
登录分为三种登录方式:
隐式登录,显式登录,短信验证码登录,按照权限的区别分为高级授权的应用和普通权限的应用
3).网页侧(PC或者移动端的H5网页)接入
PC版的账号密码与短信验证码两种登录方式
移动端的自动取号登录,账号密码登录和短信验证码登录
4).扫描二维码方式的登录
扫描二维码的登录方式
在手机扫描电脑网页上面的二维码后可以自动获取用户手机号码识别身份(或者在已经登录的手机客户端扫描二维码)
扫码后,在手机侧点击确认后,可以实现手机授权在PC侧登录。
5).在取号能力基础上面的附加业务
互联网权益包的问题

2.用管中心对接boss的业务主要有哪些?
1).实时模块,接收从移动boss发送过来的消息
2).批处理模块
3).存量批开的模块


二.在技术方面的收获总结
1.对springMVC架构的掌握


2.对高并发访问的时候应用服务器,数据库服务器的一些优化措施
从应用服务器方面:
1).比如进行请求的分发,将请求分发到不同的服务器上面,防止单台的负载过大
2).从提高服务器的响应速度速度方面来考虑,主要是有以下两个个优化点
2.1).将经常查询的数据结果放入缓存,下次来查询的时候直接根据key值从缓存中读取,提高读取的速度
2.2)对查询过程的优化,又可以细分为两个点:
a.对经常查询的列索引
b.对查询的sql语句进行优化,利用索引

应用的场景:SDK校验token的场景下面需要查询KS表,KS表中大概有4600万条数据

两点:
2.1).每次协商秘钥都需要重新写入一条数据覆盖原来的数据,写的时候会同时写入数据库和缓存中,数据的写入耗时不大(小批量的数据)
2.2)耗时主要是数据的查询,在数据的查询时,做了两个方面的优化
a.增加缓存,将查询的结果按(passid+machinecode),info)的方式存入缓存,下次再来查询的时候,直接从缓存中
读取,大大加快速度
b.对查询的表增加索引,对经常需要作为查询条件的列设置索引,如查询ks的时候就是以(passid,machinecode)作为
查询的列,对这个两个列做一个联合的索引,查询的时候能够提高查询的效率。



3)通过将实时性要求不高的请求处理方式有同步的改为异步的方式来提高程序的效率(每天需要推送的号码大概在110W条)
在客户端发送取号请求后,服务端获取到手机号码以后需要向第三方推送,如果推送给第三方存在很多不确定
的因素,如网络状况不好,第三方提供的地址不可用等情况,会造成服务器一致等待第三方的响应而影响性能
在此可以将同步的推送改为异步的推送,采用卡夫卡消息队列的方式去推送号码给第三方。


4)将经常变化的数据存储到文件,再从文件中读取到缓存,由于程序无法实时监测到数据库的更新,但却可以
可以实时监测到文件的更新,故对于经常需要修改的数据存放在文件中,程序可以实时监测到变化再重新加载一次



3.熟悉了常用的加解密算法,并能做一些常用的安全加密算法
1)常用的加解密算法,DES,AES对称加解密短发,RSA非对称加解密算法(RSA运用在协商秘钥的过程当中)
2)常见的数字签名算法,MD5数字签名,SHA-1数字签名,使用场景:对参数进行签名,防止在网络传输中被篡改


4.掌握了一些定位于分析问题的技能
1).利用调试模式,在开发阶段能够方便的跟踪代码,定位具体的问题
2).在上线维护阶段则要注意日志的打印,以下的几个关键地方需要打印日志:
a.调用外部接口的时候
b.对数据库进行操作的时候
c.接收和返回给前端的时候


5.java的FTP和多线程的方式
在对接boss的模块中用到了这两个知识点
1.FTP服务器的搭建
2.利用java编写FTP客户端程序
java多线程方面
用到的模式是多个线程来处理同一批数据,如何防止多个线程之间不会存在冲突呢?
使用vector防止多个线程同时读取数据的时候发生冲突

三.在工作的过程当中有没有碰到什么样的问题
1.是在研发线上面部署了多套多线程的程序,多套程序的线程同时读取一个目录线面的文件处理
开始的时候时候以为只有一套,,把这套程序给关掉了,发现数据仍然在被读取,结果发现是在别的地方也存存在相同的
程序,定位到是多套程序之间相互造成干扰的原因,后来只开启一套程序开发测试

2.二是在linux服务器上面的日志文件读写权限的问题
以root用户的身份将文件拷贝到服务器上面之后,再用普通用户启动的时候,发现一直没有日志显示
查看了tomcat的启动的服务日志后发现是没有日志文件的读写权限。将文件的所有者改为普通用户后,再次启动程序发现
可以写入日志

3.在java异常处理的时候里层的方法在方法里已经做了try catch处理但是同时又有抛出异常的声明,
在外层的时候运用try catch无法捕捉到这个异常,导致外层的try块里面出异常了没有执行catch语句块,而是直接执行下面的语句。

4.网关白名单的改造
将经常变化的数据存储到文件,再从文件中读取到缓存,由于程序无法实时监测到数据库的更新,但却可以
可以实时监测到文件的更新,故对于经常需要修改的数据存放在文件中,程序可以实时监测到变化再重新加载一次

5.把推送给第三方的方式有实时的改为异步的


三.在工作中有注意过在技术积累方面

1.在技术方面有没有有意思的做一些自己感兴趣的技术的积累?

在技术方面现在很多公司都要求掌握SpringMVC,SpringMVC可以说是这几年来开发的大潮流,有自学Spring方面的一些东西,最近在一个新的项目中采用了

spring boot来做开发,想加强一下自己这方面的能力。



猜你喜欢

转载自blog.csdn.net/w450093854/article/details/70170411