- 博客(53)
- 收藏
- 关注
原创 MySql | InnoDB 多个单列索引与联合索引之路
简述:为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?一、联合索引测试注:Mysql版本为 5.7创建测试表:CREATE TABLE `jlyx_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_cod...
2019-11-25 14:41:39
1400
原创 基于 Redis 做分布式锁
基于 REDIS 的 SETNX()、EXPIRE() 方法做分布式锁setnx ()的含义就是 SET if Not Exists,其主要有两个参数 setnx(key, value)。该方法是原子的,如果 key 不存在,则设置当前 key 成功,返回 1;如果当前 key 已经存在,则设置当前 key 失败,返回 0。expire ()设置过期时间,要注意的是 setnx 命令不能设...
2019-10-28 17:05:55
565
原创 Spring Cloud | ElasticSearch(es)的使用
一、简述ES(ElasticSearch)是一款分布式全文检索框架,每个字段可以被索引与搜索;以胜任上百个服务节点的扩展,并支持PB级别的结构化或者非结构化数据;底层基于基于Lucene实现。ES与传统数据的区别:1、结构名称不同:一个ES集群可以包含多个索引(数据库),每个索引又包含了很多类型(表),类型中包含了很多文档(行),每个文档使用 JSON 格式存储数据,包含了很多字段(列...
2019-09-12 13:57:32
8093
1
原创 Spring Cloud | xxl-job的使用
一、简述XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。通过xxl-job的方式调度任务,实现定时任务是非常方便的。官方文档:http://www.xuxueli.com/xxl-job/本章案例源码:源码:https://github.com/liujun19921020/Spri...
2019-09-12 10:26:38
6989
原创 Spring Cloud | 总结 二: Mybatis多数据源+Redis二级缓存+Feign调用
一、简述这几天补充了下文档,这里接《Spring Cloud终篇 | 总结 一:一个完整的企业级SpringCloud架构(Mybatis--多数据源)》之后,简述一下Redis二级缓存及feign的调用方式。源码案例:https://github.com/liujun19921020/SpringCloudDemo/blob/master/ProjectDemo/企业SpringClou...
2019-09-11 17:04:35
959
原创 kafka消息队列的生产与消费
一、简述项目开发中,多平台之间通过http或feign等方式实现跨平台业务调用,或通讯聊天内容需要频频的发送、获取等操作时,消息发送者可以将信息放入指定的topic消息队列中,消息接收者则根据约定的topic去队列中获取信息。我们将其称为消息的生产者/消费者.源码案例:https://github.com/liujun19921020/SpringCloudDemo/tree/master...
2019-09-10 18:20:02
1186
原创 otter双向同步配置
使用otter实现MySQL跨机房双向同步本文档基于已经搭建单向同步的基础进行双向同步功能扩展 如果需要进行单向同步搭建,请参考上一篇文档(《otter单向同步配置》) 保证所有node运行机器已经安装aria2在要进行双向同步的数据库执行以下语句 (记得修改密码)(主从库都要执行)/* 供 otter 使用, otter 需要对 retl.* 的读写权限,以及对业务表的...
2019-09-10 14:43:01
4485
1
原创 otter单向同步配置
一、 背景1.两个Mysql数据库不高于5.7版本,数据库地址,账号,密码,读写权限2.主库开启binlog日志row模式 , 配置从库请保证从库有binlog写入 log_slave_updates=13.在开启binlog模式后,请导出源表数据,并记录下binlog当前写入文件名,及position 位点 ,以及当前时间戳查看当前正在写入的binlog文件show master ...
2019-09-10 13:50:29
2155
1
原创 otter多node配置
配置wget https://github.com/alibaba/otter/releases/download/otter-4.2.17/node.deployer-4.2.17.tar.gz mkdir /usr/local/otter/node02 mkdir /usr/local/otter/node03 解压到指定目录 tar zxvf node.deployer-4.2....
2019-09-10 11:46:23
1459
原创 rabbitmq 消息消费确认机制
项目案例:https://github.com/liujun19921020/SpringCloudDemo/tree/master/ProjectDemo/rabbitmq-demo-%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/rabbitmq-demoChannel channel = RabbitMQ.connection().createChan...
2019-09-09 09:29:23
1388
原创 rabbitmq 消息持久化
项目案例:https://github.com/liujun19921020/SpringCloudDemo/tree/master/ProjectDemo/rabbitmq-demo-%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/rabbitmq-demoexchange 持久化channel.exchangeDeclare(MY_EXCHANGE, Bui...
2019-09-09 09:29:11
1065
原创 rabbitmq 消息发布确认机制
项目案例:https://github.com/liujun19921020/SpringCloudDemo/tree/master/ProjectDemo/rabbitmq-demo-%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/rabbitmq-demo普通确认String msg = UUID.randomUUID().toString();chann...
2019-09-09 09:29:00
815
原创 rabbitmq 事务
项目案例:https://github.com/liujun19921020/SpringCloudDemo/tree/master/ProjectDemo/rabbitmq-demo-%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/rabbitmq-demoString msg = UUID.randomUUID().toString();channel....
2019-09-09 09:28:41
1012
2
原创 es sync之 canal / adapter 部署
项目案例:https://github.com/liujun19921020/SpringCloudDemo/tree/master/alibaba/canalMySQLMySQL 需开启 binlog 写入功能,并配置 binlog-format 为 ROW 模式[mysqld]log-bin=mysql-bin # 开启 binlogbinlog-format=ROW ...
2019-09-06 11:28:54
4118
1
原创 canal 热部署
测试结果为 HA 配置下,该功能已经失效!!!当 CANAL 在运行时,如果想向容器添加实例,需要重启服务,肯定会影响生产业务,所以 CANAL 提供懒加载部署方式如果要使用懒加载,必须在 canal.properties 中开启这一功能,即设置canal.instance.global.lazy = true同时开启配置扫描canal.auto.scan = true...
2019-09-06 11:23:08
807
1
原创 canal 高可用配置
如果 WINDOWS 同机器部署多个 Canal 服务,注意,不是 Canal 实例,请修改端口参数:1. 修改 canal.propeties 文件中的canal.port、canal.metrics.pull.port、canal.admin.jmx.port 各配置项,指向其它端口2. 修改 startup.bat 中-Xrunjdwp:transport=dt_...
2019-09-06 11:18:12
2120
原创 canal 配置文件介绍
CANAL 的配置方式有两种:ManagerCanalInstanceGenerator: 基于manager管理的配置方式,目前alibaba内部配置使用这种方式。大家可以实现CanalConfigClient,连接各自的管理系统,即可完成接入 SpringCanalInstanceGenerator:基于本地spring xml的配置方式,目前开源版本已经自带该功能所有代码,建议使...
2019-09-06 11:03:36
2192
原创 es sync之 instance.properties配置
################################################### mysql serverId , v1.0.26+ will autoGen# canal.instance.mysql.slaveId=0# enable gtid use true/falsecanal.instance.gtidon=false# position info...
2019-09-06 10:58:14
1064
原创 es sync之 canal.properties配置
########################################################## common argument ###############################################################canal.manager.jdbc.url=jdbc:mysql://127.0.0.1:33...
2019-09-06 10:57:26
1336
原创 es sync之 application.yml配置
server: port: 8081spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 default-property-inclusion: non_nullcanal.conf: mode: kafka # tcp # kafka rocketMQ # canalS...
2019-09-06 10:56:42
1793
原创 instance.properties参数
参数名字 参数说明 默认值 canal.instance.mysql.slaveId mysql集群配置中的serverId概念,需要保证和当前mysql集群中id唯一 (v1.1.x版本之后canal会自动生成,不需要手工指定) 无 canal.instance.master.address mysql主库链接地址 127.0.0.1:3306...
2019-09-06 10:54:28
3734
原创 canal.properties参数
instance 列表定义列出当前 server上有多少个 instance,每个 instance 的加载方式是 spring/manager 等参数名字 参数说明 默认值 canal.destinations 当前server上部署的instance列表 无 canal.conf.dir conf/目录所在的路径 ../conf c...
2019-09-06 10:53:17
3143
原创 es sync之 adapter 使用
Adapter 分为两部分,一个是启动器,一个是适配器,启动器为 Springboot 项目,适配器以 fat jar 的形式将自己所需的依赖打成一个包,以SPI的方式让启动器动态加载启动器配置内容server: port: 8081spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: G...
2019-09-06 10:40:34
737
原创 otter的安装使用
otter 安装教程wget安装yum -y install wget安装JDK浏览器下载jdk`// 下载 jdk-8u221-linux-x64.rpm chmod +x jdk-8u221-linux-x64.rpm rpm -ivh jdk-8u221-linux-x64.rpm //查看java的版本信息 java -versionvim /etc/profile...
2019-09-05 17:34:54
2466
原创 mycat读写分离
mycat文档安装包 http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz 解压增加连接配置 vim ./conf/schema.xml<!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schem...
2019-09-05 17:20:40
473
原创 fastdfs文件系统增加自定义路径
fastdfs文件系统增加自定义路径(group1/M00、group1/M01...)修改fastfds配置文件vim /etc/fdfs/storage.conf# 挂载数量 store_path_count=2 # 挂载点1 store_path0=/data/fastdfs/file # 挂载点2 store_path1=/data/fastdfs/f...
2019-09-05 17:16:41
12038
原创 系统性能的一些计算公式
单位时间并发数QPS(TPS)=并发数/平均响应时间 QPS(TPS): 每秒钟request/事务 数量 并发数: 系统同时处理的request/事务数 响应时间: 一般取平均响应时间最大线程数Max number of threads=(MaxProcessMemory – JVMMemory – ReservedOsMemory)...
2019-09-05 17:13:58
3303
原创 SearchGuard集群版
在es下安装 (es版本6.5.4) 以下操作针对每台服务器####服务器hosts增加记录对应 认证的域名: dn: CN=node3.yibai.com,OU=Ops,O=yibai Com\, Inc.,DC=yibai,DC=com192.168.10.61 node1.yibai.com 192.168.10.62 node2.yibai.com 192.168...
2019-09-05 14:26:45
1101
原创 SearchGuard客户端连接
java 连接要searchguard认证的espom.xml文件加入依赖<!-- es插件 --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-d...
2019-09-05 14:20:26
1118
原创 searchguard配置
在es下安装 (es版本6.5.4)下载插件 <ES directory>/bin/elasticsearch-plugin install -b com.floragunn:search-guard-6:<guard version> 进入到searchguard安装目录 cd <ES directory>/plugins/search-guard-/t...
2019-09-05 14:09:31
2031
原创 SearchGuard证书配置
参考: https://www.jianshu.com/p/cc71e7793f6fTLS工具安装 下载TLS工具 https://repo1.maven.org/maven2/com/floragunn/search-guard-tlstool/1.5/ 解压unzip search-guard-tlstool-1.6.zip tlstool-1.6 TLS生成证书配置 复制&l...
2019-09-05 14:05:16
2795
1
原创 jvm调优案例
JVM调优JVM 收集器默认使用串行收集器, 单个cpu时适用吞吐收集器(throughput collector):命令行参数:-XX:+UseParallelGC。在新生代使用并行清除收集策略,在旧生代和默认收集器相同。适用:a、拥有2个以上cpu, b、临时对象较多的程序-XX:ParallelGCThreads 并行收集线程数量,最好和cpu数量相当并发收集器(concurre...
2019-09-05 11:39:46
4944
原创 kafka伪集群配置
一、概述测试环境因为机器不够, 所以就在一台机器上配置kafka的集群集群配置参考kafka文档, 详细的说明不记录参考链接: http://kafka.apachecn.org/quickstart.html二、配置1、预留kafka端口:host1:9092, host2:9093, host3:90942、复制配置两个kafka副本cp c...
2019-09-05 11:32:04
946
原创 线程池的使用
一、简述在开发中,频繁的创建和销毁一个线程,是极耗资源的,为此创建一个可重用指定线程数的线程池,以共享的无界队列方式来运行这些线程,可以有效的规划线程的使用。线程池顾名思义,也就是线程的集合,在java中大致有这几种线程池: newSingleThreadExecutor 创建一个单线程化的线程池, 它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO,...
2019-08-16 11:34:20
1384
原创 线程池ExecutorService的主要方法
返回值 方法体 说明 boolean awaitTermination(long timeout, TimeUnit unit) 请求关闭、发生超时或者当前线程中断,无论哪一个首先发生之后,都将导致阻塞,直到所有任务完成执行。 <T> List<Future<T>> invokeAll(Collection<? ext...
2019-08-13 10:50:45
698
原创 MySql | InnoDB存储引擎的死锁
一、简述前面的文章(《InnoDB存储引擎的锁与索引》)中提到过,行级锁必须建立在索引的基础上。行级锁并不是直接锁记录,而是锁索引。如果一条SQL语句用到了主键索引,mysql会锁住主键索引;如果一条语句只用了非主键索引,mysql则会先锁住非主键索引,再锁定主键索引。二、锁表解析直接上案例吧,有如下表:CREATE TABLE `indexescase` ( `id` in...
2019-08-08 18:21:30
1572
原创 MySql | InnoDB存储引擎的锁与索引(B+树结构索引)
一、简述InnoDB的细粒度行锁以及事务支持是MySQL吸引人的重要特性。但,不当的使用会使InnoDB的行级锁变成表级锁,给我们带来较大的困扰(select、update、delete都可能导致表级锁)。二、索引类型InnoDB的索引有两类:聚集索引(Clustered Index)与普通索引(Secondary Index)。InnoDB的每一个表都会有聚集索引。如果你没手...
2019-08-06 14:10:23
1429
原创 基于三大范式设计数据库结构的矛盾体
一、简述开发中必不可少的要与数据库打交道,那么优秀的数据库设计则显得尤其的重要。一个合理的数据库结构可以为当前开发及未来维护提供强有力的支撑。什么样的数据库结构才能称得上优秀呢?个人的理解点是:满足需求 性能与冗余(例:某需求,有一需频繁访问的查询功能,查表A时需通过关联ID访问B表的对应名称,那么是否可以将B表名称直接冗余到A表中,减少频繁的关联查询,增加查询语句的性能) 预见性扩...
2019-07-15 21:29:28
807
原创 CountDownLatch--等待多线程计数器
一、概述CountDownLatch是什么?网上概念的描述太多了。其实个人理解,他就是--等待多线程计数器!即:在某线程中(主线程或其他分线程都可以)声明一个初始值为N的CountDownLatch计数器,然后等待多个子线程完成了相关操作后再继续向下执行。--当各子线程执行到相应的地方后使N-1,最后N=0时,线程不再等待,继续向下执行。二、运用及场景2.1、运用Coun...
2019-05-21 11:18:28
2014
原创 Spring Cloud终篇 | 总结 一:一个完整的企业级SpringCloud架构(Mybatis--多数据源)
一、简介前面归纳了一些Spring Cloud组件的核心原理及用法,主要是开发这一块的Eureka、Ribbon、Feign、Hystrix、Zuul、Config等组件和其相关的扩展。当然Spring Cloud还有一些偏运维的zipkin(Sleuth 服务链路追踪)、Hystrix Dashboard/Turbine(断路器监控方面)等等组件,可以用来查看服务之间的调用、异常啊等功能,后...
2019-05-11 18:25:35
3330
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人