centos6搭建nexus+jenkins+maven+gitlab持续集成持续部署(一) centos搭建nexus+jenkins+gitlab持续集成持续部署安装配置Nexus搭建私服界面元素介绍仓库集合本地maven配置私服安装配置Nexus官网页面下载nexus解压文件mkdir /usr/local/nexustar -zxvf nexus-2.14.15-01-bundle.tar.gz /usr/local/nexus解压后能看到有两个文件夹nexu...
每天10分钟-Class.forName()与ClassLoader有什么区别 在 java 中 Class.forName() 和 ClassLoader 都可以对类进行加载。ClassLoader 就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到 JVM 中。Class.forName() 方法实际上也是调用的 CLassLoader 来实现的。Class.forName(St...
每天10分钟-Arthas进阶使用 Arthas-Java诊断工具1.基础命令2.JVM相关3.class/classloader相关4.monitor/watch/trace相关5.options6.管道7.后台异步任务8.WebConsole9.其他特性10.命令列表1.基础命令help——查看命令帮助信息cat——打印文件内容,和linux里的cat命令类似pwd——返回当前的工作目录,和linux命令类似cls——...
每天10分钟-Arthas初探 Arthas-Java诊断工具欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢...
Java的三种代理模式 目录一.代理模式简介1.1静态代理1.2动态代理1.3Cglib代理一.代理模式简介 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外地功能操作,即扩展目标对象的功能. 使用到编程的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需要修改,可以通过代理的方式来扩展该方法 举个例子来说明...
(二)命令行与管控台-基础操作 rabbitmqctl stop_app:关闭应用rabbitmqctl start_app:开启应用rabbitmqctl status:节点状态rabbitmqctl add_user username password:添加用户rabbitmqctl list_users:列出所有用户rabbitmqctl delete_user username:删除用户rabbitmqctl...
(一)RabbitMQ核心概念 RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,rabbitmq是使用Erlang语言来编写的,并且rabbitmq是基于AMQP协议优点:- 开源,性能优秀,稳定性保障- 提供可靠性投递模式(confirm),返回模式(return)-与SpringAMQP完美的整合,API丰富-集群模式丰富,表达式配置,HA模式,镜像队列模型-保...
Mycat入门(四)之Mycat的分片join Mycat目前版本支持的跨分片join,主要有四种方式实现:1.全局表:一个真实的业务系统中,往往存在大量字典的表,它们与业务之间的关系可以理解为”标签”当业务表因为规模进行分片以后,业务表与这些字典表之间的关联就成了比较棘手的问题.字典表的特性: -变动不频繁 -数据量总体变化不大 -数据规模不大,很少有超过数十万条记录全局表的特性:...
Mycat入门(三) ER表:Entity-Relationship 实体关系 子表的记录与所关 联的父表记录存放在同一个数据分片上,即子表依赖于父表,通过表分组(Table Group)保证数据 Join 不会跨 库操作.表分组(Table Group)是解决跨分片数据 join 的一种很好的思路,也是数据切分规划的重要一条规则全局表:一个真实的业务系统中,往往存在大量的类似字典表的表,这些表基本上很少变动...
Mycat入门(二) Cobar的十一个秘密:1.Cobar会假死:原因->不可能吧,据说Cobar是NIO的非阻塞,其实,Cobar前端是NIO的,而后端跟mysql的交互是阻塞模式,其NIO只给出了框架,还未实现.2.Cobar高可用的陷阱:原因->分片节点配置了两个数据源,每个节点会对数据源进行心跳检测,默认是第一个,频率是10秒钟一次,当心跳失败后,会自动切换到第二个数据源进行读写,假如Cob...
Mycat入门(一) 对于海量数据处理,按照场景,主要分为两种类型:联机事务处理(OLTP)和联机分析处理(OLAP):1. 联机事务处理(OLTP)也称为面相交易的处理系统,其基本特征是原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果2. 联机分析处理(OLAP)是指通过多维的方式对数据进行分析,查询和报表,可以同数据挖掘工具,统计分析工具配合使用,增强决策分析能力关系型数据库和非关系型...
第十二章 Java内存模型与线程 DCL单例(双锁检测)public class Singleton{private volatile static Singleton instance;public Singleton getInstance(){if(instancenull){synchronized(Singleton.class){if(instancenull){instance=new Singlet...
第七章 虚拟机类加载机制 类的生命周期:类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载,验证,准备,解析,初始化,使用和卸载7个阶段.其中验证,准备和解析3个部分统称为连接.类加载的过程:加载,验证,准备,解析和初始化1.加载阶段,虚拟机需要完成3件事情:a.通过一个类的全限定名来获取定义此类的二进制字节流b.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构c.在内存中...
第十三章 线程安全与锁优化 Java语言中各种操作共享的数据分为以下5类:不可变,绝对线程安全,相对线程安全,线程兼容和线程对立线程安全的实现方法:1.互斥同步:同步是指在多个线程并发访问共享数据时,保证共享数据在同一时刻只被一个(或者是一些,使用信号量的时候)线程使用.而互斥是实现同步的一种手段,临界区,互斥量和信号量都是主要的互斥实现方式.因此,在这4个字里面,互斥是因,同步是果;互斥是方法,同步是目的. 最基...
第四章虚拟机性能监控与故障处理工具 数据包括:运行日志,异常堆栈,GC日志,线程快照(threaddump/javacore文件),堆转储快照(heapdump/hprof文件)等.-Dcom.sun.management.jmxremote 开启JMX管理功能(JDK1.6以上默认开启)jpsJVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程,它是使用频率最高的JDK命令行工具...
第三章垃圾收集器与内存分配策略 对象存活判定算法:2种1.引用计数算法:给对象添加一个引用计数器,有地方引用它时,计数器就加1,引用失效时,计数器减1.任何时刻,计数器为0的对象,是不可能再被使用的 优点:实现简单,判断效率也很高 缺点:很难解决对象之间相互循环引用的问题,对象A,B相互引用,引用计数不为02.可达性分析算法: 通过一系列称为"GC Roots"的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径称...
第二章Java内存区域与内存溢出异常 JVM内存模型及特征:堆: 1.JVM管理内存中最大的一块,被所有线程共享 2.唯一目的是存放对象实例和数组 3.垃圾搜集器管理的主要区域 4.可扩展,通过-Xmx和-Xms来控制 5.如果在堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemoryError异常虚拟机栈: 1.线程私有 2.局部变量表所需的内存空间在编译期间完成分配 3.该区域规定了两...
IDEA切换远程分支提交代码 场景还原公司该项目的Git上有dev,test,master分支,同事提交代码至dev分支,笔者将idea的分支切换为dev并拉取最新代码,然后直接将本地dev的代码提交至test分支,发现无法切换远程分支,进行代码提交解决方案经过多次尝试,终于成功实现,IDEA是可以切换远程分支的,只不过…正常人很难找到,
IDEA中文乱码 场景还原springboot项目中的配置文件,带有中文注释,将配置文件提交到git,或者用本地记事本打开,发现是unicode编码,而不是中文,检查了下文本编码都是UTF-8,很奇怪~~解决方式打开设置勾选Transparent native-to-ascii conversion,会将所有字符转成ascii编码保存(实际上就是转成unicode转义序列)...