自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 Nginx 相关介绍

Nginx的产生没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。然而,这些服务器在设计之初受到当时环...

2019-11-11 16:55:44 152

转载 dubbo+zookeeper集群配置

集群服务注册到多台zookeeper配置: <dubbo:registryprotocol="zookeeper"address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181"/> 分成多组注册中心: <dubbo:registryid="chinaRegistry"prot...

2019-11-03 18:42:16 526

转载 偏向锁、轻量级锁、自旋锁、重量级锁

1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对);2. AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是高并发下,性能还不如synchronized,不同情况下性能表现很不稳定;3. LongAdder性能稳定,在各种并发情况下表现都不错,整体表现...

2019-10-30 14:47:57 269

转载 java虚拟机创建对象优化策略总结

java在内存中创建对象流程示意图1.编译器通过逃逸分析,确定对象是在栈上分配还是在堆上分配。如果是在堆上分配,则执行步骤2.2.如果tlab_top(TLAB起始内存值) + size(对象大小)<= tlab_end(TLAB终止内存值),则在在TLAB上直接分配对象并增加tlab_top 的值,如果现有的TLAB不足以存放当前对象执行步骤3.3.重新申请一...

2019-10-11 11:16:19 244

转载 记一次使用visual studio2017 .net项目运行报Oracle连接 类型初始值设定项引发异常解决方法

步骤1. 下载ODAC安装包步骤2. 解压缩,解压缩这个zip包,把里面的文件都解压到一个文件夹里,我是解压到D:\ODAC112040Xcopy_64bit,然后打开cmd,进入到这个文件夹。步骤3. 安装ODAC包 在cmd中运行install.bat批处理文件:输入"install.bat all D:\OracleClient ODAC"(不含双引号)。这里有几个参数需要特别注...

2019-07-31 09:04:43 260

转载 Spring MVC 配置类 WebMvcConfigurerAdapter

WebMvcConfigurerAdapter配置类是spring提供的一种配置方式,采用JavaBean的方式替代传统的基于xml的配置来对spring框架进行自定义的配置。因此,在spring boot提倡的基于注解的配置,采用“约定大于配置”的风格下,当需要进行自定义的配置时,便可以继承WebMvcConfigurerAdapter这个抽象类,通过JavaBean来实现需要的配置。...

2019-07-03 09:16:04 502

原创 spring事务管理与传播

事务传播行为什么叫事务传播行为?听起来挺高端的,其实很简单。即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。例如:methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自...

2019-06-26 17:40:22 288 1

原创 面试题

一、3个线程顺序打印ABC10次4种解法1.巧妙使用余package com.mythread.test; import java.util.concurrent.atomic.AtomicInteger; public class T { public static void main(String argv[]) { AtomicInteger synObj ...

2019-04-17 08:17:56 109

转载 设计模式

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两...

2019-04-11 18:52:13 123

转载 Zookeeper总概

zookeeper是一个开源的分布式协调服务.是典型的分布式数据一致性的解决方案.zookeeper可以保证以下分布式一致性的特性1.顺序性:同一客户端发起的事务请求,最终会严格的按照发出顺序应用到zookeeper上2.原子性:事务请求的执行结果在集群机器上要么全部成功,要么全部失败,不存在部分成功,部分失败的结果.3.单一视图:客户端无论连接到哪个zookeeper服务端...

2019-03-22 20:27:17 113

转载 深入解析Redis中常见的应用场景

前言Redis是一个key-value存储系统,现在在各种系统中的使用越来越多,大部分情况下是因为其高性能的特性,被当做缓存使用,这里介绍下Redis经常遇到的使用场景。下面话不多说了,来一起看看详细的介绍吧。Redis特性一个产品的使用场景肯定是需要根据产品的特性,先列举一下Redis的特点:读写性能优异 持久化 数据类型丰富 单线程 数据自动过期 发布订阅 分布式...

2019-03-21 18:15:26 166

转载 activemq 信息优先级

我们可以在发送消息时,指定消息的权重,broker可以建议权重较高的消息将会优先发送给Consumer。在某些场景下,我们通常希望权重较高的消息优先传送;不过因为各种原因,priority并不能决定消息传送的严格顺序(order)。 JMS标准中约定priority可以为0~9的数值,值越大表示权重越高,默认值为4。不过activeMQ中各个存储器对priority的支持并非完全一...

2019-03-16 20:36:37 233

原创 orcle

mysql  在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.(不停的删除修改导致)解决办法:(1)我们可以通过一个nop操作(不产生对数据实质影响的操作), 来修改表.  比如: 表的引擎为innodb , 可以 alter table x...

2019-03-10 18:11:25 77

原创 shell基本

#!/bin/sh#This is to show what a example looks like.echo "My First Shell!"echo "This is current directory."/bin/pwdechoecho "This is files."/bin/ls#!/bin/sh/bin/date +%F &gt;&gt; /tes...

2019-03-09 15:50:07 141

转载 哨兵机制的原理

如果我们不用哨兵,如何实现主从故障的转移呢?这事儿得手动来实现:1、在从节点slave-1执行 slaveof no one ,将从节点变为主节点;2、其它的节点,执行 slaveof slave-1的ip port,变为slave-1的从节点,并从新节点复制数据;当然,有了哨兵机制我们就不用这么费事儿了,它的原理就是用raft算法实现选举机制,选出一个哨兵节点(哨兵也有主节点)来完成...

2019-03-03 22:40:41 996

转载 sentinel.conf配置

1.常用的配置port 26379# sentinel announce-ip &lt;ip&gt;# sentinel announce-port &lt;port&gt;dir /tmp################################# master001 #################################sentinel monit...

2019-03-03 22:38:38 3598

转载 深入浅出Redis-redis底层数据结构

1、概述    相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-value数据库。        在《Redis设计与实现》这样描述:    Redis 数据库里面的每个键值对(key-value)都是由对象(object)组成的:   ...

2019-03-03 12:16:54 182

转载 分布式系统唯一ID生成方案汇总

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1. 数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者需要排序的结果很有帮助。...

2019-02-28 21:02:38 113

原创 crontab命令

1、crontab命令概念crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或...

2019-02-27 21:42:46 18618

转载 类加载顺序

一、类加载做了哪些事?  之前没有进行类加载 1.类加载,同时初始化类中静态的属性(赋默认值) 2.执行静态代码块 3.分配内存空间,同时初始化非静态的属性(赋默认值) 4.如果声明属性的同时有显示的赋值,那么进行显示赋值把默认值覆盖 5.执行匿名代码块 6.执行构造器   7.返回内存地址二、类加载的顺序 1.static 变量 2.static 代码块 3.成员变...

2019-02-27 10:19:17 209

转载 Linux查看日志常用命令

1.查看日志常用命令    tail:         -n  是显示行号;相当于nl命令;例子如下:            tail -100f test.log      实时监控100行日志            tail  -n  10  test.log   查询日志尾部最后10行的日志;            tail -n +10 test.log    查询10...

2019-02-24 20:19:27 513

转载 Linux常用命令大全

最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考:系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显...

2019-02-24 20:19:05 4208

转载 VMware虚拟机设置centos固定ip地址

固定ip的目的因为平时做实验时不能同时操作几台电脑.所以只能靠虚拟机解决.但是每次虚拟机重启以后有可能ip发生变化,所以就设置虚拟机固定ip地址.最终达到的效果为,VMware中的虚拟机能够固定ip,同时能够连上外网.1. 修改VMware的虚拟网络编辑器打开VMware虚拟网络编辑器.(编辑–&gt; 虚拟网络编辑器)选中NAT模式,修改一些配置就行了.我的ip是(192.16...

2019-02-24 17:01:47 94

转载 QPS与TPS

TPS: (每秒事务处理量(TransactionPerSecond))一个表达系统处理能力的性能指标,每秒处理的消息数(Transaction Per Second), 每秒事务处理量 - 性能测试的术语介绍 每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。TPS是LoadRunner中重要的性能参数指标。 一个事务是指一个客户机向服务器发送请求然后服务器做出反应...

2019-02-24 13:15:30 124

转载 jvm系列(5)垃圾收集器

这里讨论的收集器基于JDK1.7Update 14之后的HotSpot虚拟机,这个虚拟机包含的所有收集器如下图3-5所示: 上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定...

2019-02-23 21:22:02 140

转载 jvm系列(4)JVM参数设置、分析

不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不...

2019-02-23 11:45:11 181

转载 Java中static关键字的作用

static关键字主要有两种作用:第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,实现某个方法或属性与类而不是对象关联在一起具体而言,在Java语言中,static主要有4中使用情况:成员变量、成员方法、代码块和内部类(1)static成员变量:Java类提供了两种类型的变量:用static关键字修饰的静态变量和不用static关键字修饰的实例变量...

2019-02-22 16:42:10 97

转载 Java中volatile关键字实现原理

原文地址http://www.cnblogs.com/xrq730/p/7048693.html,转载请注明出处,谢谢 前言我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用。本文详细解读一下volatile关键字如何保证变量在多线程之间的可见性,在此之前,有必...

2019-02-22 16:42:01 128

转载 jvm系列(3)java finalize方法总结、GC执行finalize的过程

注:本文的目的并不是鼓励使用finalize方法,而是大致理清其作用、问题以及GC执行finalize的过程。 1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或...

2019-02-22 16:41:41 543

转载 jvm系列(2)深入理解Java虚拟机

一.运行时数据区域  Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、堆、本地方法栈、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区。  1.1程序计数器  程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码的指令,分支、循环、跳转、异常处理、线程恢复等...

2019-02-21 22:00:51 315

转载 jvm系列(1)java虚拟机的基本结构

1.类加载子系统:从文件系统或者网络中加载class信息,而加载的这些信息就会存放一块称之为在方法区的内存空间中。2.方法区:就是存放类信息,各种常量信息(对于Java8, HotSpots取消了永久代,那么是不是也就没有方法区了呢?当然不是,方法区是一个规范,规范没变,它就一直在。那么取代永久代的就是元空间。它可永久代有什么不同的?存储位置不同,永久代物理是是堆的一部分,和新生...

2019-02-20 22:23:31 281

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除