自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

厦门小民

JAVA、Mysql、Python、Vue、Android 交流QQ:22107464

  • 博客(219)
  • 资源 (1)

原创 博客大纲

博客目录公司忙了大半年,因为账号出异常,太久没更了,大家分享更多知识在线查看:https://www.1s.app/个人邮箱:22107464@qq.com以下为博客大纲,CSDN可能没那么全,因为部分是个人学习笔记,正在整理更新到CSDN中来Java 技术大纲MySQL 技术大纲Docker 技术大纲Linux 技术大纲MyCat 技术大纲题外话出售两个域名,有兴趣加q...

2020-02-29 12:16:17 159

原创 Tomcat - 深度学习 - 类加器详解

前言Tomcat如何实现不同的应用程序,使用不同的第三方类库?带着疑问学下去打破双亲委派以Tomcat类加载为例,Tomcat 如果使用默认的双亲委派类加载机制行不行? 我们思考一下:Tomcat是个web容器, 那么它要解决什么问题:一个web容器可能需要部署两个应用程序,不同的应用程序可能会依赖同一个第三方类库的不同版本,不能要求同一个类库在同一个服务器只有一份,因此要保证每个应用程序的 类库都是独立的,保证相互隔离。部署在同一个web容器中相同的类库相同的版本可以共享。否则,如果服务器有

2020-06-26 20:24:11 105

原创 ElasticSearch - 深度学习 - Canal

前言整理一下ElasticSearch中使用的场景索引更新索引构建主要分为两种全量索引构建:从头全部重新建,通常因为:首次构建、增减字段、分词修改、时间久了增量丢数据后增量索引构建:只创建或者修改更新的数据,有如下优势准确性高:数据变更后,es马上更新,不影响用户体验性能快:电商高并发场景下高可用、实现简单:es集群、canal增量构建索引的可选方案**单系统应用:**比较简单,插入数据库时更新es数据,如失败进行补偿机制**分布式系统:**搜索中心作为独立部署,大部分情况下

2020-06-23 22:03:53 134

原创 MySQL - 深度学习 - 全局自增ID

前言在分布式场景下,往往我们需要分布式ID,而数据库自增序列应该是最基本的创建 SEQUENCE 表创建存放 sequence 的表DROP TABLE IF EXISTS GLOBAL_SEQUENCE;CREATE TABLE `GLOBAL_SEQUENCE` ( `name` varchar(50) NOT NULL COMMENT '名称', `current_valu...

2020-03-12 22:58:06 219

原创 Java - 深度学习 - 缓存穿透、缓存击穿、缓存雪崩

前言本文整理依稀唉,缓存的三大高并发情况下暴露出来的问题,也算是扫盲吧三大现象现象说明缓存穿透黑客或自身问题,大量请求根本不存在的key,导致每次都进行数据库查询缓存雪崩假设redis在高峰期能抗住5k/s的请求,如果redis突然间全盘宕机,5k打到数据库上,当然挂了缓存击穿当某个key非常热点处于集中式访问的情况,当key失效瞬间,大量请求击穿缓存。...

2020-02-29 16:38:36 121

原创 MySQL - 深度学习 - MVCC

前言本文整理一下,为什么MySQL在RC、RR级别下的InnoDB的非阻塞读如何实现什么是MVCCMVCC(Multi-Version Concurrency Control ,多版本并发控制)指的就是在使用READ COMMITTD、REPEATABLE READ这两种隔离级别的事务在执行普通的SELECT操作时访问记录的版本链的过程,这样子可以使不同事务的读-写、写-读操作并发执行,从而...

2020-02-28 11:24:16 441

原创 Linux - 深度学习 - 常用命令

Linux体系结构体系结构主要分为用户态(用户上层活动)和内核态内核:本质是一段管理计算机硬件设备的程序系统调用:内核的访问接口,是一种能再简化的操作公用函数库:系统调用的组合拳Shell:命令解释器,可编程必知必会命令说明find文件查找grep查找文件中包含的字符|管道操作符awk对文件内容做统计sed字符串替换常见...

2020-02-22 23:35:36 168

原创 Java - 并发编程 - 线程池(图解)

前言做的学习笔记,并加入了自己的理解,谢谢使用线程池的原因我们创建的线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁的创建和销毁线程会大大浪费时间和效率,更重要的是浪费内存,线程池可以让线程运行后不立刻销毁,而是让线程重复使用,继续执行其他任务线程池的优化降低资源消耗提高响应速度提高线程的可管理性流程图线程池的核心参数/** * 线程核心参数 * @para...

2020-02-22 21:42:16 279

原创 Spring 学习 - 对结果进行处理

前言在工作中,我们可能需要封装一下返回值比如将返回值封装为{ code: "200", data: "www"}演示自定义注解@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ResponseDat...

2020-02-22 12:18:13 105

原创 Java - 深度学习 - 分布式锁

前言整理了一下自己日常中使用到的一些分布式锁功能,特别说明,因为还在整理知识点,有些东西我直接使用之前写的PythonDemo一笔盖过,望体谅,最近有点忙。分布式锁分布式锁是通过互诉等手段,来实现分布式系统之间同步访问共享资源,以保证数据的一致性。一般实现分布式锁都有哪种方式方法优势劣势备注Redis性能高可靠性低,争议多不推荐,但业务不需要太严谨时可以考虑...

2020-02-04 13:39:33 317

原创 Docker 实战系列 - Redis集群

前言Docker方式部署redis-cluster - 简书SpringBoot 2.0 如何使用Redis-Cluster - 掘金Redis容器初始化这里引用了别人的一个镜像publicisworldwide/redis-cluster,方便快捷。这里使用host(主机)网络模式,把redis数据挂载到本机目录/data/redis/500*下。创建一个 docker-compos...

2020-02-04 13:33:57 265

原创 8. MyBatis - 深度学习 - 插件原理与定制

前言本文整理并制作一个简单的分页插件什么时候应用了插件?public class Configuration { // 1 public Executor newExecutor( Transaction transaction, ExecutorType executorType) { ... executor = (Executor) intercepto...

2020-02-03 13:42:47 234

原创 7. MyBatis - 深度学习 - 初始化流程

前言本文整理一下,MyBatis启动的时候都做了什么,具体对应xml or 接口中如何解析重点画圈圈类说明XMLConfigBuildermybatis-config.xml 文件解析XMLScriptBuilderXML中动态SQL解析XMLLanguageDriver动态SQL语言解析,比如if where这些MapperAnnotationB...

2020-02-03 13:41:52 152

原创 6. MyBatis - 深度学习 -缓存的原理

前言在使用MyBatis进行开发过程中,必须要了解的就是它的一级缓存、二级缓存一级缓存命中条件一级缓存的使用条件:必须在同一个会话(session)的同一个mapper(namespace)的同一个方法(statement),而且需要相同的SQL与参数。StudentMapper mapper = session.getMapper(StudentMapper.class);Studen...

2020-02-03 13:40:26 156

原创 5. MyBatis - 深度学习 - 补全

前言这篇是为了上一篇的补全,因为我想让博客看起来尽量简单,并且短核心类关键类说明SqlSessionFactoryBuilder仅用于构建会话工厂,构建完成后无用基于 config.xml、environment 、props 构建会话工厂SqlSessionFactory用于生成会话的工厂,作用于整个应用运行期间一般不需要构造多个工厂对像SqlSessi...

2020-02-03 13:37:30 223

原创 4. MyBatis - 深度学习 - 注入攻击

前言在日常工作中我们需要时刻避免被注入攻击,否则可能你工作就没了不安全的演示使用 ${} 语法时,MyBatis 会直接注入原始字符串,即相当于拼接字符串,因而会导致 SQL 注入<select id="selectStudentListLike" resultMap="StudentMap"> SELECT * FROM student WHERE name = ${...

2020-02-03 13:36:34 244

原创 3. MyBatis - 深度学习 - SQL语句

前言整理一下MyBatis中常使用的SQL说明介绍通过原生JDBC写DAO的年代 ,程序员最怕莫过于拼接SQL语句,拼接参数与设置返回结果集。Hibernate 将拼接SQL时代成为过去,通过ORM映谢,完全不需要处理任何SQL,但这又带来了新的问题就是。无法编写自定义SQL从而丧失了灵活活及更好的性能。MyBatis 通过 mapper 映射SQL很好解决了这一点,它无需在JAVA代码...

2020-02-03 13:36:03 172

原创 2. MyBatis - 深度学习 - 基本使用

前言本文整理一下MyBatis的基本使用,这里非工作中使用的场景,主要为了分析源码而做准备预备数据库如果你使用docker的话,推荐看看我的文章把 [Docker 实战系列 - MySQL环境](…/…/Docker/实战系列/Docker 实战系列 - MySQL环境.md)创建数据库# 创建库create database mybatis_demo;创建表CREATE ...

2020-02-03 13:34:58 116

原创 1. MyBatis - 深度学习 - 介绍与源码下载

什么是MyBatisMyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录与其他持久层框架对比如果...

2020-02-03 13:33:19 156

原创 6. Spring - AOP - 基本使用

前言本文来整理一下AOP相关知识,这里不直接介绍理论了,我们看下日常工作中如何使用Filter、Interceptor、ControllerAdvice、AOP的关系[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eNdKE1Ee-1580006320209)(media/6. Spring - AOP - 基本使用/关系.png)]流程说明加入依赖 sp...

2020-01-26 10:38:57 566

原创 5. Spring - IOC - 组件的生命周期

前言整理一下Spring使用过程中的一些笔记提示: JSR是由JDK提供的一组规范介绍指定初始化和消费方法通过让Bean实现接口InitializingBean(定义初始化逻辑)DisposableBean(定义销毁逻辑)使用JSR250注解@PostConstruct(在Bean创建完成,且属于赋值完成后进行初始化,属于JDK规范的注解)@PreDestr...

2020-01-21 22:21:49 1315

原创 4. Spring - IOC - 组件的作用域、懒加载、条件判断

搜索框效果图搜索框 与 轨迹动画drawable/searchbar.xml<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="150dp" android:height="24dp" android:viewportHeight="24"

2020-01-21 22:18:04 1183

原创 3. Spring - IOC - 组件扫描规则

使用动态的VectorDrawable

2020-01-21 22:16:27 1288

原创 2. spring - IOC - 依赖注入

静态矢量图如何使用ImageView/ImageButton <ImageView android:layout_width="100dp" android:layout_height="100dp" app:srcCompat="@drawable/square"/>Button 在Activity中st

2020-01-21 22:07:42 1158

原创 Java Zookeeper - 分布式锁

前言本文来介绍下如何实现Zookeeper分布式锁,代码优化下就可以用了分布式锁分布式锁是通过互诉等手段,来实现分布式系统之间同步访问共享资源,以保证数据的一致性。**锁定义:**Zookeeper通过创建临时数据节点来表示一个锁,并且是顺序节点**获取锁:**成功创建数据节点的客户端即为获取锁。未获取锁的客户端通过监听该节点变更情况,以便重新获取锁释放锁:当前客户端发生宕机的情...

2020-01-21 09:13:19 696

原创 Java Zookeeper - Curator的使用

前言在上文中 Java Zookeeper - 极简入门 ,是不是感觉low的不行,这里我们来使用一种更好的方法背景Zookeeper原生客户端的不足在连接zk超时的时候,不支持自动重连,需要手动重连。Watch注册一次就会失效,需要反复注册。不支持递归创建节点。Zookeeper开源客户端 - Curator提供更简单易用的API。解决Watch注册一次就会失效的问题提...

2020-01-21 09:06:17 715

原创 Java Zookeeper - 极简入门

使用 subprocess 方式指定路径小案例使用 subprocess 方式指定路径pi = subprocess.Popen([&quot;java&quot;, &quot;-jar&quot;,'pack.jar', &quot;1&quot;, &quot;221&quot;], stdin=subprocess.PIPE, stdout=subprocess.PIPE, ...

2020-01-21 09:05:22 1513

原创 Python MySQL基本操作

前言因为基本上类Linux都默认安装了2.7版本的Python,这里我们就用这个做记录吧安装环境pip install mysql-connector-python插入少量数据# coding=utf-8import mysql.connectorfrom faker import Fakermydb = mysql.connector.connect( host="1...

2019-11-25 10:26:43 51

原创 Python Faker的使用 - 制造随机数据

前言在日常工作中,我们经常需要至少一些随机数据,比如人名,省,地址什么的项目Git地址:https://github.com/joke2k/faker推荐博文:Python最假的库:Faker安装pip install Faker示例初始化fake = Faker(locale='zh_CN')随机名print fake.name()地区print fake.dist...

2019-11-25 10:25:44 4650

原创 Stream编程 - 案例总结

随机数List&lt;Integer&gt; collect = ThreadLocalRandom.current() .ints(0,9) .limit(10) .boxed() .collect(Collectors.toList());System.out.println(collect);获取数组最小的值int[] nums = new int[]{7,3,4,...

2019-11-15 20:53:41 757

原创 编译Jar包指南

编译Jar包指南需要编译的工程加入依赖聚合工程,可执行文件是哪个,加哪个就好&lt;project&gt; &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; ...

2019-11-15 20:51:11 276

原创 Lombok 的使用

推荐博客Lombok 看这篇就够了 - 知乎安装插件打开配置如何使用maven方式&lt;dependency&gt; &lt;groupId&gt;org.projectlombok&lt;/groupId&gt; &lt;artifactId&gt;lombok&lt;/artifactId&gt; &lt;version&gt;1.18.8&lt;/version...

2019-11-15 20:44:07 771

原创 Java 开发工具 - 推荐插件

推荐博客老司机的神兵利器-效率工具 - 掘金IntelliJ IDEAAlibaba Java Coding Guidelines阿里巴巴Java编码指南插件支持。[Lombok 的使用](Lombok 的使用.md)可以减少一些 get/set/toString 方法的编写,让代码更简洁Maven Helper (查看依赖)GsonFormat (JSON类生成快捷工具)...

2019-11-15 20:42:44 4564

原创 Java 学习 - 全文索引 - Lucene

前言Lucene是一套用于全文检索和搜索的开放源代码程序库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程序接口,能够做全文索引和搜索,在Java开发环境里Lucene是一个成熟的免费开放源代码工具;就其本身而论,Lucene是现在并且是这几年,最受欢迎的免费Java信息检索程序库。介绍Lucene官网 lucene.apache.org/Lucene自带的...

2019-11-15 20:31:12 5104

原创 MyCat 技术大纲

前言本章呢,还没时间收录,我本地的makedown笔记太多了,待我整理整理学习篇[MyCat 基础 - 安装与介绍](…/MyCAT/MyCat 基础 - 安装与介绍.md)[MyCat 基础 - 核心配置 - server](…/MyCAT/MyCat 基础 - 配置文件 - server.md)[MyCat 基础 - 核心配置 - schema](…/MyCAT/MyCat 基础 -...

2019-11-11 11:13:06 83

原创 MyCat 基础 - 核心配置 - log4j2

前言本章主要整理 MyCat核心配置说明核心配置文件说明文件名说明功能server.xml虚拟MySQL配置系统相关参数配置用户访问权限配置SQL防火墙及SQL拦截功能schema.xml数据库配置配置逻辑库及逻辑表配置逻辑表所存储的数据节点配置数据节点所对应的物理数据库服务信息rule.xml切片规则配置水平分片的分片规则配置分片规则所对应的分...

2019-11-11 11:12:44 328

原创 MyCat 基础 - 配置文件 - rule

前言本章主要整理 MyCat核心配置说明图片来源:https://coding.imooc.com/class/208.html核心配置文件说明文件名说明功能server.xml虚拟MySQL配置系统相关参数配置用户访问权限配置SQL防火墙及SQL拦截功能schema.xml数据库配置配置逻辑库及逻辑表配置逻辑表所存储的数据节点配置数据节点所对应的物理数...

2019-11-11 11:11:59 60

原创 MyCat 基础 - 核心配置 - schema

前言本章主要整理 MyCat核心配置说明核心配置文件说明文件名说明功能server.xml虚拟MySQL配置系统相关参数配置用户访问权限配置SQL防火墙及SQL拦截功能schema.xml数据库配置配置逻辑库及逻辑表配置逻辑表所存储的数据节点配置数据节点所对应的物理数据库服务信息rule.xml切片规则配置水平分片的分片规则配置分片规则所对应的分...

2019-11-11 11:08:25 66

原创 MyCat 基础 - 配置文件 - server

前言本章主要整理 MyCat核心配置说明核心配置文件说明文件名说明功能server.xml虚拟MySQL配置系统相关参数配置用户访问权限配置SQL防火墙及SQL拦截功能schema.xml数据库配置配置逻辑库及逻辑表配置逻辑表所存储的数据节点配置数据节点所对应的物理数据库服务信息rule.xml切片规则配置水平分片的分片规则配置分片规则所对应的分...

2019-11-11 11:07:38 197

原创 MyCat 基础 - 安装与介绍

前言在使用MyCat的时候,我们来聊一下为什么使用这个东西吧。有详细的中间件对比,点击这里 MySQL 学习 - 不同场景下技术抉择官网地址:http://www.mycat.io/数据库中间件产品对于目前来说 MyCat依旧是我们不二的选择产品收费情况是否开源普及率功能MyCat免费开源高分片算法丰富、读写分离、全局主键、分布式事务Atlas...

2019-11-11 11:06:23 5379

zookeeper.zip

非Curator的方式实现,肯定是不推荐的,反正就是收藏下 推荐方式:https://xiamen.blog.csdn.net/article/details/104058457

2020-01-21

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除