Brooks Lv

不留余地,不遗余力!

JVM

jvm

2019-07-28 21:05:22

阅读数 12

评论数 0

session一致性问题及token实现

目录 cookie出现之前 cookie session 概述 工作原理 集群session丢失 session一致性问题解决方法 基于IP-hash处在均衡 服务器session复制 session统一缓冲 三种session一致性问题解决方法的适用情况 session的...

2019-07-14 21:42:41

阅读数 18

评论数 0

SpringBoot实现原理

最普通的SpringBoot应用启动类 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @Sprin...

2019-07-09 09:27:21

阅读数 43

评论数 1

SpringBoot-基于spring的约定优于配置

springBoot和spring的关系 首先明确SpringBoot是基于Spring的。在我们实际使用Spring Boot进行项目开发的过程中,往往只需要几个很简单的注解配置就能够将应用启动运行了,相比于传统的Spring项目而已,这种提升大大地提高了我们的研发效率。然而,这种便捷性则是通...

2019-07-09 09:23:17

阅读数 54

评论数 1

Mycat+druid+zk实现多租户

前言 Mycat的应用场景之一就是实现多租户,多租户应用,每个应用一个库,但应用程序只连接 Mycat,从而不改造程序本身,实现多租户化;接下来我们使用mycat,结合druid拦截sql添加注释头,利用zk修改mycat配置文件中的schema、dataNode节点等信息,来实现多租户。 三...

2019-07-07 08:09:09

阅读数 84

评论数 0

Mycat实战

目录 配置详解 server.xml schemal.xml rule.xml mycat实战 单库大表拆分 跨库分表 读写分离 第一种方式 第二种方式 配置详解 server.xml <!DOCTYPE mycat:server SYSTEM &...

2019-06-30 21:32:43

阅读数 38

评论数 1

Mycat

目录 概述 为什么用 mycat优势 数据库分片 垂直拆分 垂直分库 垂直分表 水平拆分 大数据表拆分成小表 常用策略 拆分带来的问题 1、跨库JOIN的问题,导致查询失败 2、跨分片数据排序分页 3、全局序列问题 4、分布式事务问题 MyCAT重要概念 ...

2019-06-30 21:32:26

阅读数 35

评论数 2

Spring AOP

目录 为什么实现AOP 硬编码 OOP AOP AspectJ spring AOP 基于注解的spring aop开发 基于XMl的开发 Spring AOP的实现过程 AOP实现原理 JDK动态代理 CGLib动态代理 什么是AOP 面向切面编程是一种思想,其编...

2019-06-25 09:31:37

阅读数 62

评论数 1

Spring IOC

目录 IOC控制反转 控制反转 依赖注入 IOC是谁控制了谁,反转了什么? 依赖注入是谁依赖谁,注入了什么? IOC和DI的对比 IOC容器 概念 组件Bean 概念 作用域 组件Bean注册 基于XML 基于java配置 自动装配 IOC控制反转 控制反转 ...

2019-06-25 09:30:18

阅读数 37

评论数 0

【JVM】- 分代、GC算法

一、分代 左图是运行时数据区逻辑图,右图是分代逻辑图,右图中上边部分是JDK1.8之前的,下图是JDK1.8之后的;两张图中相同颜色代表相同的区域。 从图中我们可以得出,新生代和老年代是属于堆的;在JDK1.8之前,方法区也称为老年代,JDK1.8之后,取消了老年代,取而代之的是元空间Me...

2019-06-02 09:13:40

阅读数 36

评论数 0

【JVM】- 运行时数据区

一、什么是JVM JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。java语言“一次编译,到处运行”,正是由于jvm的存在,才得以实现。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码文...

2019-06-01 16:47:52

阅读数 29

评论数 1

Maven项目配置tomcat插件

tomcat插件如下: <build> <plugins> <plugin> <groupId>org.apa...

2019-05-30 11:40:12

阅读数 41

评论数 2

【并发编程】- 乐观锁,悲观锁

并发

2019-05-26 21:47:26

阅读数 35

评论数 1

【并发编程】-- 原子性、可见性、有序性

上篇博客我们提到了Java内存模型,而Java内存模型的建立是围绕三个特征建立的:原子性、可见性、有序性。 那么可见性可能出现的问题例如脏读,主内存和工作内存之间的共享变量操作方式,保证了数据可见性,另外volatile的强制刷新增强了可见性; 有序性可能出现的问题例如单例的双重锁隐藏的安全性...

2019-05-20 16:14:07

阅读数 952

评论数 2

【并发编程】- JMM和happens-before规则

涉及到并发,我们通常会想到两方面,一方面是使用多线程实现程序并发,另一方面是使用锁防止程序并发。不管是哪一方面都涉及到两大核心,三大性质。 两大核心分别是Java内存模型、Happen-Before原则。三大性质分别是原子性、可见性、有序性。 在并发编程中主要需要解决两个问题:一、线程之间如何...

2019-05-19 21:43:56

阅读数 44

评论数 0

分布式基础-序列化性能对比

序列化理解 序列化就是将java对象转化为字节文件;反序列化就是将字节文件转化为java对象。 比如我们用到Entity都是需要实现序列化接口的。java平台允许我们在内存中创建一些可服用的对象(例如Entity),也即是在一个JVM进程中允许创建可复用对象。如果在同一个JVM进程中(可以理解为架...

2019-05-12 15:13:17

阅读数 47

评论数 0

分布式基础-网络通信之NIO

上篇文章介绍了BIO,是阻塞式的输入输出。客户端和服务端在发起请求和响应请求的时候需要保持同步连接,如果数据源或客户端没有数据或请求,或者请求量太大,都会造成线程阻塞,从而影响效率,浪费资源。 从JDK1.4开始,Java提供了一些列改进的输入输出处理的新功能,被称为新IO,即NIO,新增了许多...

2019-05-04 11:13:52

阅读数 38

评论数 0

分布式基础-网络通信之BIO

IO 什么是IO IO即输入/输出,是input和output的缩写。输入输出是所有程序都必须的部分--使用输入机制,允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据)、用户输入数据(键盘、鼠标);使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘、光盘、显示器等存储设备中,或显...

2019-04-27 20:44:47

阅读数 59

评论数 1

CGLib动态代理

在spring AOP中,通常会用cglib动态代理来生成AOProxy对象。cglib动态代理和JDk动态代理的不同之处在于cglib动态代理是通过继承被代理类,生成的动态代理类是被代理类的子类,然后通过重写业务方法来实现代理。 1、定义被代理类 public class cglibPerson...

2019-04-21 19:19:01

阅读数 46

评论数 1

JDK动态代理

代理一般分为三种:静态代理、JDk动态代理、CGLib动态代理;我们常说的代理模式一般只静态代理;mybatis的mapper接口主要应用JDK动态代理;Spring的AOP主要应用JDk动态代理和CGLib动态代理。本文主要介绍JDK动态代理。 静态代理 原理 静态代理由被代理类,代理类,...

2019-04-14 19:11:38

阅读数 64

评论数 1

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