mycat分库分表初体验

2020-09-20
阅读 6 分钟
4.7k
一.Mycat分表配置导入mycat源码:如下mycat有三个重要的配置文件1.server.xml {代码...} 2.schema.xml(逻辑库配置) {代码...} schemal标签下的table标签解读(mycat中的逻辑表):name:逻辑表的名称,名称必须唯一dataNode:值必须跟dataNode标签中的name对应,如果值过多可以用 dataNode="dn$0-99,cn$100-199"rule:分片规则...

Netty解决粘包半包问题

2020-08-17
阅读 8 分钟
7.1k
服务端分两次读取到了两个数据包, 第一次读取到了完整的包和另外一个包的部分内容,第二次读取到了另一个包的剩余内容, 这被称为 TCP 拆包;

Netty应用入门及重要组件

2020-08-01
阅读 9 分钟
3.2k
Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

JVM之类加载机制及应用

2020-04-06
阅读 4 分钟
989
虚拟机将类的数据从Class文件加载到内存,并对数据进行校验,转换解析,初始化,最终形成可以被虚拟机使用的Java类型,称为JVM的类加载机制。

JVM中Class文件结构

2020-03-29
阅读 2 分钟
1.1k
平台无关性:是建立在操作系统上,虚拟机厂商提供了多种运行在各种不同平台的虚拟机,它们都可以载入和执行字节码,从而实现程序的“一次编写,到处运行”。

从servlet到spring mvc源码

2019-10-28
阅读 12 分钟
3k
Java Servlet 简称servlet是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

Redis常见应用场景

2019-10-26
阅读 2 分钟
2.2k
常应用于队列,栈,可根据下标索引查找或范围内查询。微信公众号订阅消息列表:小明useId:001关注了阿里巴巴招聘和腾讯招聘公众号,1.阿里巴巴先发了一条推送001:lpush userId:001:gongzhonghao 0012.腾讯再发了一条推送002:lpush userId:001:gongzhonghao 002;显示最新订阅消息三条:lrange userId:001:gongzhonghao 0 2

Redis数据结构及重要命令

2019-10-24
阅读 3 分钟
1.1k
1.查看所有键:keys * 2.键总数 dbsize //若存在大量键,一般线上不建议使用此命令 3.检查键是否存在:exists key //存在返回1,不存在返回0 4.删除键:del key //返回删除键个数,不存在返回0,del key key1则是删除两个键 5.键过期:expire key seconds //expire name 5表示5秒后过期 ttl查看剩余的过期时间 6.键的数据结构类...

消息队列概述及ActiveMQ使用

2019-09-22
阅读 9 分钟
2.6k
一般认为,消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。

spring基本组件及注解

2019-08-28
阅读 6 分钟
2.9k
spring基本组件如上图: spring配置文件 最初使用xml配置文件,然后转向注解。 {代码...} @ComponentScan扫描规则 {代码...} value的值说明是扫描此包下面的所有类 includeFilters表示使用自定义的过滤器,此时useDefaultFilters应该为false屏蔽默认过滤器,自定义的才生效(demo中表示只扫描Controller类型的类) 另外的exc...

zookeeper实战之服务注册与发现

2019-07-04
阅读 3 分钟
7.2k
zookeeper应用场景 回顾下zk应用场景: 数据发布与订阅 服务注册与发现 分布式锁 分布式队列 master选举 配置中心 命名服务 负载均衡 zookeeper实现服务注册与发现 服务注册与发现 再来看看zk在服务注册与发现中的应用: 代码实现逻辑: 服务注册: {代码...} 发现服务: {代码...} 再讲讲几个关键点1.注册服务的时候需...

分布式系统基础知识

2019-06-18
阅读 2 分钟
3.9k
一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统,这是分布式系统,在不同的硬件,不同的软件,不同的网络,不同的计算机上,仅仅通过消息来进行通讯与协调。

NIO之Reactor模式,Netty序章

2019-06-13
阅读 12 分钟
3.1k
“反应”即“倒置”,“控制逆转”,具体事件处理程序不调用反应器,而向反应器注册一个事件处理器,表示自己对某些事件感兴趣,有时间来了,具体事件处理程序通过事件处理器对某个指定的事件发生做出反应。

BIO与AIO模型在JDK实现,Netty序章

2019-06-09
阅读 14 分钟
2.2k
BIO编程 回顾下Linux下阻塞IO模型: 再看看Java的BIO编程模型: {代码...} 过程: 服务端提供IP和监听端口 客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接 如果连接成功建立,双方就可以通过套接字进行通信 最早的时候服务器端是针对一个连接新建一个线程来处理→演变成服务端针对每个客户端连接把...

设计模式之适配器模式

2019-05-19
阅读 3 分钟
1.1k
适配器模式:将一个类的接口转换为客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 场景:水果店卖有橘子和苹果,橘子用橘子包装盒,苹果用苹果包装盒,顾客A来买橘子,但是没有橘子包装盒了,则用苹果包装盒暂时替代一下。 {代码...} 测试代码如下: main方法里面,new一个橘子,再获取一个橘子包装实...

工厂模式总结

2019-05-18
阅读 1 分钟
1.8k
原则:1.解耦:把对象的创建和使用的过程分开。2.工厂负责对象的创建,包括其init方法的调用,黑盒创建工厂。(外界不需要知道过程)3.面向接口编程:使用者只管使用,只知其接口而不知实现类。

工厂模式(二)之建造者模式

2019-05-17
阅读 5 分钟
1.7k
紧接着上节讲到抽象工厂模式,接下来讲建造者模式。 水果店随着业务发展,想要举行各类促销活动来提升人气。 会员购买橘子+苹果+香蕉(可能还有别的水果)立减15元 假日促销则橘子+苹果+香蕉(可能还有别的水果)立减10元 问题: 1.套餐组合包含各类水果的组合,较复杂(后续套餐越来越复杂)。 2.套餐的创建步骤基本确定...

工厂模式(一)之抽象工厂模式

2019-05-16
阅读 5 分钟
1.5k
即静态工厂模式1.将对象的创建和使用分开;2.将生产过程集中,便于集中管理;3.当需要创建的对象类有变动时,就不用在所有new 的地方修改了,直接修改工厂类即可;

解密Mybatis,手写Mybatis框架(二)

2019-05-08
阅读 10 分钟
2.3k
简化版Mybatis实现思路 1.创建SqlSessionFactory实例. 2.实例化过程中,加载配置文件创建configuration对象. 3.通过factory创建SqlSession对象,把configuaration传入SqlSession. 4.通过SqlSession获取mapper接口动态代理 5.通过代理对调sqlsession中查询方法; 6.sqlsession将查询方法转发给executor; 7.executor基于JDBC...

解密Mybatis,手写Mybatis框架(一)

2019-05-07
阅读 5 分钟
1.7k
Mybatis快速入门 步骤: 1.加入mybatis的依赖 2.添加Mybatis的配置文件 3.场景介绍 4.编写实体类丶mapper接口及mapper.xml文件 5.编写测试代码 demo: {代码...} mapper接口: {代码...} TUserMapper.xml: {代码...} mybatis-config.xml: {代码...} db.properties: {代码...} 测试类: {代码...} } Mybatis两种编程模型 1...

Java单例模式实现

2019-04-25
阅读 4 分钟
2.7k
单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好、用对单例模式,还真得费一番脑筋。本文对Java中常见的单例模式写法做了一个总结,如有错漏之处,恳请读者指正。

JVM虚拟机笔记之运行时数据区域(一)

2019-03-19
阅读 3 分钟
1.4k
本文参照深入了解Java虚拟机-周志明,纯粹做做笔记,写写自己觉得较为重要的内容方便理解Java虚拟机运行时数据区如下:1.程序计数器程序计数器(PC寄存器)是一块较小的内存空间,看做是当前线程所执行的字节码的行指示器。1.字节码解释器工作时改变这个计数器的值来选取下一条需要执行的字节码指令,如分支丶循环丶跳转丶...

吃透动态代理,解密spring AOP源码(四)

2019-03-18
阅读 2 分钟
1.9k
前面讲到了动态代理的底层原理,接下来我们来看一下aop的动态代理.Spring AOP使用了两种代理机制:一种是基于JDK的动态代理,一种是基于CGLib的动态代理.

吃透动态代理,解密spring AOP源码(三)

2019-03-14
阅读 3 分钟
2.9k
上节讲到动态代理生成的类为$Proxy0,但是在我们项目里面却不存在,实际我们是用了这个实现类调用了方法,想要知道这个问题,首先要理解类的完整生命周期.

吃透动态代理,解密spring AOP源码(二)

2019-03-13
阅读 3 分钟
1.2k
紧接着上节,为了解决静态代理的问题,出现了动态代理, 假设动态代理是一个代购公司,私有变量Object factory为动态生成的具体的真实对象,可代购对应的产品 。代码:

批量导入数据(excel表格)写入数据库

2017-03-23
阅读 5 分钟
7.6k
批量导入数据库思想之一:页面上传excel表格后台解析excel表格的数据暂放数据结构中(list或Map,自己看情况处理),再把list里面的数据批量存入数据库。直接贴代码:

解析excel数据并做检验及保存到数据库

2017-02-27
阅读 7 分钟
3k
此例为初次参与企业项目做的,代码粗糙勿见怪: {代码...}

解析excel表格的数据放入List中

2017-02-27
阅读 6 分钟
4.3k
{代码...} PageData为一个类封装了页面的参数:如下 {代码...}

StringUtils工具类的常用方法

2017-02-24
阅读 8 分钟
4.7k
StringUtils 方法的操作对象是 java.lang.String 类型的对象,是对 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。

mysql实现nextVal功能,即使用代理表实现其他表的主键自增长

2017-02-15
阅读 2 分钟
6k
首先创建表:CREATE TABLE sys_sequence ( NAME varchar(50) NOT NULL, CURRENT_VALUE int(11) NOT NULL DEFAULT '0', INCREMENT int(11) NOT NULL DEFAULT '1', PRIMARY KEY (NAME) ) 插入记录:INSERT INTO SYS_SEQUENCE(NAME,CURRENT_VALUE,INCREMENT) VALUES('TBL_FS', 1,1) 执行函数:DELIMITER $$