自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

转载 Dubbo Telnet调用

Dubbo服务发布之后,我们可以利用telnet命令进行调试、管理。Dubbo2.0.5以上版本服务提供端口支持telnet命令,下面我以通过实例抛砖引玉一下:1.连接服务 测试对应IP和端口下的dubbo服务是否连通,cmd命令如下 正常情况下,进入telnet窗口,键入回车进入dubbo命令模式。telnet localhost 208802.查看服务列表查看服...

2018-06-07 19:57:10 2376

转载 可靠消息的最终一致性

消息发送一致性是指产生消息的业务动作与消息发送的一致。也就是说,如果业务操作成功,那么由这个业务操作所产生的消息一定要成功投递出去,否则就丢消息。消息发送一致性如何保障使用XAJMS中的XA系列接口,可以提供分布式事务支持。 但引用了XA方式的分布式事务,又会带来很多的局限: (1)要求业务操作的资源必须支持XA协议(并不是所有资源都支持XA) (2)两阶段提交协议的成...

2018-05-13 19:51:50 1271

转载 分布式事务XA和JTA

在分布式系统中,事务的ACID原则是否能够保证呢?答案是不能,Not even close! 以原子性为例,在有多个系统的分布式系统中,一个分布式事务是在不同的系统内部执行的,我们没有办法保证它们能够同时完成,或者都不做。...

2018-05-13 10:10:04 3317

转载 Spring事务

Spring中事务隔离级别TransactionDefinition.ISOLATION_DEFAULT(-1):这是默认值,表示使用底层数据库的默认隔离级别。TransactionDefinition.ISOLATION_READ_UNCOMMITTED(1):该隔离级别表示一个事务可以读取另一个事务修改但还没有提交的数据。该级别不能防止脏读和不可重复读,因此很少使用该隔离级别。Tra...

2018-05-12 17:23:33 279

转载 Dubbox(三)

原文:http://www.jianshu.com/p/7399effb192a无论是Dubbo还是Dubbox,包括在之前《聊聊Dubbox(一):为何选择》中介绍的其他框架,其本质都是远程调用框架,而对于远程调用如果没有分布式的需求,其实是不需要用这么重的框架,只有在分布式的时候,才有Dubbo这样的分布式服务框架的需求,说白了就是个远程服务调用的分布式框架,其重点在于分布式的治...

2018-05-06 15:25:18 278

转载 Dubbox(二)

原文:http://www.jianshu.com/p/c602b347de880. 准备安装注册中心:Zookeeper、Dubbox自带的dubbo-registry-simple;安装DubboKeeper监控:https://github.com/dubboclub/dubbokeeper;以上两点准备,不是本文重点,不做详细介绍,安装比较简单,自行查阅相关资料学习。1....

2018-05-06 15:24:13 265

转载 DubboX(一)

原文:http://www.jianshu.com/p/0b6e2c9200141. 前言随着现在互联网行业的发展,越来越多的框架、中间件、容器等开源技术不断地涌现,更好地来服务于业务,解决实现业务的问题。然而面对众多的技术选择,我们要如何甄别出适合自己团队业务的技术呢?对于人来说,鞋子过大,可能影响奔跑的速度,鞋子过小,可能影响身体的成长。技术对于业务也是如此的关系。所以,相对...

2018-05-06 15:22:17 243

原创 Intellij IDEA运行类,不检查其他类的错误

问题有的时候我们需要运行一个Test,但是其他类存在语法错误。如果我们正常启动,即使这个Test不会运行到这个错误的类,他也必须要求我们把语法错误处理掉,错误的类一个还可以,手动处理就可以,如果有许多的情况下就麻烦了,这里我们可以选择不编译运行就可以了操作步骤run config中 设置不检查就可以了 ...

2018-04-27 11:05:52 10666 5

转载 JAVA

基础 //collect(toList()) 方法由 Stream 里的值生成一个列表 Stream.of("a", "b", "c").collect(Collectors.toList()); //一种类型的值转换成另外一种类型 Stream.of("a", "b", "c").map(e->e.to

2018-04-22 12:37:59 184

原创 idea 常用快捷键

command +数字: 打开关闭小边窗 1:project esc:不关闭小窗口,光标回到代码编辑区 command+`:多个工程window切换 command+E:选择最近处理的文件进行跳转 command+o:搜索项目中的类 ,按两次 搜索包括jar中的类 shift+command+o:搜索项目中的类 ,按两次 搜索包括jar中的类 option+comma...

2018-04-21 15:55:24 225

转载 lombok

mark一下https://www.jianshu.com/p/365ea41b3573https://blog.mythsman.com/2017/12/19/1/

2018-04-11 17:48:37 220

转载 深入理解JVM虚拟机 Java内存模型与线程

内存交互操作lock 作用于主内存的变量,把变量标识为一条线程独占的状态unlock 作用于主内存的变量,把处理锁定状态的变量释放read 作用于主内存的变量,把变量从主内存传输到线程的工作内存中load 作用于工作内存的变量,把read操作从主内存得到的变量放入工作内存的变量副本中use 作用于工作内存的变量,把工作内存的变量值传递给执行引擎assign 作用于工作内...

2018-04-08 16:59:17 177

转载 dubbo使用(一)

启动时检查Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check=”true”。可以通过 check=”false” 关闭检查,比如,测试时,有些服务不关心,或者出现了循环依赖,必须有一方先启动。关闭某个服务的启动时检查 (没有提供者时报错):<dubbo:reference in...

2018-04-03 17:18:51 223

转载 深入理解JVM虚拟机 线程安全与锁优化

java操作共享数据分类不可变 不可变的对象一定是线程安全的。java中基本数据类型,只要被定义为final关键字则保证了不可变的。如果是一个对象,那就需要保证对象的行为不会对其状态产生影响—-把对象中带有状态的变量都声明为final。绝对线程安全 相当严格,“不管运行时环境如何,调用者额都不需要任何额外的同步措施”。大多数都不是绝对的线程安全的。相对线程安全 我们通常意义上说的线...

2018-04-03 09:47:00 479

转载 Java多线程-线程通信ThreadLocal

等待通知wait() wait()将当前线程置入“预执行队列”中,并且在wait()所在的代码行处停止执行,直到接到通知或被中断。在调用wait()前,线程必须获得该对象的对象级别锁,即只能在同步方法或者同步块中调用wait(),在执行wait()后,当前线程释放锁。在从wait()返回前,线程与其他线程竞争重新获取锁。如果调用wait()没有持有适当的锁,则抛出异常。 notify() ...

2018-03-29 11:23:50 370

转载 Java多线程-Lock

ReentrantLockReentrantLock可以和synchronized达到一样的效果,并且扩展功能上也更加强大,而且使用更加灵活。 Lock lock=new ReentrantLock(); //加锁 lock.lock(); //取消锁 lock.unlock();等待通知模式: synchron...

2018-03-28 16:39:21 341

转载 Java多线程-补充

线程的状态Thread.State枚举//线程实例化后没有执行start()NEW//线程进入运行的状态RUNNABLE//等待锁的时候BLOCKED//线程执行了Object.wait()方法后所处的状态WAITING//线程执行了Thread.sleep,等待状态TIMED_WAITING//线程被销毁的状态TERMINATED线程组可以...

2018-03-27 22:32:31 172

转载 Java多线程-定时器Timer

Timer执行不结束public class MyTask extends TimerTask { public void run() { System.out.println("运行了代码"); }}//延迟5000毫秒后执行Timer timer=new Timer();timer.schedule(new MyTask(),5000);我...

2018-03-26 21:56:01 354

转载 Java多线程-变量并发访问

synchronized同步方法非线程安全:多个线程堆同一个对象的实例变量进行并发访问时,产生“脏读”,取到的数据是被更改过的。 线程安全:获取实例变量时,经过同步处理。“非线程安全”的问题在于“实例变量”中,方法内部的私有变量是不会有“非线程安全”问题的。多个线程共同访问1个实例变量,则可能出现“非线程安全”的问题。处理方式是在方法前加synchronized,让方法变成同步的方法...

2018-03-25 17:25:04 1424

转载 Java多线程-基础

java实现多线程的方式继承Thread类实现Runnable接口线程共享数据重写Thread实现public class MyThread extends Thread { private int count=5; @Override public void run() { super.run(); while(co...

2018-03-25 10:31:10 177

转载 深入理解JVM虚拟机 虚拟机类加载机制

类加载顺序加载验证准备解析初始化使用卸载验证、准备、解析,统称为连接。 加载、验证、准备、初始化和卸载是顺序是确定的。解析阶段不一定。出现以下5种情况需要立即“初始化”遇到new、getstatic、putstatic、invokestatic这四条指令。java场景是(1)new、(2)读取或者设置一个类的静态字段(final,已在编译器把结果放入常量池的静态...

2018-03-22 20:16:44 254

转载 Linux 用户和用户组管理

用户管理创建账号//此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/samuseradd –d /usr/sam -m sam//新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组useradd -s /bin/sh -g group –G adm...

2018-03-17 14:18:53 192

转载 深入理解JVM虚拟机 性能监控与故障处理工具

JDK监控和故障处理 名称 描述 jps jvm process status tool,显示指定系统内所有的hotspot虚拟机进程 jstat jvm statistics monitoring tool,用于收集hotspot虚拟机各方面的运行数据 jinfo configuration info for java,显示虚拟机配置信息...

2018-03-17 13:48:55 315

转载 Linux 文件、目录

ls -ldr-xr-xr-x 2 root root 4096 Dec 14 2012 bin第一部分 d 当为[ d ]则是目录 当为[ - ]则是文件; 若是[ l ]则表示为链接文档(link file); 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置); 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置...

2018-03-16 17:58:10 193

转载 深入理解JVM虚拟机 性能分析实战

案例1情况:选用64位的JDK,堆大小固定12GB问题:网站经常是定期,长时间失去响应,GC太长,回收12GB的堆,一次Full GC停顿14秒解决方式:1.通过64位JDK使用大内存。2.使用若干32位虚拟机建立集群使用资源。第一种:控制Full GC频率,则需要大多数对象的生存时间不应该太长。大部分对象都是 朝生夕灭,才能保证超大堆能正常使用而没有Full GC第二种:在一...

2018-03-16 15:13:52 399

转载 Java8-Lambda(1)

匿名内部类实现匿名内部类仍然是一个类,只是不需要程序员显示指定类名,编译器会自动为该类取名。因此如果有如下形式的代码,编译之后将会产生两个class文件public class Main { public static void main(String[] args) { new Thread(new Runnable(){ @Overr...

2018-03-13 18:05:06 253

转载 深入理解JVM虚拟机 垃圾收集和内存分配

如何确认一个对象已经死了垃圾收集器在对堆进行回收前,第一件事情就是要确认那些对象已经死了,哪些对象还活着。我们看以下几种方法引用计数算法 给对象添加一个引用计数器,当有一个地方引用它的时候,计数器+1,当引用失效的时候就-1;0表示已经不能再被使用了,需要被回收。这种效率很高,但是当遇到相互循环依赖的时候就出现问题了,Java虚拟机没有使用这种方法来管理内存。 我们来看一个例子...

2018-03-11 22:47:34 192

原创 Java并发编程(-)基础

多线程一定快吗由于线程有创建和上下文切换的开销,短时间的操作会比单线程更慢如何减少上下文切换无锁并发编程:多线程竞争锁,会引发上下文切换,所以可以减少锁的使用,如,按照数据的ID按照Hash取模分段,不同的线程处理不同的段CAS算法:Java的Atomic包使用这个来更新数据,不需要加锁使用最少线程:避免创建不需要的线程协程:单线程中实现多任务调度,在单线程中维持多任务间的切换...

2018-03-11 14:35:25 308

原创 RPC原理 简述

如何调用他人的服务消费方以本地调用方式调用服务中间过程吧方法、参数等组装成消息体找到服务地址(ip+端口),把消息发到服务端解码调用本地服务返回结果如何透明的调用远程服务动态代理,在调用的时候织入远程调用逻辑如何发布服务当集群环境,不可能服务方告诉消费方。所有引入zookeeper这类服务注册表,服务费和消费方都通过zookeper进行注册,关系都由他来维持。...

2018-03-08 21:41:59 317

转载 深入理解JVM虚拟机 内存区域

Java虚拟机运行时数据区程序计数器(线程私有) 是一个较小的内存区域,可以看做是当前线程所执行的字节码的行号指示,由于Java是多线程的,线程中断切换需要恢复执行位置,所以每个线程都需要一个独立的程序计数器来记录当前线程执行的位置。虚拟机栈(线程私有) 是Java方法执行的内存模型,生命周期和线程相同。每个方法在执行时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法...

2018-03-08 14:19:43 350

转载 Executor

ExecutorsExecutors为Executor,ExecutorService,ScheduledExecutorService,ThreadFactory和Callable类提供了一些工具方法,类似于集合中的Collections类的功能newCachedThreadPoolpublic static ExecutorService newCachedThreadPool...

2018-03-04 19:15:14 205

原创 Spring Quartz

Quartz JobDetailJobDetailFactoryBean扩展了Quartz的JobDetail,任务必须是一个类<!-- 通过JobDetailBean实现 --> <bean name="jobDetail" class="org.springframework.scheduling.quartz.JobDetailBean" ...

2018-03-04 14:28:19 227

原创 Spring Cache

缓存过期策略FIFO(First In First out):先见先出,淘汰最先近来的页面,新进来的页面最迟被淘汰,完全符合队列。LRU(Least recently used):最近最少使用,淘汰最近不使用的页面LFU(Least frequently used): 最近使用次数最少, 淘汰使用次数最少的页面TTL(Time To Live):存活期,从缓存创建到到期的一个时间段T...

2018-03-04 10:35:27 209

原创 事务基础知识

事务基础特性:ACID原子性 事务中的任何一个操作,只要有一个失败,则都失败一致性 事务成功后,数据库的状态和他的业务规则一致,数据保持一致隔离性 两个事务间,不会产生任何干扰持久性 事务一旦提交,必须持久化到数据库中并发问题读脏数据:A事务读取B事务未提交的数据不可重复读:A事务两次读取数据产生不同的结果(B事务中途提交了修改或删除任务) 解决:需要加行级锁...

2018-03-02 17:23:06 246

原创 Spring AOP注解

@Aspect通配符*:匹配任意字符,只能匹配一个元素..:匹配任意字符,可以匹配多个元素+:按类型匹配指定类的所有类,必须在类名后面,继承或者扩展指定类的所有类,也包括本身逻辑运算符&&(and):与操作,切点的交集||(or):或操作,切点的并集!(not):非操作,切点的反集//匹配com.sunjie包下所有的get方法@Befor...

2018-03-02 15:12:34 1255

原创 弹幕功能实现

介绍最近公司年会,需要做一个弹幕功能。需要用户在手机上发送消息,然后在大屏幕上显示。功能问题功能还是相对简单的,主要考虑几个问题多用户并发发送消息,需要一条一条显示,而不能直接刷屏大屏幕消息推送问题解决方案第一个问题比较好解决,后端接受消息存入队列,然后开一个定时任务pop出数据就行。 第二个问题,参考这个篇文章,使用websocket实现,h5开启消息监...

2018-03-02 14:53:18 2450

转载 Spring AOP编程

术语连接点(Joinpoint) 程序执行的位置,spring支持方法连接点切点(Pointcut) 定位特定的连接点,一个切点可以匹配多个连接点增强(Advice) 织入的一段程序代码目标对象(Target) 增强逻辑的织入目标类引介(Introduction) 一种特殊的增强,它为类增加一些属性和方法,动态为类实现一些原本为实现的接口织入(Weaving) 将增强添...

2018-02-24 21:51:36 165

转载 Spring容器事件

事件体系有三个重要的概念事件源:事件产生者事件监听注册表:一个地方保存监听器事件广播器:把消息发布给监听器事件类以下是已经有的事件,用户可以自定义事件 1. ApplicationContextEvent:容器事件,有四个子类(启动、刷新、停止、关闭) 2. RequestHandleEvent:web事件监听器接口ApplicationListener事件...

2018-02-13 22:48:54 295

转载 Spring容器

内部机制AbstractApplicationContext的refresh方法刻画了Spring容器启动后所执行的各项操作 //初始化BeanFactorypostProcessBeanFactory(beanFactory);//调用工厂后处理器//反射找到所有实现BeanFactoryPostProcessor接口的Bean,调用postProcessBeanFactory...

2018-02-13 22:12:27 169

转载 SpringWeb项目测试模版

package cn.sunjie.component.auth;import org.junit.Before;import org.junit.Ignore;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowir...

2018-02-10 14:41:02 411

JVM高级特性与最佳实践

_深入理解Java虚拟机_JVM高级特性与最佳实践+第2版_220_

2018-04-08

空空如也

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

TA关注的人

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