Iyangpengyu's Blog

技术只有在与业务相结合才有它闪光的价值


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

安全可信内容

发表于 2019-09-06 | 分类于 杂谈

安全可信培训

  • 2015年第三方存管系统出现异常。无法完成存管签约以及变更账户。主要是银证转账方面。

可信内容

批量-对账。索引-分区要求。

核心主机。双向对账。产品系统—主机。(主机有账务,产品系统没账务)。

人工兜底。定长报文格式 -没有分隔符-约定第几位到第几位是什么。交易串包导致用户账户多了80亿。解决:添加交易序号。应答序列号一致tttffdda,b…d.b.

批量一直在跑。因为没有做开始结束的时间监控。运行时长。阈值?阀值?。心跳监控。监控接入,交易量阀值。socket connected。telnet。bdac应用服务器不直接外联。外联前置机器隔离。报文防篡改。1.故意。2.网络抖动,丢包。3.抵赖。合作方返回报文但不承认。数字签名达到防抵赖,验签通过就证明只有合作方可以产生。4.报文日志。存储日志。5.要素校验。业务关键要素确认。

  • 交易处理状态
    • 断点续作记录阶段。避免重复处理。可疑拒绝重复发起
    • 超时处理3秒内响应。合作方最长8s
    • 可疑交易必须处理。冲正(反交易),重发。查询同步。明确这个交易再去处理
    • 每隔三分钟去主机扫。扫六次。还没到达。判定为失败。半小时失败的程序不考虑。双向对账进行兜底。人工介入。退给客户钱。
    • 原交易状态不明确,应去主机查询。明确后进行处理
    • 界面防重复提交。并发交易的幂等
    • 下游系统并发数。一般不超过10 ,机关枪
    • 互斥性。数据库锁
    • 容错恢复能力。chk文件没传递完的时候需要等待
    • 重点紧急程度。不要影响后面的资金清算
    • 联合索引中 跳跃索引性能很差。索引使用度来排序
    • 分区表用本地索引。500w以上的表使用分区。500w分区限定10份。类似于50w行- 分区不考虑列
    • 联机不超过1s。commit应该小块处理。回滚段影响性能。数据清理。记录数清理策略
    • 洪泛高攻击
    • 异步处理 灰度发布 –对客进行反馈,改进点 –开发中心出于自身利益考虑。只投产一小部分。让一小部分人操作看结果
    • 分库和多活:mysql性能差点。需要层级分库,水平分库。一家机构给你干挂了,其他影响。多个服务器。
    • 接入多点服务器。提高系统稳定性。日志 进来 出去 异常 重要
    • 涉账兜底:具备自动重启。
    • 敏感 3des aes,sm1 sm4 rsa,sm2 ecc加密算法 md5 sha-1散列
    • 路径泄漏下载。有的放矢的攻击
    • 双路模式。有主有辅。两种计算模式进行比对。互相核对。系统自动兜底。

常见问题

发表于 2019-09-06 | 分类于 面试

常见问题

ZS

  • ReenTrantLock可重入锁(和synchronized的区别)

    • 可重入性:从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放。
    • 锁的实现:Synchronized是依赖于JVM实现的,而ReenTrantLock是JDK实现的,有什么区别,说白了就类似于操作系统来控制实现和用户自己敲代码实现的区别。前者的实现是比较难见到的,后者有直接的源码可供阅读。
    • 性能的区别:在Synchronized优化以前,synchronized的性能是比ReenTrantLock差很多的,但是自从Synchronized引入了偏向锁,轻量级锁(自旋锁)后,两者的性能就差不多了,在两种方法都可用的情况下,官方甚至建议使用synchronized,其实synchronized的优化我感觉就借鉴了ReenTrantLock中的CAS技术。都是试图在用户态就把加锁问题解决,避免进入内核态的线程阻塞。
    • 功能区别:便利性:Synchronized的使用比较方便简洁,并且由编译器去保证锁的加锁和释放,而ReenTrantLock需要手工声明来加锁和释放锁,为了避免忘记手工释放锁造成死锁,所以最好在finally中声明释放锁。
    • 锁的细粒度和灵活度:ReenTrantLock优于Synchronized。
    • ReenTrantLock独有的能力:(什么情况下需要使用reentrantlock)
      1. ReenTrantLock可以指定是公平锁还是非公平锁。而synchronized只能是非公平锁。所谓的公平锁就是先等待的线程先获得锁。
      2. ReenTrantLock提供了一个Condition(条件)类,用来实现分组唤醒需要唤醒的线程们,而不是像synchronized要么随机唤醒一个线程要么唤醒全部线程。
      3. ReenTrantLock提供了一种能够中断等待锁的线程的机制,通过lock.lockInterruptibly()来实现这个机制。
    • 简单来说,ReenTrantLock的实现是一种自旋锁,通过循环调用CAS操作来实现加锁。它的性能比较好也是因为避免了使线程进入内核态的阻塞状态。想尽办法避免线程进入内核的阻塞状态是我们去分析和理解锁设计的关键钥匙。
  • IF ELSE 优化

    • 采用策略模式。有一个共同的接口,每一份分支走一个实现类。清晰明了
    • 代码中有很多”if””else””switch”和其它凌乱的逻辑,且总是易变的应当使用规则引擎,drools
  • 类加载解析的时候(双亲委派模式)

    lass文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。

    虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。

    class 加载 验证 准备 初始化

  • 微服务架构图

  • 创建行设计模式有哪些

    工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

  • spring\索引知识点

oracle存储过程及常用语法糖

发表于 2019-09-05 | 分类于 数据库

oracle常见函数与处理

  • 字符串切割:substr 、substrb 。下面为对应API

    substr(string,start,length)

    string - 指定的要截取的字符串;

    start - 必需,规定在字符串的何处开始 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾的指定位置开始 0 - 在字符串中的第一个字符处开始,

    length - 可选,指定要截取的字符串长度,缺省时返回字符表达式的值结束前的全部字符。

    !substrb用法与substr相同,但是为按位截取

阅读全文 »

plsql利用执行计划explain plan进行sql性能分析

发表于 2019-07-15 | 分类于 数据库

执行计划简介

什么是执行计划 (Explain plan)?

: 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述。

阅读全文 »

Linux下memcached无法被本机telnet通问题排查

发表于 2019-05-07 | 分类于 建站

linux搭建memcached

  • 首先我们的服务器上安装好memcached,下面是安装步骤
阅读全文 »

阿里云ESC实例搭建redis集群那些事

发表于 2019-02-28 | 分类于 开发

linux搭建redis集群

  • 这里为大家找好了一个搭建的教程 点我传送
  • 但是既然在云端搭建了集群没有不在PC机器上使用它的道理。那么如何开启远程访问呢?

    1
    2
    3
    打开redis.conf文件
    注释掉bind 127.0.0.1可以使所有的ip访问redis
    修改 protected-mode no
阅读全文 »

springBoot学习小结

发表于 2019-02-28 | 分类于 开发
  • 先占个坑

阅读全文 »

mysql常用命令

发表于 2019-02-19 | 分类于 开发

mysql作为开发常用数据库,提供了高性能的持久化服务,很多中小企业采用该数据库进行数据存储。作为开发者,在自己的linux服务器上搭建自己的mysql数据库,并修改端口,密码配置,并进行常用的增删改查操作显得尤为重要。下面是详细内容:

阅读全文 »

如何在notepad++中支持markdown语法

发表于 2019-02-13 | 分类于 建站

在Markdown开发人员的GitHub上直接下载该插件,将下载的MarkdownViewerPlusPlus.dll文件放入Notepad++的Plugins文件夹下,该工具会在Notepad++下添加一个小的Markdown图标,点击即可运行该插件。
如图所示
MarkdownViewer++下载链接:https://github.com/nea/MarkdownViewerPlusPlus

idea开发工具简介及问题汇总

发表于 2019-02-13 | 分类于 开发

idea是作者接触开发工具中比较好用的一款,强大的插件系统赋予了它多变灵活的功能,在使用它进行开发的过程中遇到的问题也进行了记录,目前在作者csdn博客上先建立一个小的传送门
也欢迎大家关注我csdn博客

idea传送门

More info: 传送

12

yangpengyu

11 日志
5 分类
10 标签
© 2019 yangpengyu
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%