- 博客(106)
- 资源 (10)
- 收藏
- 关注
原创 研发人员如何做好管理
主要分享自己在当前公司做管理3年多的时间,自己总结和学到的一些管理方法,具体将会从"自我管理"、"选才育人"、"通过人达成事"三个方面来进行介绍,这些都是我的愚见,有不对的地方,还请大家多多指教。.........
2022-08-11 08:44:59 1566 1
原创 Tomcat源码分析之HostConfig.start方法解析
HostConfig是standedHost的生命周期状态的监听类,主要是根据监听状态进行相应的操作。今天我们主要讲start状态下,hostConfig的解析过程,大概的解析过程如下: 1.获取到start监听。lifecycleEvent(LifecycleEvent event)是具体的状态处理方法,在里面根据状态判断走具体的步骤,当状态为start时,将会调用start()方法。代码如下:public void lifecycleEven...
2020-06-29 21:32:03 469
原创 Tomcat源码分析之启动过程流程图
1.Tomcat启动过程流程图:2.Bootstrap.start()方法执行过程图:3.Tomcat处理请求过程:
2020-06-23 13:47:47 389 1
原创 路由器升级千兆后xshell连接局域网服务器很慢和连接linux服务器mysql很慢问题
最近公司路由器升级成千兆后windows电脑xshell连接局域网linux服务器和使用Navicat连接mysql都很慢,刚开始以为是交换机还是使用百兆的原因,然后把交换机也升级了,还是不行。最后在网上查找了相关资料,找到了解决方法,如下: 1.检查网关是否正确。 1).通过grep GATEWAY /etc/sysconfig/networ...
2018-05-03 14:37:09 956
原创 spring cloud中微服务调用出现 Can not parse date while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSS问题
最近在使用spring cloud开发微服务,在测试A服务调用B服务过程中出现了下面的异常: Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize value of ty...
2018-04-04 16:59:34 21584
原创 使用google身份验证器实现动态口令验证
google身份验证器的原理是什么呢?客户端和服务器事先协商好一个密钥K,用于一次性密码的生成过程,此密钥不被任何第三方所知道。此外,客户端和服务器各有一个计数器C,并且事先将计数值同步。进行验证时,客户端对密钥和计数器的组合(K,C)使用HMAC(Hash-based Message Authentication Code)算法计算一次性密码,公式如下:HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))
2017-08-14 14:04:55 33351 28
原创 redis哨兵模式使用lua脚本实现分布式锁
spring redis和redis包在设置key值的时候,都是先调用setnx设置值,成功就返回1,然后通过Expire设置超时时间,这样会出现一个问题假如setnx成功,但是expire的时候,失败了,那么该值就会一直存在,这样会造成大的问题,这个问题怎么解决呢?我们可以通过redis lua脚本,让设置值和设置超时时间在redis服务端一次执行,就不会造成前面描述的问题。下面是实现分布式锁的
2017-06-28 16:32:44 4415 1
原创 在div中显示图片的指定区域的图像方法
用CSS控制,这是比较常用的方法:CSS代码: .i{ background-image: url("/images/icon.png"); background-position:-26px -79px; } DIV代码:效果:
2017-06-23 15:08:02 5611 1
原创 使用缓存cache 的大坑
这段时间发现系统取数据过程中,偶尔出现取数据错乱的问题,按逻辑应该取出A数据,结果取出了B数据。仔细检查了代码,发现代码逻辑没有问题,瞬间就蒙了,是哪里出现问题了呢。仔细想了一下,以前都没出现问题,自从加了缓存之后就偶尔出现了问题,那肯定问题是缓存有问题。
2017-05-18 11:48:46 4388 9
原创 The method getTextContent() is undefined for the type Node解决方法(eclipse)
在使用org.w3c.dom.Node.getTextContent()出现了The method getTextContent() is undefined for the type Node的提示,产生原因在j2ee项目中的xml-apis.jar下的org.w3c.dom干扰了Java的类查找,所以我们只需要把jdk的优先级调整到它之前就可以了。
2016-12-23 16:20:11 4964
原创 使用zxing批量生成二维码立牌
使用zxing批量在做好的立牌背景图的指定位置上,把指定的文本内容(链接地址、文本等)生成二维码并放在该位置,最后加上立牌编号。
2016-12-14 16:36:41 5218 14
原创 java虚拟机(jvm)垃圾收集算法剖析
目前商业虚拟机的垃圾收集都采用“分代收集”算法,这种算法根据对象的存活周期把内存划分为“新生代”和“老年代”。然后根据不同的年代的特点采取不同的收集算法。在新生代中,由于每次minor GC都发现有很多对象死去,存活的非常少,因此采用复制算法。而老年代中对象存活率非常的高,而起没有额外的内存空间进行分配担保就采用“标记-清理”或“标记-整理”算法来进行回收。但是基本上使用的“标记-整理”算法,“标记-清理”算法使用非常的少。
2016-10-16 11:14:48 2225 1
转载 你知道JVM性能怎么调优吗?
系统崩溃前的一些现象:每次垃圾回收的时间越来越长,由之前的10ms延长到50ms左右,FullGC的时间也有之前的0.5s延长到4、5s;FullGC的次数越来越多,最频繁时隔不到1分钟就进行一次FullGC;年老代的内存越来越大并且每次FullGC后年老代没有内存被释放;之后系统会无法响应新的请求,逐渐到达OutOfMemoryError的临界值。
2016-09-27 10:49:38 3101 1
原创 使用jdk的jps、jstack工具检测代码问题,提高程序性能
今天给大家分享怎样利用jdk的jps和jstack工具结合定位代码的问题,提高程序的稳定性、健壮性和性能。通过jps命令查找到对应程序的进程,记录进程号,通过jstack命令把该进程号所在的程序的线程堆栈信息输出到文件,然后对文件里面的信息进行分析,找到原因并解决问题。
2016-09-26 12:40:52 3519 1
原创 Mysql报Got error 28 from storage engine错误问题
今天早上准备把数据库里面的表结构导出来,在执行sql的过程中报Got error 28 from storage engine错误如下图所示:根据报的错误的语义很明显发现时存储发生了问题,通过看磁盘发现0空间可以使用,那就很明显是空间不足导致的。问题原因:磁盘空间不足。
2016-09-25 15:55:40 2359
原创 收集的java问题和技巧
下面的java编程的问题和技巧,部分是自己遇到的问题和总结,部分是自己在网上看到的有意思的问题。本篇文章内容将会不断的对自己收集的问题和技巧进行更新。1).List遍历过程中删除元素推荐做法使用Iterator遍历,但是不用list来remove。代码如下:List list = new ArrayList(); list.add(1); list.add(2); list.add(2);
2016-09-20 14:00:01 2180
原创 fastdfs分布式文件系统之与dubbo整合实现分布式服务接口
fastdfs是开源的轻量级分布式文件系统,它提供了java版本的client api。通过client API可以实现对文件的上传、追加、下载、删除等功能。为了避免每个应用都配置fasdtfs参数、读取配置文件、调用client api获取trackerServer和StorageServer进行上传、下载、删除等操作及返回结果的处理。所以采用与dubbo整合,提供分布式服务接口,来简化其它服务和应用的文件操作处理,同时提高代码的复用性。
2016-09-13 15:30:23 8683 5
原创 使用spring+html5实现安全传输随机数字密码键盘
随着互联网的飞跃式发展,移动支付已经越来越受欢迎并且已成为常态,很多三方公司推出了很多支付方式,比如快捷支付、认证支付、扫码支付等等。快捷支付和认证支付可以分为移动app控件和移动HTML5网页。在用户第一次使用快捷支付和认证支付进行支付的时候,需要先绑定银行卡在绑定银行卡的过程,需要对银行卡信息的验证,不同的银行、不同的银行卡验证的要素不一样,有些需要验证四要素,有的需要验证八要素。对于需要要验证银行卡的交易密码,那么怎样保证交易密码的安全不被别人所窃取呢?所以出现了安全传输随机数字密码键盘。
2016-09-08 17:26:57 6096 5
原创 fastdfs分布式文件系统之JAVA client工具类封装
工具类当中进行连接池的初始化及上传、下载、删除功能的实现并在spring配置文件中配置,生成对应的java bean 方便其它类访问。
2016-09-06 08:51:49 9314 4
原创 fastdfs分布式文件系统之TrackerServer连接池实现
公司使用fastdfs文件系统来存储文件和图片,为了避免每个系统都直接通过客户端直接访问fastdfs文件系统,所以我们做了一个dubbo服务。要实现图片上传、下载的服务或工程直接调用dubbo接口就可以了。为了提高性能对fastdfs文件系统TrackerServer写了个连接池,同时写了空闲连接是否可用的监测类。
2016-09-05 17:16:30 9285 20
原创 android支付宝客户端html5网页偶尔无法自动关闭问题
公司产品使用支付宝移动网页接口支付,当三方商户传入跳转地址,在支付宝页面支付成功后跳转到该地址,如果没传将会自动关闭页面。测试的时候在ios客户端上面可以,但是在android客户端上偶尔行偶尔不行。
2016-09-05 11:19:48 3745 1
原创 使用apache log解决高并发下log4j引起大量线程block问题
由于项目用户量比较大,测试同事采用两百并发进行测试,在测试查过程中,查看jvm 虚拟机发现很多java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.log4j.Category.callAppenders(Category.java:204)问题
2016-09-01 17:21:15 19394 5
原创 在高并发的情况下小小的日志打印会严重影响到性能。
程序的性能与日志的输出内容及输出到控制台、文件的格式有非常重要的影响。下面将给大家讲解是怎么影响的。
2016-09-01 16:03:26 14217 2
原创 百度钱包ios移动端html5网页无法自动关闭问题
我们公司最近在做百度钱包的移动网页支付的一款产品,产品使用场景是当用户通过百度钱包扫描我们的产品的二维码,进入我们的产品中,然后用户选择商品并点击购买,然后在我们系统后台生成订单并提交信息到百度钱包进行支付,当支付完成后我们系统页面会自动的关闭。这个功能在android手机上面可以,但是在ios上面无法关闭。
2016-08-24 11:05:41 2389 1
原创 在spring mvc项目中实现登录账号单浏览器登录
在很多web产品中都需要实现在同一时刻,只能允许一个账号同时只能在一个浏览器当中登录。通俗点讲就是当A账号在浏览器1当中登录了,此时在浏览器2中登录A账号。那么在浏览器1中的A账号将会被挤出去,当用户操作浏览器1的页面,页面会跳到登录页面,需要重新登录。那么我们怎么实现这样的功能呢?
2016-08-22 16:10:24 10760 9
原创 小小的session配置,说不定会影响你的web项目性能
以前公司做了一个web项目。发布以后,随着访问量的逐渐增大,发现JVM的内存使用比较多,full gc比较频繁,而且full gc后old区的大小变化不大。刚开始以为是JVM虚拟机的各项参数配置的不合理,我们就对JVM虚拟机的参数进行调整,调整后发现GC还是非常的频繁。funll GC频繁非常影响性能,我们把jvm的heapdump( Java 堆栈的快照)文件导出来,采用IBM HeapAnalyzer 的分析工具进行分析。经过分析发现堆中存在很多session对象。这些session对象占用空间
2016-08-17 11:31:11 2434
转载 降低Java垃圾回收开销的5条建议
保持GC低开销的窍门有哪些?随着一再拖延而即将发布的 Java9,G1(“Garbage First”)垃圾回收器将被成为 HotSpot 虚拟机默认的垃圾回收器。从 serial 垃圾回收器到CMS 收集器, JVM 见证了许多 GC 实现,而 G1 将成为其下一代垃圾回收器。随着垃圾收集器的发展,每一代 GC 与其上一代相比,都带来了巨大的进步和改善。parallel GC 与 serial GC 相比,它让垃圾收集器以多线程的方式工作,充分利用了多核计算机的计算能力。CMS(“Concurren
2016-08-15 15:57:29 2165 2
原创 spring mvc +HTML5实现移动端底部上滑异步加载更多内容分页效果
由于手机的携带的方便性和手机的越来越智能和移动网速越来越快,手机已经充斥着人们的生活。随着手机的流行,移动应用也快速的火了起来比如微商城、手机网页、移动APP等等。既然移动应用这么火,我们今天来讲一下怎样实现在移动网页中动态加载数据,那么我们怎么实现呢,是像pc网页那样,有个上一页和下一页还是其它的方式。其实像pc网页那样上一页和下一页肯定不行的,手机屏幕很小,不好点击同时用户体验很差,今天来给大家介绍使用spring mvc +HTML5实现移动端底部上滑异步加载更多内容分页效果的方式。
2016-08-10 16:06:10 12507 7
原创 金融、支付行业的开发者不得不知道的float、double计算误差问题
在大多数行业涉及到浮点数的计算的场景比较少,但是在金融、支付行业就比较多了,而且在这两个行业一个小小的错误可能将会给公司带来极大的损失。在浮点运算中,浮点运算很少是精确的。虽然一些数字(譬如 0.5 )可以精确地表示为二进制(底数 2)小数(因为 0.5 等于 2 -1),但其它一些数字(譬如 0.1 )就不能精确的表示。因此,浮点运算可能导致舍入误差,产生的结果接近但不等于你可能希望的结果。
2016-08-08 20:29:19 6818 4
原创 synchronized与ReentrantLock的介绍、使用、适合场景及比较
JDK 5.0为开发人员开发高性能的并发应用程序提供了一些很有效的新选择,目前存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,ReentrantLock是Lock的实现。在实际的工作中,大家对synchronized和ReentrantLock都使用的比较多,今天对这两种锁机制进行了总结并分享给各位朋友们,希望对大家有所帮助。
2016-08-08 15:29:15 8201 4
原创 使用RSA、MD5对参数生成签名与验签
在日常的工作中,我们对外提供的接口或调用三方的接口往往有一步生成签名或验签的步骤,这个步骤主要是验证调用方是不是合法的以及内容是否被修改。比如:对于某些网上公开下载的软件,视频,尤其是镜像文件。如果被修改了可能会导致用不了或者其他的问题,发布者镜像MD5算法计算一组数值。让下载的用户进行MD5数值对比,也就是MD5校验啦。由于MD5加密不可逆算,如果数值一样,那就表示文件没被修改的。反之,则被修改。
2016-08-05 16:55:33 24740 3
原创 Fastdfs分布式文件系统之文件同步机制
从fastdfs文件系统结构中我们可以看出不管是上传文件、删除文件、修改文件及新增storager server,文件的同步都是同组内多台storager server之间进行的;tracker server的配置文件中没有出现storage server,而storage server的配置文件中会列举出所有的tracker server。这就决定了storage server和tracker server之间的连接由storage server主动发起,storage server为每个track
2016-08-04 15:16:39 10749 2
原创 百度糯米app中关闭网页或窗口的方法,99%的人都不知道,网上也找不到
前端时间我们公司做了一款使用百度钱包的移动网页支付进行支付的产品,用户通过百度钱包、百度糯米扫描我们产品的二维码,选择商品,点击支付将会自动调用百度钱包进行支付,支付成功后返回成功页面,在我们的成功页面有关闭网页按钮,点击关闭按钮或者返回按钮将会关闭页面
2016-08-04 10:23:39 3763 1
原创 fastdfs分布式文件系统文件上传、下载、删除交互过程讲解
fastdfs中的工程流程:首先客户端client 调用fastdfs的api,获取可用的tracker server ,再调用tracker server 获取可用的组,tracker server 通过负载均衡返回一个最优的storage server,这样客户端与client就建立了连接,client就可以调用storage server对文件进行上传、删除和追加的操作。
2016-08-03 10:51:51 10428 5
原创 fastdfs分布式文件系统之tracker server介绍
tracker server是FastDFS文件系统的协调者,其主要作用是负载均衡和调度。Tracker server在内存中记录分组和Storage server的状态等信息,不记录文件索引信息,占用的内存量很少。另外,客户端(应用)和Storage server访问Tracker server时,Tracker server扫描内存中的分组和Storage server信息,然后给出应答。由此可以看出Tracker server非常轻量化,不会成为系统瓶颈。
2016-08-02 21:47:41 7487 1
原创 fastdfs分布式文件系统之Storage server介绍
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器(tracker)主要做调度工作,就像公交车站里面的调务员一样,它负责通过负载均衡选出最优的存储节点(storage)。存储节点(storage)顾名思义就是负责存储、数据同步、数据的操作的一个服务。
2016-08-02 17:11:36 4595 1
百度文档下载器
2021-03-30
fastdfs与dubbo整合实现分布式服务接口
2016-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人