04 2022 档案

摘要:缓存穿透:查一个数据 缓存没有 数据库也没有 下次还是这样 当无数个请求这样会造成很大浪费 解决方法 在缓存中 放入那个key-对应的value 值为空 缓存雪崩 同一时间 大量缓存 突然失效 导致大量的请求倾泻到数据库 解决方法 TTL+随机值 解决大量缓存不会在同一时刻失效 缓存击穿: 一个高频 阅读全文
posted @ 2022-04-30 20:43 花心大萝卜li 阅读(23) 评论(0) 推荐(0) 编辑
摘要:CardTable 由于做YGC时 可能会出现Old区的引用指向y区,那么需要扫描整个old区,效率非常低 所以JVM设计CardTable,将y区和o区分成一个一个card(区分是否有引用指向y区),如果一个o区cardTable中有对象指向y区,那么就将它设为Dirty,下次扫描时,只需要扫描d 阅读全文
posted @ 2022-04-30 16:25 花心大萝卜li 阅读(66) 评论(0) 推荐(0) 编辑
摘要:java -XX:+PrintCommandLineFlags HelloGC 自己指定堆大小 java -Xmn10M -Xms40M -Xmx60M -XX:+PrintCommandLineFlags -XX:+PrintGC HelloGC Xmn10M 新生代大小 Xms40M 最小堆大小 阅读全文
posted @ 2022-04-29 11:09 花心大萝卜li 阅读(508) 评论(0) 推荐(0) 编辑
摘要:1 什么是垃圾? 没有任何引用指向一个对象 或者多个对象 2 如何定位垃圾 1 引用技术 2 跟可达算法 root serching 3 常见垃圾回收算法 1 marksweep 标记清除 容易产生碎片 2 copying 拷贝算法 占用内存 没有碎片效率较高 3 mark compate 标记压缩 阅读全文
posted @ 2022-04-29 08:49 花心大萝卜li 阅读(22) 评论(0) 推荐(0) 编辑
摘要:CMS 三色标记+incremental Update算法 G1 三色标记+SATB算法 ZGC colorPointers颜色指针 阅读全文
posted @ 2022-04-29 08:04 花心大萝卜li 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1 serial 单线程 serial old 常见组合 2 parallel Scavenge 多线程 parallel old 常见组合 3 parNew CMS 常见组合 前面几种 不仅在逻辑上分年轻代和老年代 在物理上也是分为年轻代和老年代 内存两大块 年轻代 老年代 G1 只是在逻辑上分年 阅读全文
posted @ 2022-04-28 13:46 花心大萝卜li 阅读(107) 评论(0) 推荐(0) 编辑
摘要:根据Java虚拟机规范的规定,方法区无法满足内存分配需求时,也会抛出OutOfMemoryError异常,虽然规范规定虚拟机可以不实现垃圾收集,因为和堆的垃圾回收效率相比,方法区的回收效率实在太低,但是此部分内存区域也是可以被回收的。 方法区的垃圾回收主要有两种,分别是对废弃常量的回收和对无用类的回 阅读全文
posted @ 2022-04-28 10:28 花心大萝卜li 阅读(454) 评论(0) 推荐(0) 编辑
摘要:Parallel Scavenge 15 最大是15 因为GC age 占4位 1111 s1 中的对象拷贝到s2 超过50%的话 s1+伊甸区 经过垃圾回收 进入s2里面 超过s2的50%的话 s2中年龄最大的对象 会直接进入老年代 new 出一个对象后 先尝试在栈上分配 能分配 分配栈上 栈上弹 阅读全文
posted @ 2022-04-28 10:28 花心大萝卜li 阅读(34) 评论(0) 推荐(0) 编辑
摘要:栈上分配 无需调整 1小 2 线程私有不会被其他线程所共享 3 没有逃逸 在某一段代码里使用 出了代码块 没人使用 4 标量替换 整个对象T 里面有两个类型 int m int n 可以使用m 和 n 替换对象T 栈上分配不下了 会优先进行本地的分配TLAB 无需调整 当多个线程都向伊甸区做分配时, 阅读全文
posted @ 2022-04-28 09:42 花心大萝卜li 阅读(44) 评论(0) 推荐(0) 编辑
摘要:将内存分为几大块 第一块为新生代 new /young 刚new 出来的对象 新生代包含 eden(伊甸区)和两个survivor 比例为8:1:1 enden区回收之后进入survivor区 新生代大量死去,少量存活,采用复制算法 老年代存活率较高,回收较少 ,采用MC 或者MS 算法 第二块为老 阅读全文
posted @ 2022-04-28 09:16 花心大萝卜li 阅读(64) 评论(0) 推荐(0) 编辑
摘要:1invokeStatic 2invokeVirtual 3invokeInterface 4invokespecial 5invokeDynamic invokeStatic 虚拟机优化 invokeVirtual 多数方法都是用的它 invokeVirtual 自带多态(new 的是哪个对象 就 阅读全文
posted @ 2022-04-28 08:25 花心大萝卜li 阅读(127) 评论(0) 推荐(0) 编辑
摘要:查看具体命令花费多长时间 SELECT * FROM `account`show PROFILES;show PROFILE;SELECT * FROM `account`show PROFILE for QUERY 48 查看第query id 为48 表的运行状态show profile cpu 阅读全文
posted @ 2022-04-27 23:05 花心大萝卜li 阅读(37) 评论(0) 推荐(0) 编辑
摘要:bipush 将100 压栈 istore_1 将100 弹出到局部变量表索引为1的位置 return sipushi 200 因为底层是btye 最多容纳127 若超出 是si200(short)转换为int 类型 压栈 istore_1 弹出到局部变量表中 参数 k 数存放在局部变量表的 sip 阅读全文
posted @ 2022-04-27 16:39 花心大萝卜li 阅读(98) 评论(0) 推荐(0) 编辑
摘要:下一条该执行的指令 存放在PC(程序计数器) 虚拟机的运行 类似这样的循环 while(not end){ 取pc中的位置 找到对应的指令 执行该指令 pc++ } 每一个线程都有自己的PC 计数器 栈在虚拟机中有两块内容 一个是JVM stacks jvm stacks 归线程独有的 线程里面装的 阅读全文
posted @ 2022-04-27 14:16 花心大萝卜li 阅读(30) 评论(0) 推荐(0) 编辑
摘要:因为偏向锁是没有位置存放hashcod 的 因此在调用锁对象的Object.hash()或者System.identity.HashCode()方法会导致偏向锁或轻量锁升级 无锁状态则存放在markward里 重量锁monitor 中 阅读全文
posted @ 2022-04-27 10:36 花心大萝卜li 阅读(20) 评论(0) 推荐(0) 编辑
摘要:run 方法是方法的调用 先去运行run方法里面的 运行完了 在运行main方法里面的代码 但是start 方法是Thread 继承的方法 他可以分支两条线程 一条是run方法 一条是main 主方法 线程3个启动方式1.extends Thread 重写run 方法 new Thread ().s 阅读全文
posted @ 2022-04-27 10:19 花心大萝卜li 阅读(20) 评论(0) 推荐(0) 编辑
摘要:CAS compare and swap 什么是CAS? 假设内存里面放的是0 我们现在多线程访问这个0 每个线程都想给这个0 加1 如果我们想让数据一致 必须先加锁sys JUC这个包出现之后出现了CAS操作 CAS 把内存中的0 拿到CPU中做计算 做完计算后0变成1 然后把1 写回去 写回去的 阅读全文
posted @ 2022-04-26 21:48 花心大萝卜li 阅读(183) 评论(0) 推荐(0) 编辑
摘要:乐观锁,自旋锁 无锁 cas 从CPU读取数据内存 值v 假如是0 修改为1 然后往回写 以前需要上锁 但是乐观锁不上锁了 在往回写的过程中判断 若内存中的数据依然为0 那么就没有线程修改 把0改成1 若其他线程修改 那么在往回写的过程中 会发现线程已经修改 已经不是0了 那么 就继续读取内存中修改 阅读全文
posted @ 2022-04-26 13:11 花心大萝卜li 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-04-26 11:10 花心大萝卜li 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1 new 的时候 向内存申请一块内存空间 此时T对象里面有成员变量 m 此时的m=0 半初始化状态 当执行invokespecial 时会执行该类的构造方法 只有当运行到这里的时候 m=8 a_store 建立关联 volatile 有两大作用 1 线程可见 2 禁止重排 什么叫重排? 当指令看上 阅读全文
posted @ 2022-04-25 23:23 花心大萝卜li 阅读(27) 评论(0) 推荐(0) 编辑
摘要:new 是向内存申请空间 invokespecial 调用空构造器 成员变量附默认值 0 astore 建立关联 t 与内存对象 下面的程序有可能执行指令重排 在int num=8 之前要进行 成员变量附初始值 num=0 但是在这之前 建立关联 会先执行 先建立关联 然后再执行构造方法 会先执行输 阅读全文
posted @ 2022-04-25 22:13 花心大萝卜li 阅读(411) 评论(0) 推荐(0) 编辑
摘要:使用volatile 若果 cpu1 修改的x 和cpu2 修改的y 中 xy 位于同一缓存行 那么 操作x的时候会更新y 操作y的时候会更新x 阅读全文
posted @ 2022-04-25 21:55 花心大萝卜li 阅读(12) 评论(0) 推荐(0) 编辑
摘要:可以比方理发师理发 sysnchronized 是严重阻塞 会将你锁进小屋 什么时候轮到你了 你在出来 这个期间状态是 blocked waiting 是理发师正在理发 cpu正在处理其他线程 这时候 wait() join() lock() 等的状态是waiting 坐在那里等着 理发师啥时候叫他 阅读全文
posted @ 2022-04-25 17:10 花心大萝卜li 阅读(21) 评论(0) 推荐(0) 编辑
摘要:当class 文件加载到内存的时候 可以用agent截获class 文件 并做出修改 当然也可以查看对象的大小 String name; 对应的是oops 成员变量的指针 string 是引用数据类型 正常占8个字节 但开启了oops 普通对象指针压缩 4 int 4字节 byte 1字节 对象引用 阅读全文
posted @ 2022-04-25 10:21 花心大萝卜li 阅读(28) 评论(0) 推荐(0) 编辑
摘要:java -XX:+PrintCommandLineFlags -version 首先 T t=new T();的时候 该内被加载到内存时 该对象是普通对象 1该对象被jvm称为对象头markword 8个字节 2classPointer 指针 也就是t 为4个字节 指向对应的class 3实例数据 阅读全文
posted @ 2022-04-25 09:21 花心大萝卜li 阅读(38) 评论(0) 推荐(0) 编辑
摘要:假如我们new T()对象 首先java.c 编译成。class 字节码 然后将字节码Load到内存 这里会进行双亲委派的过程 如果这个类被加载过,在缓存中 , 那么直接加载, 否则会逐层向上查询是否被加载 首先是application 然后是extention (引用包)最后是bootstrap 阅读全文
posted @ 2022-04-25 09:08 花心大萝卜li 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-04-25 08:42 花心大萝卜li 阅读(19) 评论(0) 推荐(0) 编辑
摘要:字节码层面没有动 只是编译成class文件 具体实现是在jvm 层面 在volatile 执行写操作时 上面的写操作和下面的写操作不能指令重排 同样读的时候 volatile 上面的读操作和下面的读操作不能进行指令重排 volatile 就相当于是内存屏障 保证有序性 阅读全文
posted @ 2022-04-25 08:31 花心大萝卜li 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-04-24 22:03 花心大萝卜li 阅读(14) 评论(0) 推荐(0) 编辑
摘要:添加 //无论添加的是什么数据 他们的value 都是一样的 所以当初在存储数据的时候 将integer 的age 当成key 但是value 是new object 对象当成的value 后面和hashmap 一样的底层原理 阅读全文
posted @ 2022-04-24 21:45 花心大萝卜li 阅读(21) 评论(0) 推荐(0) 编辑
摘要:默认初始化长度 16 数组长度 加载因子 底层主数组 添加元素数量 数组扩容的阈值 用来接受加载因子 调用put方法存储数据 二次散列后尽量解决hash冲突 扰动函数 增加值得不确定性 int i=indexFor(hash,table.length);//是为了算出底层数组的索引 hash值 ,1 阅读全文
posted @ 2022-04-24 19:30 花心大萝卜li 阅读(21) 评论(0) 推荐(0) 编辑
摘要:@AllArgsConstructor @NoArgsConstructor @Data public class Student { private int age; private String name; private double height; } class Bijiaoqi impl 阅读全文
posted @ 2022-04-24 17:02 花心大萝卜li 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-04-24 16:47 花心大萝卜li 阅读(15) 评论(0) 推荐(0) 编辑
摘要:package com.msb.map; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * @author lcc * @version V 阅读全文
posted @ 2022-04-24 14:42 花心大萝卜li 阅读(28) 评论(0) 推荐(0) 编辑
摘要:public class TreeSetTest { public static void main(String[] args) { TreeSet<Integer> treeSet = new TreeSet<>(); treeSet.add(2); treeSet.add(3); treeSe 阅读全文
posted @ 2022-04-24 13:12 花心大萝卜li 阅读(15) 评论(0) 推荐(0) 编辑
摘要:内部比较器 @AllArgsConstructor @NoArgsConstructor @Data public class Student implements Comparable<Student>{ private String name; private double height; pr 阅读全文
posted @ 2022-04-24 11:35 花心大萝卜li 阅读(51) 评论(0) 推荐(0) 编辑
摘要:public class LinkHashSetTest { public static void main(String[] args) { LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>(); linkedHashSet.add 阅读全文
posted @ 2022-04-24 11:06 花心大萝卜li 阅读(37) 评论(0) 推荐(0) 编辑
摘要:List 接口 不唯一 有序 下面实现类为 ArrayList Vector LinkList Set 接口 唯一 无序(无序不等于随机)没有跟索引相关的方法 无法使用普通for循环遍历 @AllArgsConstructor@NoArgsConstructor@Datapublic class S 阅读全文
posted @ 2022-04-24 10:57 花心大萝卜li 阅读(98) 评论(0) 推荐(0) 编辑
摘要:@AllArgsConstructor@NoArgsConstructor@Datapublic class Node { //上个元素地址 private Node pre; //当前存入的元素 private Object object; //下一个元素地址 private Node next; 阅读全文
posted @ 2022-04-24 10:21 花心大萝卜li 阅读(34) 评论(0) 推荐(0) 编辑
摘要:package com.msb; import java.util.Iterator; import java.util.LinkedList; /** * @author lcc * @version V1.0 * @Package com.msb * @date 2022/4/24 9:05 * 阅读全文
posted @ 2022-04-24 09:24 花心大萝卜li 阅读(165) 评论(0) 推荐(0) 编辑
摘要:当new 构造器时 底层长度赋值为10 add方法 这里多了一个线程安全锁 那么他的执行效率低 但是是线程安全的 这里的capacityIncreament默认初始值为0 那么新数组的长度 是旧 数组的两倍 阅读全文
posted @ 2022-04-24 08:18 花心大萝卜li 阅读(7) 评论(0) 推荐(0) 编辑
摘要:依旧是Object类型数组 数组的有效长度 是一个object 类型的数组 但是这个数组是空的 阅读全文
posted @ 2022-04-23 22:53 花心大萝卜li 阅读(9) 评论(0) 推荐(0) 编辑
摘要:查看add 方法 如果添加成功 返回值为true 上面第二行代码是需要数组满了需要扩容才会触发下面传入1-10 均不能满足-elementData 大于0所以不会触发下面的grow 扩容 elementData=10 将老数组的内容拷贝到新数组中去 然后将老数组的指向 指向新数组 阅读全文
posted @ 2022-04-23 22:31 花心大萝卜li 阅读(19) 评论(0) 推荐(0) 编辑
摘要:package com.msb; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * @author lcc * @version V1.0 * @Package com.msb * 阅读全文
posted @ 2022-04-23 22:09 花心大萝卜li 阅读(14) 评论(0) 推荐(0) 编辑
摘要:集合常用方法 public class CollectionTest { public static void main(String[] args) { //接口无法创建对象 Collection collection=new ArrayList(); //集合只能存放引用数据类型 这里的18 是 阅读全文
posted @ 2022-04-23 21:59 花心大萝卜li 阅读(23) 评论(0) 推荐(0) 编辑
摘要:数组,集合都是对多个数据进行存储操作 简称容器 这里的存储是内存层面的存储 而不是持久化存储 1数组特点:一旦制定长度 那么长度被确定 不可以更改 int[] arr=new int[6] 2 数组中只能存放同一种类型数据 int[] arr,String arr[] .. 3缺点:1数组一旦确定长 阅读全文
posted @ 2022-04-23 21:33 花心大萝卜li 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-04-23 21:25 花心大萝卜li 阅读(23) 评论(0) 推荐(0) 编辑
摘要:因为CPU的执行速度会比内存快百倍 当CPU执行第一个指令的时候会等待内存返回的结果在进行计算 但是这期间的时间不能一直阻塞在这里 那么 CPU就会分析后面的指令 如果后面的指令跟上面指令没有直接依赖关系 那就运行后面的指令 CPU为了提高指令的执行效率 就会出现乱序的问题 合并写 WCBuffer 阅读全文
posted @ 2022-04-23 19:52 花心大萝卜li 阅读(193) 评论(0) 推荐(0) 编辑
摘要:[root@node02 node02]# kafka-topics.sh --zookeeper node02:2181,node03:2181/kafka --create --topic xxoo --partitions 2 --replication-factor 3 [root@node 阅读全文
posted @ 2022-04-23 10:59 花心大萝卜li 阅读(51) 评论(0) 推荐(0) 编辑
摘要:当我们要把内存里的数据放进CPU的时候 内存不会只把一个数据放进CPU 而是会将该数据附近?的数据 一批读到CPU 这一批数据叫cache line CPU读取单位为 缓存行 大部分缓存行为64字节 那么这里会产生一个问题 如果x 和 y 在同一个缓存行里 内存64字节 假如cpu1 只需要x 但是 阅读全文
posted @ 2022-04-22 23:23 花心大萝卜li 阅读(54) 评论(0) 推荐(0) 编辑
摘要:package com.msb.zk.config; import org.apache.zookeeper.AsyncCallback; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; i 阅读全文
posted @ 2022-04-22 22:52 花心大萝卜li 阅读(31) 评论(0) 推荐(0) 编辑
摘要:寄存器会先在L1缓存中找,没有继续向下找 离CPU进 速度越快 如果两个线程在同时操作x 分别运行在不同的cpu 怎么解决数据不一致的问题 CPU在访问缓存的时候会经过数据总线 一个线程经过数据总线的时候锁住总线, 使得其他CPU无法访问内存中的其他地址 让CPU空转 效率较低 (老的CPU) 新的 阅读全文
posted @ 2022-04-22 22:52 花心大萝卜li 阅读(54) 评论(0) 推荐(0) 编辑
摘要:ack 为-1 时 是集群设置 是严格同步的 如果flower 10s内没有同步leader的最新数据, 那么就会将它剔除到osr中,而能在10s内同步到数据的flower中则继续在isr中同步leader的后续数据 默认10s发送一次心跳给leader consumer能消费的时producer生 阅读全文
posted @ 2022-04-22 22:05 花心大萝卜li 阅读(181) 评论(0) 推荐(0) 编辑
摘要:package com.msb.zk.ZkTest; import org.apache.zookeeper.ZooKeeper; import java.util.concurrent.CountDownLatch; /** * @author lcc * @version V1.0 * @Pac 阅读全文
posted @ 2022-04-22 13:31 花心大萝卜li 阅读(85) 评论(0) 推荐(0) 编辑
摘要:先启动zookeeper 然后启动kafka 创建topic 在node02 节点 kafka-topics.sh --zookeeper node02:2181/kafka --create --topic xxxx --partitions 2 --replication-factor 2 pa 阅读全文
posted @ 2022-04-21 10:19 花心大萝卜li 阅读(52) 评论(0) 推荐(0) 编辑
摘要:/** * @Package ${PACKAGE_NAME} * @author lcc * @date ${DATE} ${TIME} * @version V1.0 */ 需要勾选上面的两个,然后 ALT+ENTER实现Serilizable接口的类就会有相应的提示 快速定位到方法的代码块的结尾 阅读全文
posted @ 2022-04-21 10:05 花心大萝卜li 阅读(15) 评论(0) 推荐(0) 编辑
摘要:在启动kafka之前要先启动zookeeper每台的broker.id 不同listeners=PLAINTEXT://192.168.1.136:9092log.dirs=/var/msb/kafka-logszookeeper.connect=192.168.1.136:2181,192.168 阅读全文
posted @ 2022-04-20 23:12 花心大萝卜li 阅读(764) 评论(0) 推荐(0) 编辑
摘要:如果zookeeper 挂掉一半一下了 那么拒绝提供服务 因为无法产生leader 就无法进行数据同步 无法数据同步,那么node01和node02节点的数据无法保证数据的一致性 更谈不上最终一致性 当客户端client01 访问zkServer 中的 /oxxx/a 的数据时,会产生一个sessi 阅读全文
posted @ 2022-04-20 14:37 花心大萝卜li 阅读(75) 评论(0) 推荐(0) 编辑
摘要:zookeeper分布式协调 可扩展 可靠性 时序性 快速1扩展性 leader flower observer 读写分离 所有的增删改可以触发给leader 查询可以在flower身上 只有flower才能选举 observer 的级别比flower更优的级别 不会参与投票 当leader 宕机后 阅读全文
posted @ 2022-04-19 20:55 花心大萝卜li 阅读(301) 评论(0) 推荐(0) 编辑
摘要:tar vxzf zookeeper-3.4.14.tar.gz mkdir /opt/msb mv zookeeper-3.4.14 /opt/msbcd conf/cp zoo_sample.cfg zoo.cfgvim zoo.cfgtickTime=2000 心跳毫秒数 服务间心跳为2秒in 阅读全文
posted @ 2022-04-19 19:13 花心大萝卜li 阅读(250) 评论(0) 推荐(0) 编辑
摘要:主节点暴露ip 配置虚拟 ip 这里的主节点用来配置lvs ifconfig ens33:2 192.168.1.100/24 ifconfig ens33:2 down 关闭虚拟ip 其他节点影藏vip 需要设置arp协议 先改内核再改ip cd /proc/sys/net/ipv4/conf/e 阅读全文
posted @ 2022-04-18 23:09 花心大萝卜li 阅读(531) 评论(0) 推荐(0) 编辑
摘要:安装libfastcommon $ tar xzvf libfastcommon-1.0.38.tar.gz $ cd libfastcommon-1.0.38 $ ./make.sh $ sudo ./make.sh install 安装fastdfs $ tar xzvf fastdfs-5.1 阅读全文
posted @ 2022-04-17 19:40 花心大萝卜li 阅读(167) 评论(0) 推荐(0) 编辑
摘要:分析原因:用户权限不够 解决方案: 1、设置root密码: sudo passwd root 2、修改etc/ssh/sshd_config文件: vim /etc/ssh/sshd_config 3.添加配置: 如果有这段,将其注释: #PermitRootLogin without-passwo 阅读全文
posted @ 2022-04-16 22:15 花心大萝卜li 阅读(512) 评论(0) 推荐(0) 编辑
摘要:将文件传输到 usr/local/fastdfs 目录下 yum install unzip 上传文件后解压缩 unzip libfastcommon-master.zip 进入文件 cd libfastcommon-master/ 编译 ./make.sh 安装 ./make.sh install 阅读全文
posted @ 2022-04-16 16:33 花心大萝卜li 阅读(556) 评论(0) 推荐(0) 编辑
摘要:私钥: 私钥自己生成的 openssl genrsa -des3 -out server.key 1024 控制台输入 genrsa 生成并输入一个rsa的私钥 采用des3算法 输出文件 server.key 公钥:由私钥生成、 openssl req -new -key server.key - 阅读全文
posted @ 2022-04-16 13:27 花心大萝卜li 阅读(606) 评论(0) 推荐(0) 编辑
摘要:将这些jar包放在tomcat lib目录下 每个tomcat里面的context.xml中加入<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.43 阅读全文
posted @ 2022-04-15 17:11 花心大萝卜li 阅读(52) 评论(0) 推荐(0) 编辑
摘要:url hash 可以定向存储缓存资源 ip hash 会造成数据倾斜 访问量倾斜 ip全在一个网段 并发量大了话全定位在一台机器上 阅读全文
posted @ 2022-04-15 14:58 花心大萝卜li 阅读(47) 评论(0) 推荐(0) 编辑
摘要:chmod 777 local 传输tomcat到local文件夹下 tar vxzf apache-tomcat-8.5.78.tar.gz rm -rf apache-tomcat-8.5.78.tar.gz cd apache-tomcat-8.5.78/ cd webapps/ cd ROO 阅读全文
posted @ 2022-04-15 14:32 花心大萝卜li 阅读(26) 评论(0) 推荐(0) 编辑
摘要:yum install httpd htpasswd -c -d /usr/local/users zhangyang mv users tengine/conf/ 将设置的账号密码移动到conf文件目录下当访问niginx代理网站错误时可以查看错误日志tail -f error.log locat 阅读全文
posted @ 2022-04-15 13:44 花心大萝卜li 阅读(85) 评论(0) 推荐(0) 编辑
摘要:1正向代理 用户需要访问 国外的网站 需要先访问代理服务器 ,让代理服务器去访问国外网站 2反向代理 相对于服务器端 需要用户访问,但是需要中间插入代理服务器来做 负载均衡 url的hash 节省ip地址 代理服务器和服务器是需要在同一个网段,也就是同一交换机下 一个ip地址对应多个服务 由ngin 阅读全文
posted @ 2022-04-15 12:50 花心大萝卜li 阅读(41) 评论(0) 推荐(0) 编辑
摘要:下载Tengine (Tengine时加强版的Nginx)http://tengine.taobao.org/download.html cd usr/local wget http://tengine.taobao.org/download/tengine-2.3.3.tar.gz 将配置好的网路 阅读全文
posted @ 2022-04-14 22:15 花心大萝卜li 阅读(533) 评论(0) 推荐(0) 编辑
摘要:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 阅读全文
posted @ 2022-04-08 16:34 花心大萝卜li 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-04-05 23:02 花心大萝卜li 阅读(19) 评论(0) 推荐(0) 编辑
摘要:main 方法 用户线程 gc垃圾回收 守护线程 显示的加锁 ReentrantLock 将不安全的代码上锁 最好放在try代码块中 finally放入解锁语句 public class TestLock { public static void main(String[] args) { Test 阅读全文
posted @ 2022-04-05 15:39 花心大萝卜li 阅读(16) 评论(0) 推荐(0) 编辑
摘要:推荐使用实现runnable 接口 /*创建线程方法一*/ public class Test03 extends Thread{ @Override public void run() { for (int i = 0; i <20 ; i++) { System.out.println("继承t 阅读全文
posted @ 2022-04-04 22:11 花心大萝卜li 阅读(25) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示