- 博客(19)
- 资源 (1)
- 收藏
- 关注
转载 java集合你了解多少?
用了java集合这么久,还没有系统的研究过java的集合结构,今天亲自画了下类图,总算有所收获。一、所有集合都实现了Iterable接口。Iterable接口中包含一个抽象方法:Iterator<T> iterator();每个实现了这个方法的集合都会返回一个Iterator对象。Iterator:它包含三个方法,hashNext(),next()...
2019-02-27 22:33:39 262
转载 java多线程实现方式
一、什么是线程?线程:程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位。多线程:单个程序中同时运行多个线程完成不同的工作,称为多线程。特点:1)轻量级的进程,程序运行流中可执行的最小单元,线程不拥有系统资源,多个线程共享进程拥有的资源。2)一个线程可以创建另外一个线程,多个线程可以...
2019-02-27 22:32:17 113
转载 java单例模式的实现方式
一、什么是单例模式单例:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一个实例。比如我们在系统启动时,需要加载一些公共的配置信息,对整个应用程序的整个生命周期中都可见且唯一,这时需要设计成单例模式。如:spring容器,session工厂,缓存,数据库连接池等等。...
2019-02-27 22:22:38 94
原创 mysql max_allowed_packet 设置过小导致记录写入失败
-- 设置 max_allowed_packet = 20Mset global max_allowed_packet = 2*1024*1024*10mysql max_allowed_packet 设置过小导致记录写入失败mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败。查...
2019-02-20 22:25:01 5181
原创 mysql遍历like查询
select DISTINCT t.order_id,t.pay_account,t.sale_price,t.ticket_count,ti.price,ti.handling_fee,t.handling_fee_amount from ts_order tleft join ts_order_ticket_info ti on ti.order_id=t.order_idleft joi...
2019-02-18 16:40:06 1897
原创 高可用系统架构(使用hystrix隔离、限流、熔断、降级)
资源隔离、限流、熔断、降级、运维监控资源隔离:让你的系统里,某一块东西,在故障的情况下,不会耗尽系统所有的资源,比如线程资源我实际的项目中的一个case,有一块东西,是要用多线程做一些事情,小伙伴做项目的时候,没有太留神,资源隔离,那块代码,在遇到一些故障的情况下,每个线程在跑的时候,因为那个bug,直接就死循环了,导致那块东西启动了大量的线程,每个线程都死循环最终导致我的系统资源耗尽...
2019-02-17 21:13:30 1292
原创 ajax请求回填数据到页面
$.ajax({ url:imovie.base+'/cardBatch/findCardTemplateById', type:"GET", data:{"cardTemplateId":data.cardTemplateId}, success:function(res){ $("#cardTemplate...
2019-02-15 11:49:31 1277
转载 为什么分库分表后不建议跨分片查询
写在前面:如果对分库分表还不是很熟悉的,可以参考笔者之前的文章《分库分表技术演进&最佳实践》。在这篇文章中提到了一个场景,即电商的订单。我们都知道订单表有三大主要查询:基于订单ID查询,基于商户编号查询,基于用户ID查询。且那篇文章给出的方案是基于订单ID、商户编号、用户ID都有一份分库分表的数据。那么为什么要这么做?能否只基于某一列例如用户ID分库分表,答案肯定是不能。笔者基于s...
2019-02-13 10:54:07 676
转载 利用存储过程插入一亿条数据
创建表DROP TABLE if exists employees_partition;CREATE TABLE if not exists `employees_partition` ( `id` int(11) NOT NULL , `name` varchar(32) DEFAULT NULL COMMENT '员工姓名', `job_no` varchar(16) NOT...
2019-02-13 10:24:50 1467
原创 手工下载依赖,并安装到本地maven仓库
1)在maven中央仓库搜索jar包,如果没有找到,就得手动在百度里面找,下载jar下来(2)根据jar对应的group id,artifact id,找到自己本地的maven仓库,对应的目录,将jar包拷贝到那个目录里面去jmxtool,groupId=com.sun.jdmk,artifactId=jmxtools,version=1.2.1com\sun\jdmk\jmxtools\...
2019-02-11 19:49:07 2087
转载 MySQL表的四种分区类型
一、什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。二、为什么要对表进行分区为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。分区的一些优点包括:与单个磁盘或文件系统分区相比,...
2019-02-11 19:48:16 113
原创 Twitter的分布式自增ID算法snowflake (Java版)
SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。 41位可以表示$2^{41}-1$个数字, 如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是:0 至 $2^{41}-1$,减1是因为可表示的...
2019-02-09 22:36:15 275
转载 redis cluster hash slot算法
讲解分布式数据存储的核心算法,数据分布的算法hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法用不同的算法,就决定了在多个master节点的时候,数据如何分布到这些节点上去,解决这个问题1、redis cluster介绍redis cluster(1)自动将数据进行分片,每个master上放一部分...
2019-02-07 11:13:18 691
转载 redis单master架构的容量的瓶颈问题
1、单机redis在海量数据面前的瓶颈2、怎么才能够突破单机瓶颈,让redis支撑海量数据?3、redis的集群架构redis cluster支撑N个redis master node,每个master node都可以挂载多个slave node读写分离的架构,对于每个master来说,写就写到master,然后读就从mater对应的slave去读高可用,因为每个mast...
2019-02-07 11:10:59 484
原创 redis的两种持久化的优缺点
持久化的意义:灾难数据恢复。1、RDB和AOF两种持久化机制的介绍2、RDB持久化机制的优点3、RDB持久化机制的缺点4、AOF持久化机制的优点5、AOF持久化机制的缺点6、RDB和AOF到底该如何选择我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的企业级redis集群架构:海量数据、高并发、高可用持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一...
2019-02-06 18:14:28 698
转载 redis的高可用master以及slave的关系
主从复制原理 1、复制的完整流程(1)slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始master host和ip是从哪儿来的,redis.conf里面的slaveof配置的(2)slave node内部有个定时任务,每秒检查是否有新的master node要连接和复制,如果发现,就跟maste...
2019-02-06 14:49:30 1884
原创 redis过期删除策略
如果假设你设置一个一批key只能存活1个小时,那么接下来1小时后,redis是怎么对这批key进行删除的? 答案是:定期删除+惰性删除(1)定期删除:所谓定期删除,指的是redis默认是每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。假设redis里放了10万个key,都设置了过期时间,你每隔几百毫秒,就检查10万个key,那redis基本上就死...
2019-02-06 14:11:56 385
原创 说说Java的Socket编程
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为一个socket。socket也就是套接字,可以用来实现不同虚拟机或者不同计算机之间的通信。在Java语言中,socket可以分为两种类型:(1)面向连接的socket通信协议(TCP)(2)面向无连接的socket通信协议(UDP)。任何一个socket都是用IP地址与端口号唯一确定的。基于TCP的通...
2019-02-05 23:09:12 100
转载 倒排索引
倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。构建方法简单法索引的构建相当于从正排表到倒排表的建立过程。当我们分析完网...
2019-02-04 21:17:40 220
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人