ConCurrentHashMap源码分析
摘要:看初始化代码,跟hashmap不一致,concurrenthashMap初始化容量是2的n次幂+2的n-1次幂+1,其中n满足2的n次幂大于或等于初始容量,2的n-1次幂小于等于初始容量 public ConcurrentHashMap(int initialCapacity) { if (init
阅读全文
posted @
2020-03-28 21:01
清浊
阅读(220)
推荐(0)
HashMap源码分析
摘要:首先看继承和实现关系 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable 下面是属性可以很清楚看出来map中元素采用Node类型的数组进行存储。node的数据结
阅读全文
posted @
2020-03-27 20:52
清浊
阅读(137)
推荐(0)
并发编程
摘要:1、死锁是大家抢占资源不释放 2、活锁就是大家不能一次抢占资源,然后就释放自己的资源 3、饥饿分不到应该资源就会饿死 jdk并发包
阅读全文
posted @
2020-03-25 07:41
清浊
阅读(97)
推荐(0)
mycat
摘要:1、没有数据库中间件采用规则表存放规则,现根据规则切分数据,然后插入数据。 2、数据库中间件可以保存水平切分规则,可以直接切分和整合数据。 下载mycat docker pull adoptopenjdk/openjdk8 docker tag adoptopenjdk/openjdk8 jdk8
阅读全文
posted @
2020-03-23 21:14
清浊
阅读(256)
推荐(0)
Replication集群搭建
摘要:Repliaction是mysql自带数据库同步机制 mysql通过读取另外一个数据库的bin_log日志实现数据同步,数据同步是单向的,从主节点到从节点。 下载第三方镜像 docker pull mishamx/mysql docker tag mishamx/mysql RP docker rm
阅读全文
posted @
2020-03-23 20:58
清浊
阅读(377)
推荐(0)
mysql pxc集群搭建
摘要:pecona XtraDB Cluster 业界主流的mysql数据库集群方案,数据同步强一致性,只支持innodb引擎。 1、容器会不会损耗mysql性能,不会。 2、容器崩溃如何提取mysql数据,目录映射。 首先要放开如下端口 firewall-cmd --zone=public --add-
阅读全文
posted @
2020-03-22 19:52
清浊
阅读(592)
推荐(0)
docker 命令总结
摘要:设置docker加速器 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh| sh -s http://f1361db2.m.daocloud.io /etc/docker/daemon.json 去掉逗号。 docker search
阅读全文
posted @
2020-03-20 07:53
清浊
阅读(164)
推荐(0)
mysql数据库集群
摘要:1、读写分离集群 2、数据切分 pxc同步传输适合保存少量高价值数据,数据同步后才算提交,replication异步传输适合保存大量数据。
阅读全文
posted @
2020-03-20 07:26
清浊
阅读(261)
推荐(0)
mysql压力测试和sql优化
摘要:每秒钟处理完的请求数,每秒处理事务数,一次请求所需平均数,系统内处理的并发请求数。 Mysqlslap Sysbench 数据库专用测试工具 Jmeter Sysbenc简介 设置yum源 http://mirrors.aliyun.com/repo/Centos-7.repo http://mir
阅读全文
posted @
2020-03-18 09:36
清浊
阅读(1026)
推荐(0)
新零售订单智能拆分:订单拆分到仓库
摘要:1、就近发货 2、注册高德地图开发者 1)创建地图应用程序。 2)创建访问秘钥。 3)使用地理编码获取地址服务。根据api获取经纬度, 4)引入hutool依赖包,发送请求查询地理坐标。 5)利用mysql st_distance函数计算两个坐标之间的度数。 SELECT st_distance(
阅读全文
posted @
2020-03-17 22:22
清浊
阅读(407)
推荐(0)
新零售电商:防止买家篡改商品信息
摘要:1、B2B 电商平台保存历次修改信息,降低搜索权重 2、B2C 如何保存历次修改信息,采用spu,sku就得创建spu_old,sku_old 订单详情查询四个表,数据多久进行归档,归档到归档库。 3、sku_old中需要保存历史spu_id字段。order 表还得管理sku_old表的主键。 XS
阅读全文
posted @
2020-03-15 22:55
清浊
阅读(289)
推荐(0)
存储过程和函数
摘要:编译后的sql脚本集合,可以单独调用。外包公司负责衍生业务,调用存储过程不会对数据库造成破坏。存储过程编译后的sql,执行速度快。实现了sql变成可以降低 锁表时间和锁表的范围。可以保存查询结果,降低锁表范围。 编写案例如下: 根据部门名称,查询部门用户信息 CREATE DEFINER=`root
阅读全文
posted @
2020-03-15 16:39
清浊
阅读(264)
推荐(0)
新零售redis实现秒杀
摘要:Redis conf bind 0.0.0.0 允许任何IP访问 daemonize yes 保护进程启动 protected-mode no 关闭保护功能 requirepass no 设置访问密码 开放防火墙 firewall-cmd --zone=public --add-port=80/tc
阅读全文
posted @
2020-03-15 08:36
清浊
阅读(184)
推荐(0)
mysql优化技巧
摘要:利用主键索引来加速分页查询 select * from t_test where id>=500000 limit 100; select * from t_test where id>=500000 and id<500000+100; 物理删除 会造成主键不连续,导致分页查询慢 逻辑删除,负责修
阅读全文
posted @
2020-03-14 15:33
清浊
阅读(103)
推荐(0)
在线修改表数据
摘要:1、常规做法就是业务停机,维护表结构。 2、不影响的可以在线修改。 Alter Table修改表结构 修改表结构,表级锁,修改表结构影响写入操作,修改表结构,必须还原表结构,所以耗时更长。大数据表记录多,锁表时间长。 3、PerconaTookit工具 先复制表,然后旧表创建触发器,旧表操作同步执行
阅读全文
posted @
2020-03-12 09:54
清浊
阅读(462)
推荐(0)
mysql主键选择
摘要:1、自增容易全局冲突 采用UUID解决 缺点16个字节浪费,更占空间。字符串类型,查询速度慢。UUID不是顺序增长,作为主键,写入IO随机性大。性能问题严重 2、自增优点 空间小,mysql检索数字速度快,自增长顺序写入性能好。 分布式主键自增长 mycat解决对sql语句进行路由。
阅读全文
posted @
2020-03-12 09:30
清浊
阅读(416)
推荐(0)
HTTP协议详解
摘要:1、持久化连接 http和server端没有明确释放连接就不断开连接。 2、管线化 保持持久连接就不用一个请求等到上一个连接的响应返回才发送下一个请求。 3、HTTP报文详解 http请求由多行数据构成的字符串文本 请求报文和响应报文如图所示 请求行包括请求方法,请求URI,HTTP版本 状态行包含
阅读全文
posted @
2020-03-12 09:20
清浊
阅读(270)
推荐(0)
新零售数据库(6):用户和员工以及角色表设计
摘要:部门、员工、职位表设计DROP TABLE IF EXISTS `t_dept`; CREATE TABLE `t_dept` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `dname` varchar(20) CHAR
阅读全文
posted @
2020-03-11 21:46
清浊
阅读(1284)
推荐(0)
新零售数据库设计(5):购物券和订单
摘要:DROP TABLE IF EXISTS `t_voucher`; CREATE TABLE `t_voucher` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `deno` decimal(10, 2) UNSIGNE
阅读全文
posted @
2020-03-11 21:26
清浊
阅读(731)
推荐(0)
新零售数据库(4):客户和会员设计
摘要:客户和会员表设计CREATE TABLE t_level( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键', `level` VARCHAR(200) NOT NULL COMMENT '等级', discount DECIMAL(10
阅读全文
posted @
2020-03-11 20:53
清浊
阅读(478)
推荐(0)
新零售数据库(3):商品的库存设计
摘要:零售店与仓库,n对m关系,建立关联表就只能从固定仓库进货。零售店库存和仓库库存处理。对应实体关系图如下: 先创建城市和省份表 CREATE TABLE t_province( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键', provi
阅读全文
posted @
2020-03-11 20:13
清浊
阅读(1182)
推荐(0)
新零售电商数据库(2):产品表和商品表设计
摘要:产品表ER图 CREATE TABLE t_spu( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键', title VARCHAR(200) NOT NULL COMMENT '标题', sub_title VARCHAR(200) C
阅读全文
posted @
2020-03-10 11:40
清浊
阅读(809)
推荐(0)
新零售电商数据库设计(1)品牌和分类关系
摘要:品牌表设计如下 CREATE TABLE t_brand( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键', `name` VARCHAR(200) NOT NULL COMMENT '名称', image VARCHAR(500) C
阅读全文
posted @
2020-03-10 09:26
清浊
阅读(965)
推荐(0)
mysql事务机制
摘要:1、为什么需要事务机制 避免写入直接操作数据文件,写入直接操作数据文件是一件非常危险的事情,遇到突发事故,没有数据文件对比无法还原。mysql五种日志文件,其中只有undo和redo日志与事务有关。拷贝数据记录在 redo日志里面,记录修改记录在undo日志里面。 2、事务机制 事务是一组sql语句
阅读全文
posted @
2020-03-09 15:00
清浊
阅读(761)
推荐(0)
mysql crud基础知识
摘要:MyISAM sql语句是串行的 InnoDB 单表超过两千万数据会非常影响效率。 TokuDB 1、批量插入数据,因为一条数据有问题,全部是数据写入失败 INSERT INTO t_dept(deptno,dname,loc) values (40,'软件部门',北京),(30,'软件部门',北京
阅读全文
posted @
2020-03-09 08:50
清浊
阅读(281)
推荐(0)
java线程安全和同步锁介绍
摘要:线程安全的五种类型 1、不可变 共享的数据是基本数据类型,就不需要考虑线程安全性问题。共享的是对象就需要关注对象行为不会改变状态。 2、绝对线程安全 3、相对线程安全 特定顺序的连续调用,可能需要在调用端使用额外的同步手段来保证调用的正确性。 4、线程兼容 对象本身不是线程安全,可以使用同步手段保证
阅读全文
posted @
2020-03-08 20:15
清浊
阅读(235)
推荐(0)
垃圾收集器和内存分配策略
摘要:了解垃圾收集器和内存分配的意义,处理内存溢出、内存泄露问题、垃圾收集系统成为高并发系统的瓶颈时就需要调节自动化技术实施细节 1、哪些内存需要回收 引用计数法、可达性分析算法,GCRoots作为根节点,向下搜索所走过的路径称为引用链,没有任何引用链说明不可达。可以作为GCRoot的对象有虚拟机栈本地变
阅读全文
posted @
2020-03-07 22:07
清浊
阅读(182)
推荐(0)
java对象创建和内存分配
摘要:对象创建要考虑的两个问题 1、内存分配算法 指针碰撞算法,将内存区域分成两部分中间采用指针分隔开来,分配对象就将指针向一个方向移动,这种需要内存区域规整。不规整就要通过空闲列表来记录那块内存是否空闲。内存是否规整就取决于java垃圾 收集器是否带有内存整理和压缩功能。Serial,ParNew等co
阅读全文
posted @
2020-03-05 08:39
清浊
阅读(665)
推荐(0)
运行时数据区域
摘要:1、方法区,堆 堆所有线程共享的内存,虚拟机启动时分配,存放对象实例和数组。逃逸分析、栈上分配、标量替换等技术导致所有对象不一定都在堆中分配。 分为新生代和老年代。主要有Eden空间,From Survivor空间和To Survivor空间。 方法区,各个线程共享的内存区。用于存储已经被加载的类信
阅读全文
posted @
2020-03-05 08:00
清浊
阅读(144)
推荐(0)
读懂ER图
摘要:业务数据库设计流程 需求分析:根据用户的需求,分析出需要记录的数据 概要设计:根据分析出的数据,设计ER图 详细设计: 将ER图转换成数据库模型图和数据表 瀑布模型:就是从上到下,明确需求,中途不修改需求。 螺旋模型:循环经历三个周期 ER图 Entity Relationship Diagram
阅读全文
posted @
2020-03-04 09:27
清浊
阅读(3187)
推荐(0)
centos安装mysql数据库和配置mysql数据库
摘要:mysql数据库安装 yum安装 1、下载rpm文件 yum locatinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 2、安装mysql yum install mysql-community-s
阅读全文
posted @
2020-03-04 08:47
清浊
阅读(436)
推荐(0)
微服务监控
摘要:spring boot actuator 监控数据可视化,spring boot admin springboot量身打造的监控管理界面 jvm监控 metrix,heapdump,threaddump java自带的监控工具,jconsole,jvisualvm GC日志分析 -Xmx 5m -X
阅读全文
posted @
2020-03-02 19:47
清浊
阅读(354)
推荐(0)
微服务直接调用组件sleuth
摘要:1、定位微服务出错。 2、定位微服务性能问题。 调用链监控原理 trace表,cs client sent ,sr server recieve,ss server sent,cr client recieve id span_id pspan_id service_name api stage t
阅读全文
posted @
2020-03-02 08:00
清浊
阅读(419)
推荐(0)
nacos 管理配置
摘要:1、配置如下 spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yml shared-dataids: common1.yaml,common2.yaml refreshable-dataids: co
阅读全文
posted @
2020-03-01 10:55
清浊
阅读(531)
推荐(0)