![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
问题日了个常
文章平均质量分 57
墨迹世界
不负韶华
展开
-
imp文件,以及IDEA编译中的警告
翻译:你是否想把以下地址文件添加到svn仓库(备份以及版本控制)什么是imp文件:.imp是IDEA的工程配置文件,是当前项目的配置信息。是IDEA自动创建的模块文件。存储模块路径信息,依赖文件目录。因为每个人的目录,都不一样。因此iml文件,我没有添加到svn仓库。百度了一下,可能的错误原因是:在编译java源文件时,使用的jdk是1.8.而在jdk1.5及其以后的jdk版本中,都增加了泛型的检...原创 2018-02-27 14:35:57 · 4059 阅读 · 0 评论 -
失效转移
书上看到了失效转移这个概念。书中是这样描述的。保证数据高可用的手段,主要是数据备份和失效转移。失效转移机制保证当一个数据副本不可访问时,可以快速切换访问数据的其它副本,保证系统可用。百度了一下,是这样定义的。失效转移是一种备份操作模式,当主要组件由于失效或预定关机时间原因而无法工作时,这种模式中的系统组件的功能被嫁接到二级系统组件。这样看来的话,失效转移不是特指某一种操作。类...原创 2019-07-16 09:37:38 · 514 阅读 · 0 评论 -
生产事故--交易的各种失败类型
背景: 团队内,三个系统,同时生产上线。因为另外一个系统凌晨的一个定时任务,弄错了参数。导致第二天,出现了大量业务处理失败的交易。业务失败,但是系统处理是成功的。所以,并没有发现直到用户打电话投诉思考: 交易系统处理虽然成功,但是业务处理失败,失败的原因,依然需要警醒。通过长期的统计,估算出一个比例。如果超过这个比例,应该报警,进行系统的检查。 除此...原创 2019-07-18 15:36:14 · 166 阅读 · 0 评论 -
上线思考
昨天晚上,网联银联协议互备上线。涉及到三个系统,网联,银联无卡,统一支付,手机银行。我们团队负责前三个系统,其中,我负责网联上线部分。生产上线,一波三折。我们团队统一支付出了不少问题。但是,日志上打印的相关信息实在太少了。看着打印的日志信息,真的是很,一阵凉意从脚底,一直到头盖骨。好在最后解决。有一个想法,如果,开发的时候,在抛出错误信息之前。写出可能的解决方案。生产上线的时候,能够快速的...原创 2019-07-12 09:30:17 · 123 阅读 · 0 评论 -
oracle快速备份表
生产上线如何快速备份表。create 表名_bak _日期 as select * from表原创 2019-07-12 14:44:26 · 16812 阅读 · 4 评论 -
花呗额度,为什么每个月只能修改一次。
背景:生产上线,遇到某些用户频繁修改额度的问题。用户把单笔交易金额,改成了5元钱。然后,当我看到,微信充值6元钱,结果报单笔超限,把我吓到了。排查了半天,结果发现,只是用户在玩儿,将自己的额度改小了,然后又改回原额度。联想:这让我联想到了花呗额度,为什么每个月只能修改一次。涉及到账户额度的限制,应该是在并发量很高的微服务里,处理频繁的账务交易。而修改花呗额度,这个东西。作为功...原创 2019-07-12 14:48:04 · 2040 阅读 · 1 评论 -
TCP流量控制 ,拥塞控制
流量控制什么是流量控制?流量控制的目的?如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。流量控制根本目的是防止分组丢失,它是构成TCP可靠性的一方面。如何实现流量控制?由滑动窗口协议(连续ARQ协议)实现。滑动窗口协议既保证了分组无差错、有序接收,也实现了流量控制。主要的方式就是接收方返回的...转载 2019-08-13 20:58:26 · 174 阅读 · 0 评论 -
三次握手,四次挥手
public void shutdown() throws IOException { Socket socket = (Socket)this.socketHolder.getAndSet((Object)null); if (socket != null) { try { socket.setSoLing...转载 2019-08-12 20:52:18 · 130 阅读 · 0 评论 -
java堆溢出 java.lang.outofMemoryError:java heap space
背景: 通过报文,向核心系统获取D-1日交易明细,存放数据库。每日交易量目前1w.每个月交易量有10%到20%的增长。获取核心交易明细,用于对账 建立socket短连接,10000条交易明细,需建立100次短连接。每次短连接,传输的报文大概50000个字节风险:1.因为需要建立多次短连接,某一次连接的失败,之前获取的数据全部丢弃。2.同时多次建立连接,关闭连接,...原创 2019-08-27 19:30:08 · 531 阅读 · 0 评论 -
千万级数据库
背景: 系统交易量与日俱增。目前负责系统,数据库单表存放的数据量越来越大,目前已是百万级。查询速度变慢,所以在思考,与同事交流,网上找相应问题需要注意的风险,以及后续解决方案。千万级数据库查询需要注意什么建立索引(where,order by) 避免在where字句中,进行null值判断,导致引擎放弃使用索引,进行全表扫描 索引提高了查询效率,但是降低了insert和u...原创 2019-08-30 11:58:26 · 3117 阅读 · 0 评论 -
生产上线,先改数据库表结构,还是先增量上线代码
周四生产上线。本次上线,涉及到修改表结构,以及代码。但是我们公司的产品,有这样一个问题。如果表结构字段和代码里实体类不一致,则会报错。本次上线内容,涉及到所有的交易。总结。最后也没找出响应的解决方案,只能挑在用户少时间段,然后上线速度够快。大概3秒,4秒的样子如果,后续能够有更好的解决方案,在写下来吧。先在这儿,留一个坑...原创 2019-07-09 18:00:39 · 722 阅读 · 1 评论 -
生产问题--交易超时
问题背景:网联项目,两台服务器,F5负债均衡。每次生产上线,总会造成一两笔交易超时。操作过程:周四7点,增量上线响应代码,编译,停止其中一台,马上重启。(停止重启的操作,大概2到3秒)另一台服务器同样如此问题记录:每次生产上线。总会造成一两笔交易超时。问题分析:当我停止其中一台服务器时,F5,就不会将新的交易请求发到已停止的服务器来。可是为什么会有超时的交易。是因为,我在停止的过程中,...原创 2019-06-24 18:47:40 · 359 阅读 · 1 评论 -
端口占用
今天遇到的问题:端口占用端口的意义:将接收到的数据包,通过端口机制,传到相应的程序进程解决方式,通过netstat -ano.查到相应的pid,打开任务管理器,杀掉,占用端口的进程原创 2018-03-08 14:36:19 · 111 阅读 · 0 评论 -
数据库连接相关问题
今天有个小伙子,问我的,总结一下怎么进行SQL批处理?就是我想同时执行多条SQL语句并且不能开启多个连接?他的问题应该是,一个连接,可以执行多条SQL语句吗?是可以的,一个连接,可以执行多条SQL语句,但是不能同时执行,只能一条一条执行。可能正因为如此(原因之一),才有了数据库连接池的概念用完的连接放回数据库,需要的时候,再拿出来用。这个取出,返回,再取出的过程,并没有原创 2018-03-06 10:28:55 · 230 阅读 · 0 评论 -
equals和==
equals和==的区别小结==:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如:int a=10 与 long b=...转载 2018-07-13 19:45:50 · 119 阅读 · 0 评论 -
aop日志的实现
AOP是spring的核心之一。用AOP来实现用户操作日志管理非常合适。 学东西应该先具体再抽象。下面直接上代码pom.xml<!-- 面向切面的包 --> <dependency> <groupId>org.springframework</groupId> <artifactI...转载 2018-07-13 20:08:59 · 173 阅读 · 0 评论 -
localStorage,sessionStorage,cookie
昨天去面试,遇到这样的问题。。有点懵。找点资料学习下localStorage:HTML5新增的在浏览器端存储数据的方法。设置和获取localStorage的方法:设置: localStorage.name = 'zjj';获取: localStorage.name //zjjsessionStorage: HTML5新增的在浏览器端存储数据的方法,设置和获取sessionStora...转载 2018-07-26 12:10:19 · 175 阅读 · 0 评论 -
生产者消费者
突然翻到大学时敲的代码,记录下。最近面试,遇到过。发现已经忘了怎么敲.package com.li.Thread;/** * * @author lijie * @ClassName ThreadDemon * @Description: 6.面包师傅与消费者问题 场景要求: 如果面包个数为10个, 面包师傅停止烤面包 如果面包个数为0个, ...原创 2018-07-22 11:26:06 · 188 阅读 · 0 评论 -
本周问题
ant的总结 在Linux系统上部署纯后台项目(jetty),用到了ant,来进行部署。ant(another net tool):是一个自动构建工具。使用ant的主要工作就是配置它的build.xml文件在Linux中,只有ant targetname。即可编译整个项目(不是很明白,以后再来看吧) yum和apt -get的区别 不同类型Linux的相同...原创 2018-08-31 19:14:49 · 192 阅读 · 0 评论 -
本周问题
1.如何学习公司开源框架。抓住主干,找到这个项目的入口,然后大力度的去看这个项目的处理思路,大致流程2.idea是单独复制一份Tomcat的配置文件出来,用于该项目的配置在.idea/system/tomcat/<项目名字>/conf文件夹下。3.chmod x+u 文件change the permssion model of a fileu代表所有者,x代表执行权...原创 2018-09-10 19:40:42 · 118 阅读 · 0 评论 -
如何处理日累计限额
目前在做的项目中。有一个很有意思的点。如何处理日累计限额。一个账户,每天的交易限额是有额度的。到了第二天,额度恢复。日累计重新计算也就是说。到了第二天,日累计额度应该是从0开始计算的。就很简单嘛。写一个存储过程。每天凌晨更新。但其实项目里并不是怎么处理的。数据库中这张表里,还有另外一个字段txn_date。表示交易日期。代码,判断,当前日期,是否和交易日期一致,如果一致,那么就在已...原创 2019-05-21 21:14:07 · 2719 阅读 · 0 评论 -
HashMap扩容机制
一、什么时候扩容:网上总结的会有很多,但大多都总结的不够完整或者不够准确。大多数可能值说了满足我下面条件一的情况。扩容必须满足两个条件:1、 存放新值的时候当前已有元素的个数必须大于等于阈值2、 存放新值的时候当前存放数据发生hash碰撞(当前key计算的hash值换算出来的数组下标位置已经存在值)二、下面我们看源码,如下:首先是put()方法 public...转载 2019-09-02 20:43:57 · 420 阅读 · 0 评论