- 博客(71)
- 资源 (7)
- 收藏
- 关注
原创 虚拟机网络说明和配置
通常虚拟机的网络有三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。bridged(桥接模式)在这种模式下,VMWare虚拟出来的操作系统就像是局域网中和宿主机一样的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独
2020-11-23 16:14:03
529
转载 Java线程的6种状态及切换(透彻讲解)
Java中线程的6种状态1.初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2.运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。3.阻塞(BLOCKED):表示线程阻
2020-07-03 16:48:14
411
原创 redis分布式锁的实现总结
在Java中,关于锁我想大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。通常我们以进程锁synchronized 、Lock来实现它,对于分布式程序,就不能用进程锁了,这时候常用的是分布式锁。什么是分布式锁分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的:加锁在沙滩上踩一脚,留下自己的脚印,就对应了加锁操作。其他进程或者线程,看到沙滩上已经有脚印,证明锁已被别人持有,则等待。解锁把脚印从沙滩上抹去,就是解锁的过程
2020-05-26 10:37:21
525
原创 玩转springboot启动banner定义所得
最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目:还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈!于是出于最初的好奇,研究了项目的源代码。看到...
2020-03-16 11:47:56
7267
1
原创 跨域(Access-Control-Allow-Origin)解决方案详解
文章目录浏览器的同源安全策略跨域报错跨域解决方案CORSResponse支持跨域springboot支持跨域Java中设置多个Access-Control-Allow-Origin跨域访问基于nginx配置请求的CORSJSONP方案后端接口返回js原生实现jsonpjQuery实现jsonpvue.js实现jsonpJSONP的优缺点其它方式支持跨域浏览器的同源安全策略同源策略,它是由Net...
2019-12-09 16:08:34
64013
原创 UTM:流量统计和分析基础
UTMUTM是 Urchin Tracking Module 的缩写,是 Google 用来追踪网址(URL)的格式。Urchin其实是Google在2004年买下的一间软件公司,这个公司的产品 Urchin 软件随后也演变成今日的Google Analytics。 现在UTM成了跟踪参数的标准,所以无论是Google还是百度统计都是支持的。第三方引荐是网站流量来源的主要途径之一,很多时候我们...
2019-12-09 14:15:00
1965
原创 mysql修改datadir目录的方法总结(基于rpm安装)
场景若mysql 安装初步使用rpm默认将db安装到/var/lib/mysql/路径后,想更改db(datadir)路径,怎么处理呢? 网站参考了很多,实验没有成功,看到有提SELinux的,研究了一下果然如此。现整理总结了一下,仅供参考。测试整理步骤说明简单安装步骤更改db目录的2中方式注意:修改datadir,要Linux要关闭SELinux(参看附录)。有的文章说要关闭ip...
2019-11-14 11:54:33
2088
原创 SQL中IN和EXISTS用法的区别和选择
结论in()适合B表比A表数据小(或者in内是固定项)的情况exists()适合B表比A表数据大的情况当A表数据与B表数据一样大时,in与exists效率差不多,可任选一个使用.优先使用exists,因为exists能使用索引。in原理说明select * from A where id in(select id from B)以上查询使用了in语句,in()只执行一次,它查出B表...
2019-11-08 17:32:56
2720
3
原创 tomcat日志详解
文章目录tomcat日志配置tomcat 日志文件详解catalina.outcatalina.YYYY-MM-DD.loglocalhost.YYYY-MM-DD.loglocalhost_access_log.YYYY-MM-DD.txthost-manager.YYYY-MM-DD.logmanager.YYYY-MM-DD.log访问日志详细配置tomcat日志文件切割tomcat日志配...
2019-10-30 17:03:25
15166
原创 SpringCache组件使用和基于SpringBoot整合redis和ehcache
文章目录一:redis(memcache)和ehcacheehcacheredis(memcache)ehcache和redis比较二:Spring缓存抽象三:几个重要概念&缓存注解四:SpEL上下文数据五:开始使用1.开始使用前需要导入依赖2.然后在启动类注解@EnableCaching开启缓存3.缓存@Cacheable4.配置@CacheConfig5.更新@CachePut6.清除...
2019-10-11 15:22:42
1168
原创 二维码和app扫码下载
文章目录二维码基本原理二级码生成在线二维码生成java代码生成二维码前端二维码生成app扫码下载二维码基本原理参考:https://cli.im/help/48235二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条...
2019-09-25 11:43:33
2122
原创 nginx反向代理服务contextpath的问题解决
文章目录问题描述解决方案sub_filter方案使用重定向单独域名访问问题描述现在的企业服务,往往不是单体的,同时可能涉及中间件的访问如dubbo、solr、mq等。对于中间件的监控页面访问,如果直接暴露在公网,肯定这安全。需发对中间件访问进行安全加固,方法主要有:(1)限制使用IP白名单访问。(2)安全密码访问,不使用简单密码,对于没有密码的,可以使用basic认证,强密码访问。(3)...
2019-09-18 10:23:51
12314
原创 web打包app(h5+app)版本自动更新的实现
文章目录背景说明原生app自动更新实现android自动更新实现ios自动更新实现h5+app的特点说明h5+app自动更新实现背景说明web打包的app(也称为h5+app),是指将基于html5等移动端web技术,开发的web应用打包成的app。区别于原生app,5+app相当于给web应用加上了一层本地程序(ios、android等)的壳子。其原理是,使用了原生程序的webview组件,...
2019-09-11 17:21:23
12169
2
原创 基于nginx实现全局停服页面
文章目录需求背景nginx简介详细配置涉及知识点需求背景线上运营服务,由于安全检查要求,应用全面升级等场景,这些都需要停服务,这个时候就需要基于域名提供友好的停服说明页面。由于平台服务涉及的服务比较多,每个服务设计实现停服页面比较麻烦,升级和维护成本高。本问介绍的是为使用nginx反向代理的服务,提供全局的停服页面。nginx简介Nginx是一款高性能的 HTTP 和反向代理服务器,由俄罗...
2019-09-10 11:25:08
1130
原创 zookeeper集群迁移(扩容)详解
臭味相投的朋友们,我在这里:猿in小站:http://www.yuanin.netcsdn博客:https://blog.csdn.net/jiabeis简书:https://www.jianshu.com/u/4cb7d664ec4b微信订阅号“猿in”说明:本文zk为zookeeper缩写。文章目录zk集群原理Zookeeper迁移(扩容/缩容)迁移目标迁移步骤步骤1:新增节...
2019-09-04 16:52:03
5554
4
原创 将H5站点打包成app完美攻略
分享自我的微信订阅号“猿in”,可以搜索关注。文章目录整理说明HBuilder介绍打包方法问题解决参考整理说明本文介绍了基于HBuilderX,将自主开发的H5网站,使用云打包app的方法,以及打包app过程中,遇到的问题和解决方法。在HBuilderX中开发的应用,或者第三方的h5应用,可以创建项目,提交到云端打包生成apk(Android平台)和ipa(iOS平台)。如果本地配置好对应...
2019-08-22 16:46:00
49056
5
原创 bitset(位图)原理与用法
文章目录Bitset基础Java的Bitset使用场景解析参考分享自我的微信订阅号“猿in”,可以搜索关注。Bitset基础介绍bitset(bitmap)也就是位图,由于可以用非常紧凑的格式来表示给定范围的连续数据而经常出现在各种算法设计中。类实现了一个按需增长的位向量。位 set的每个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试...
2019-08-09 15:52:28
15702
4
原创 阿里巴巴开源的诊断工具Arthas介绍
下载地址:https://download.csdn.net/download/jiabeis/11459480
2019-08-02 14:17:54
877
原创 过滤器、监听器、拦截器简介及在SpringBoot使用方法
过滤器依赖与servlet容器,对几乎所有的请求起作用,在容器启动是初始化调用init方法,以后每个请求都调用doFilter(),主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。在SpringBoot中的应用拦截器的定义: //注册器名称为customFi...
2019-08-01 10:16:56
342
原创 虚拟化技术比较:OpenStack、KVM、VMWare和Docker
一、虚拟化1.什么是虚拟化虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。2.什么是虚拟化技术虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些操作系统本身。即使只是CP...
2019-08-01 10:16:17
7708
原创 linux服务器open too many files异常的排查
线上遇到很多打印 open too many files 异常1:首先看下是否是系统限制导致的ulimit -aopen files 查看linux系统允许单进程打开的最大句柄数2: 如果系统限制的打开句柄过低,可以通过如下设置:vim /etc/security/limits.conf#在最后加入soft nofile 65535hard nofile 655353:统计进...
2019-06-27 11:06:10
788
原创 前后端分离项目session的处理(shiro+react)
参考:https://blog.csdn.net/woshiyeguiren/article/details/79194003 [spingmvc + ajax]前端所有请求使用fetch提交:https://blog.51cto.com/zhuxianzhong/2125523?utm_source=oschina-app注意:要改为确保浏览器不在请求中包含凭据,请使用credentia...
2019-04-24 14:44:45
3077
原创 Ajax与XHR
Ajax:异步加载网页技术Ajax用一句话来说就是无须刷新页面即可从服务器取得数据(局部刷新)。注意,虽然Ajax翻译过来叫异步JavaScript与XML,但是获得的数据不一定是XML数据,现在服务器端返回的都是JSON格式的文件。一、Ajax请求过程完整的Ajax请求过程:(1)创建XHR实例 ( XMLHttpRequest 或 ActiveXObject )(2)发出HTTP请求...
2019-04-24 14:20:52
3907
原创 接口文档开发交互工具swagger
swagger:接口文档开发交互工具swagger与spring系列可以完善对接,包括springmvc,springboot,spring-cloud.swagger可以整合dubbo接口,需要配置注册中心,swagger在服务提供者集成,swagger dubbo实现dubbo消费者,代理http请求,访问dubbbo接口。dubbo用于内部rpc调用,支撑软负载均衡,不是web服务,使用...
2019-03-20 15:34:03
353
原创 2019小目标
2018年过去了,明天是除夕,今天是最后一天上班,下午3点可以放假。这算是公司一贯的小福利吧,比较很多it公司,算是不错了。年初跟老婆说这一年的大事儿:孩子上幼儿园,买车,现在看都不错,都算顺利。孩子如愿上了北京的一个公立幼儿园,中间虽有挫折。车也买上了,人生第一俩汽车,大方中级轿车,京牌新能源。虽然发生了几次小的交通事故,但是都不大,人都无恙,如果慢慢也有老司机的感觉了。家庭小矛盾有,也都过去了...
2019-02-03 11:44:28
658
原创 Java滑块验证码原理和实现
文章目录滑块验证码引入滑块验证码原理滑块验证码实现参考滑块验证码引入当前互联网流行使用滑块验证码,如下图是网易严选的登录验证部分。滑块验证码原理很多网站使用滑块验证码提高网站安全性,为了做到真正的验证,必须要走后台服务器。下面是java实现滑块验证的核心步骤:从服务器随机取一张图片,并对图片上的随机x,y坐标和宽高一块区域抠图;根据步骤一的坐标和宽高,使用二维数组保存原图上抠图区...
2019-01-14 15:07:13
17781
16
原创 svn多分支开发合并技巧(idea or tortoiseSVN)
情景和svn多分支合并原理使用svn好多年了(期间也有使用git),一直对分支和合并敬而远之,一来是因为没有特别紧迫的需求,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并的方法不甚了解,这才是硬伤。最近涉及电商项目开发和源码管理,由于紧急活动需求比较多,又要兼顾新的future的开发,需要经常接触分支和合并两项工作。...
2018-12-21 14:09:07
3485
原创 深入理解程序、 jvm实例、进程、线程的关系
深入理解程序、 jvm实例、进程、线程的关系问题引出实验进程的概念线程的概念结论问题引出命令启动了两个java程序,它们之间是什么关系?java程序又和JVM之间是什么关系,它们是共用一个JVM,还是每个java程序,都有一个JVM?进程和程序是什么关系,进程和线程是什么关系?实验用命令启动两个一样的java程序。#java HelloWorld用jvisual观察到有两个Hel...
2018-09-30 10:08:18
1799
原创 js禁止浏览器的回退事件
现在很多的内部系统,一些界面,都是用户手动点击退出按钮的。但是为了避免,用户误操作 点击浏览器后退,或者用鼠标手势后退什么的。容易出现误操作。 所以在有些页面上,适当的禁用浏览器的后退,是可以提高很大的用户体验。 在网上查,可以查到很多js禁用后退的材料。终极方案直接来个终极方案: 查找了好多资料才找到的,这种方式,可以消除 后退的所有动作。包括 键盘、鼠标手势等产生的后退动作。 在...
2018-09-10 15:29:59
1879
原创 js高级:事件绑定多方法,事件冒泡、阻止默认事件和应用
js高级:事件绑定多方法,事件冒泡、事件捕获和阻止默认事件详解本文为大家讲解js事件的高级性能和用法,包括事件绑定多方法、事件冒泡、阻止默认事件等。js高级:事件绑定多方法,事件冒泡、事件捕获和阻止默认事件详解事件绑定多方法传统js实现jquery实现href总结冒泡冒泡的使用阻止默认行为阻止冒泡并阻止默认行为事件绑定多方法传统js实...
2018-09-06 15:47:30
1233
原创 markdown常用语法——花半小时掌握一个好工具
导语 Markdown的语法简洁明了、学习容易,而且功能比纯文本更强,因此有很多人用它写博客。世界上最流行的博客平台WordPress和大型CMS如Joomla、Drupal都能很好的支持Markdown。 完全采用Markdown编辑器的博客平台有Ghost和Typecho。github和csdn都支持使用markdown方案灵活的编写强大美观的类html文档。 m...
2018-08-07 14:13:33
788
原创 高并发下生成订单号的策略
臭味相投的朋友们,我在这里:猿in小站:http://www.yuanin.netcsdn博客:https://blog.csdn.net/jiabeis简书:https://www.jianshu.com/u/4cb7d664ec4b微信免费订阅号“猿in”互联网快速发展的今天,分布式应用系统已经见怪不怪,在分布式系统中,我们需要各种各样的ID,既然是ID那么必然...
2018-07-11 14:06:46
42692
2
转载 java技术书籍推荐(结合技能树)
博主当年高考大学填志愿的时候老师推荐了个电气信息一类的专业,对这个专业的名字一脸懵逼,但是听说可以玩电脑,顿时觉得暗爽,这不就是我时时刻刻日思夜想的生活吗,喝着啤酒和三五好友继续打dota,继续我们的网吧5连黑。谁知开学才知道根本不是这么回事,理想总是自作多情,现实却狠狠的抽自己大嘴巴子,从此踏上不归路。好了言归正传,给大家分享下自己从学校到工作看的一些书籍,也算是一些成长经历吧。在学校的日子还是...
2018-07-05 16:11:13
1866
原创 spring、mybatis实现数据库多数据源和多数据源事务
多数据源就是在一个程序服务里面,需发连接多个数据库。动态数据源在多数据源的基础上,要实现数据源的动态切换。这两种复杂系统的数据库联接有相关性,也有不同应用场景的区别。如要连接两个不同的业务库,一般会使用多数据源,如要动态切换不同数据源的相同业务库,会选择使用动态数据源。分布式事务要支持多数据源的事务,只能用JTA事务管理(没用过 -_-||),而且应用服务器还不能是Tomcat(一直在用tomca...
2018-06-22 17:07:00
4761
1
原创 nginx配置管理浏览器静态缓存策略(浏览器缓存:expires,cache-control,last-modified,etag详细解说)
参考:http://blog.csdn.net/ywh147/article/details/47731387最近最nginx web网站服务优化,对浏览器缓存深入研究了一下,记录一下,方便后来者。参考网上的一张图:每个状态的详细说明如下:1、Last-Modified在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记...
2018-03-22 14:46:20
6172
转载 SpringMVC使用validation完成后端数据校验(理论和实践)
原文地址:使用Spring完成后端数据校验前言数据的校验是交互式网站一个不可或缺的功能,前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验。但是为了避免用户绕过浏览器,使用http工具直接向后端请求一些违法数据,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,如果数据库中出现一个非法的邮箱格式,也会让运维人员头疼不已。我在之前保险产品...
2018-03-16 17:50:26
380
原创 常用安全算法
安全传输除了可以使用https,还可通过安全算法实现。常用的安全算法主要包括数字摘要、对称加密算法、非对称加密算法、信息编码等。 本文介绍常用的安全算法主要包括摘要算法、对称加密算法、非对称加密算法、信息编码、数字签名、数字证书等,介绍各自算法的使用场景和使用方法。数字摘要实现将任意长度的明文通过单向hash函数摘要成固定长度的串。 Hash(明文)-->固定长度的摘...
2018-03-09 15:29:03
323
原创 mysql高级——并发安全控制悲观锁和乐观锁的实现
一、悲观锁 1、排它锁,当事务在操作数据时把这部分数据进行锁定,直到操作完毕后再解锁,其他事务操作才可操作该部分数据。这将防止其他进程读取或修改表中的数据。 2、实现:大多数情况下依靠数据库的锁机制实现 一般使用 select ...forupdate 对所选择的数据进行加锁处理,例如select * from account where name=”Max” for upd...
2018-03-01 13:40:12
617
原创 csdn blog 阔别5年的回归
csdn博客阔别5年的回归 时光飞逝,再成功回归csdn,已经5年后了。做技术开发我有两个习惯,一个是写笔记,一个是写博客。其实一直关注csdn,中间由于账号被盗,也由于自己的主观原因,没能坚持继续写博客,csdn没有,别的地方也没有。 看看自己以前写的东西都是2013的tag,那时稚嫩,但是认真;不全面,但是细致。 再看看每篇文章都有上千近万的阅读,想想青涩的自己,好像...
2018-03-01 11:48:33
266
原创 基于mxgraph的web流程设计器(bpm)
这段时间由于公司要做一个基于jbpm的服务产品(基于商业原因,产品细节不便透漏),需要一个基于web的流程设计器。外话是我是刚进公司的,当时项目组也正头疼,没得什么思路。我们选择了画图功能比较强大的mxgraph,实现web的流程设计器。很长一段时间,由于又要了解jbpm,又研究mxgraph,感觉压力特别大。特别是mxgraph,国内用的人不多,又没有中文文档,只能硬着头皮干了。有一段比较昏暗的
2013-02-02 17:02:35
1379
阿里巴巴开源的诊断工具Arthas介绍.ppt
2019-08-01
(IT or others)技术、研发部工作周报模板 doc 资源--很好很实用
2010-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人