摘要:1、spring clound feign,实质上是一个封装了rest请求的客户端。调用方法的时候,就如同调用本地方法一样 2、spring clound feign 的源代码,主要分为两部分。 2.1 @EnableFeignClients 注解。主要的作用,是通过反射将相关的bean(有@Fei
阅读全文
摘要:Eureka server使用的不是spring mvc的框架,而是使用Jersey。 Eureka server ,启动的流程,追本溯源,是在 DiscoveryClient里面,使用这个构造方法 @Inject DiscoveryClient(ApplicationInfoManager app
阅读全文
摘要:单点登录,本地登录,架构图如下: 代码例子: package com.teligen.demo.controller; import com.teligen.demo.configuration.JedisCache; import com.teligen.demo.dto.LoginDTO; im
阅读全文
摘要://java 开发环境,使用HotSpot的虚拟机,64位,windows 开发环境 Java HotSpot(TM) 64-Bit Server VM (25.151-b12) for windows-amd64 JRE (1.8.0_151-b12), built on Sep 5 2017 1
阅读全文
摘要:信号量,Semaphore,一个限定访问线程数量的工具类,属于并发包java.util.concurrent 里面的类。 Semaphore,内部提供了构造方法(包含默认的非公平信号量构造方法,已经可设置是否公平的构造方法)、获取信号量acquire()、尝试获取信号量tryAcquire()、 规
阅读全文
摘要:ReentrantLock,英文意思是可重入锁。从实际代码实现来说,ReentrantLock也是互斥锁(Node.EXCLUSIVE)。与互斥锁对应的的,还有共享锁Node.SHARED ReentrantLock 集成了Lock接口,Lock接口主要功能有上锁lock()、尝试上锁tryLock
阅读全文
摘要:可以参考 https://blog.csdn.net/qq_30572275/article/details/80297047 ,写得更加好 https://blog.csdn.net/mulinsen77/article/details/84583716?utm_medium=distribute
阅读全文
摘要:不建议使用(单独)zookeeper 做分布式队列,有几点原因,以下原因摘抄于curator的官网: 1、zookeeper有1MB的传输限制。而在队列中,拥有很多的数据节点,通常包括数千个,如果有较多的很大的znode,将会降低zookeeper的启动速度。需要自己显式地注明initLimit和s
阅读全文
摘要:之前一直不理解ThreadLoca 这个对象的作用,也不知道为何会有内存泄露。前几天看到了一篇文章,讲解关于TheadLocal的知识,感觉挺好的,做下笔录。package com.teligen.demo.service;import java.util.concurrent.LinkedBloc
阅读全文
摘要:转自:https://blog.csdn.net/u010199866/article/details/81744382 linux java7升级到java8 版权 1.第一步先卸载所有老的jdk版本 目录 1.第一步先卸载所有老的jdk版本 2.第二步安装新版本 rpm -qa | grep j
阅读全文
摘要:参考: https://blog.csdn.net/SoWhatWorld/article/details/103817786?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_so
阅读全文
摘要:参考: https://blog.csdn.net/Dongguabai/article/details/80865599。如有侵权,请联系本人删除! 入口: import org.springframework.boot.SpringApplication; import org.springfr
阅读全文
摘要:两个引擎都是使用B+tree 数据结构作为索引 不同点: 1、INNODB的主键必须要有,同时也是聚集索引,INNODB的数据文件本身就是索引文件;而MYISAM则是存储了数据的地址 2、INNODB的辅助索引,会存储主键的地址(所以建议不要把主键的长度设置过大,一般用自增的数字即可),使用辅助索引
阅读全文
摘要:事务的传播性:1、PROPOGATION_REQUIRES --需要在一个事务中执行2、PROPOGATION_SUPPOTS --不需要在一个事务中执行,如果有事务,也可以执行3 PROPOGATION_NOT_SUPPORTED --不支持在一个事务中执行,如果在一个正在运行的事务中执行,则会被
阅读全文
摘要:1、直接操作内存,使用Unsafe 这个类 2、使用 getIntVolatile(var1, var2) 获取线程间共享的变量 3、采用CAS的尝试机制(核心所在),代码如下: public final int getAndAddInt(Object var1, long var2, int va
阅读全文
摘要:synchronize 和Lock: 1、synchronize 系java 内置关键字;而Lock 是一个类 2、synchronize 可以作用于变量、方法、代码块;而Lock 是显式地指定开始和结束位置 3、synchronize 不需要手动解锁,当线程抛出异常的时候,会自动释放锁;而Lock
阅读全文
摘要:callable 有返回值,并允许抛出异常 runnable 没有返回值,不会抛出异常
阅读全文
摘要:1、ListIterator 可以在遍历的时候,调用add()添加元素 2、ListIterator提供了更多的一些方法,如previous()、hasPrevious() 等
阅读全文
摘要:ArrayList 本质是一个数组。 优势:追加元素到数组末尾的时候速度快,同时检索元素的速度也快。 劣势:如果要插入一个元素到数组之间慢;如果要追加的元素数量多于数组的容量,则需要频繁扩容使用Arrays.Arrays.copyOf 重新创建一个合适容量的数组 LinkedList 本质是一个li
阅读全文
摘要:StringBuffer和StringBuilder ,使用append()追加字符串的时候,都是同一个对象,里面的源代码如下: StringBuffer 源代码如下文: @Override public synchronized StringBuffer append(String str) {
阅读全文