mycat分库分表初体验

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

Macat数据库中间件入门

2020-08-25
阅读 2 分钟
3.9k
一.什么是数据切分指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。数据切分一般分为两种:垂直切分和水平切分。二.垂直切分按照应用程序功能模块来分多个数据库,就是垂直拆分。优点:◆ 数据库的拆分简单明了,拆分规则明确;◆ 应用程序模块清...

Netty解决粘包半包问题

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

Netty应用入门及重要组件

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

JVM之类加载机制及应用

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

JVM中Class文件结构

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

从servlet到spring mvc源码

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

Redis常见应用场景

2019-10-26
阅读 2 分钟
2.3k
常应用于队列,栈,可根据下标索引查找或范围内查询。微信公众号订阅消息列表:小明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.8k
一般认为,消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。

spring基本组件及注解

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

zookeeper实战之服务注册与发现

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

一致性原理与zookeeper集群

2019-07-01
阅读 5 分钟
2.5k
数据库事务:回顾下数据库的事务,对一条数据的修改操作首先写undo日志,记录的数据原来的样子,接下来执行事务修改操作,把数据写到redo日志里面,万一捅娄子,事务失败了,可从undo里面回复数据。

zookeeper基础

2019-06-23
阅读 4 分钟
2.4k
ZooKeeper致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是Google的Chubby一个开源的实现,也是Hadoop和Hbase的重要组件。

分布式系统基础知识

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

NIO之Reactor模式,Netty序章

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

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

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

Linux网络IO模型

2019-06-05
阅读 2 分钟
2.7k
Linux网络IO模型 阻塞IO模型 1.当应用程序发起网络IO的请求时会调用操作系统recvfrom函数 2.等待系统内核准备数据报(获取网络数据:网卡把数据拷贝到内核) 3.数据报准备好后将数据从内核拷贝到用户空间,即应用程序空间 非阻塞IO模型 一般很少用这个非阻塞模型,因为反复调用消耗CPU IO复用模型 IO复用模型是linux下用的...

Java网络编程基础(二)

2019-06-05
阅读 3 分钟
2.4k
一.TCP TCP是面向连接的丶可靠的字节流协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯. 如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。 TCP数据包中包括序号和确认,所以未按照顺序收...

Java网络编程基础(一)

2019-06-04
阅读 2 分钟
2.6k
开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。

Redis集群主从复制及哨兵模式实现

2019-06-02
阅读 2 分钟
5.7k
Redis主从复制 首先准备机器,我用的是三台linux虚拟机,版本4.0.10. 进入三台机器后先关闭防火墙,我的是centos7.systemctl stop firewalld.service 如图128为配置redis主数据库的机器,其他为从库。 主机128配置只需要放开保护模式让其他机器能连接redis,修改redis.conf: bind 0.0.0.0 -修改为如下表示允许别的ip连接,默...

Redis主从复制与哨兵机制

2019-05-30
阅读 2 分钟
2.3k
1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。

设计模式之适配器模式

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

工厂模式总结

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

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

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

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

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

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

2019-05-08
阅读 10 分钟
2.4k
简化版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.8k
Mybatis快速入门 步骤: 1.加入mybatis的依赖 2.添加Mybatis的配置文件 3.场景介绍 4.编写实体类丶mapper接口及mapper.xml文件 5.编写测试代码 demo: {代码...} mapper接口: {代码...} TUserMapper.xml: {代码...} mybatis-config.xml: {代码...} db.properties: {代码...} 测试类: {代码...} } Mybatis两种编程模型 1...

Redis分布式锁

2019-05-04
阅读 2 分钟
3k
redis:Redis是开源,内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.采用单进程单线程模型,并发能力强大,主流的分布式缓存工具。作用:减去数据库访问的压力。redis应用:1.token生成2.session共享3.分布式锁4.自增id5.验证码

redis学习路线图

2019-04-29
阅读 1 分钟
4.1k
redis学习路线图,供以后学习路上指引