自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JinLiang16353

态度决定高度。

  • 博客(28)
  • 收藏
  • 关注

原创 Shardingsphere 简介

Shardingsphere 简介什么是 ShardingSphere?Apache ShardingSphere 是一套开源的分布式数据库增强计算引擎,其通过可插拔架构构建基于数据库之上的生态系统,实现包括数据分片、弹性伸缩、加密脱敏等功能为代表的增强能力。Apache ShardingSphere 产品定位为 Database Plus,旨在构建异构数据库上层的标准和生态。 它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。ShardingSphere 站在数据库的上层视

2022-05-01 23:02:11 351

原创 适配器模式

适配器模式模式定义适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。适配器模式类图对象适配器/** * 对象适配器 */public class ObjectAdapter { public static void main(String[] args) { Adaptee adaptee = new Adaptee(); Target target = new Adapter(adaptee);

2022-04-25 23:55:42 108

原创 如何保证DB和Redis的强一致性?

如何保证DB和Reids的强一致性?场景描述在实际开发场景中经常遇到一些需求,在数据库操作成功后,需要进行一些其他操作:更新缓存或者更新搜索引擎中的索引等。如何保证数据库更新和这些其他操作的一致性。以DB与Redis缓存的一致性为例:操作数据库成功了,可能更新Redis失败了;反之亦然。解决思路不同时去更新数据库和Redis,只需要简单的更新数据库即可。如果数据库更新成功,必然会生产binlog。之后,我们通过一个组件(Canal),来模拟mysql的slave;拉取并解析binlog中的信

2022-04-24 23:16:01 2728 1

原创 Centos7安装Pritunl&修改默认端口

Centos7快速安装Pritunl并修改默认端口

2021-12-03 11:50:42 3545 6

原创 Mysql主从同步实现及原理

1.环境准备序号节点IP组件角色1node3192.168.56.123mysql5.7master2node4192.168.56.124mysql5.7slave2.mysql主从复制架构图2.安装mysqlCentos7安装Mysql3.实现步骤3.1 配置master节点vim /etc/my.cnf# For advice on how to change settings please see# http://dev.mys

2021-11-20 22:23:26 1579

原创 GPG、PGP加密&解密

GPG加密&解密PGP介绍PGP是一种用于数据加密和数字签名的程序,它使得一般人也可以很容易地对数据文件、邮件进行加密;PGP拥有“信任网络(Web of Trust)”的美称。PGP主要的特点是它可以在一个非线程安全的网络环境下,使得从未谋面的人取得信任。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。1. Centos7安装GPG,并导出公钥# 安装gn

2021-04-28 17:40:47 2799

原创 Java Md5加密再转成Base64编码

Java Md5加密再转成Base64编码需求描述Hexadecimal -> base64 string decoder 16进制转 Base64给定入参,先生成32位的Md5消息摘要,再通过Base64编码Base64(Md5(value))/** * MD5生成32位 * @param inStr 加密的字符串 * @return 加密后的结果 * @throws Exception */public String md5Encode(String inStr

2021-04-15 15:28:56 750

原创 Java加密&解密-Base64

Base64Base64 算法定义Base64是一种基于64个字符的编码算法,根据RFC 2045的定义:Base64内容传送编码是一种以任意8位字节序列组成的描述形式,这种形式不容易被人直接识别。经过Base64编码后的数据会比原始数据略长,为原来的4/3倍数。经过Base64编码后的字符串的字数是以4为单位的整数倍。Base64字符映射表 /** * This array is a lookup table that translates 6-bit positive i

2021-04-14 10:52:41 281

原创 软件设计原则

软件设计原则1.开闭原则定义:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。作用:1. 对软件测试的影响软件遵守开闭原则的话,软件测试时只需要对扩展的代码进行测试就可以了,因为原有的测试代码仍然能够正常运行。2. 可以提高代码的可复用性粒度越小,被复用的可能性就越大;在面向对象的程序设计中,根据原子和抽象编程可以提高代码的可复用性。3. 可以提高软件的可维护性遵守开闭原则的软件,其稳定性高和延续性强,从而易于扩展和维护。2

2020-12-19 09:05:07 127 1

原创 Centos7安装Mysql

title: Mysql安装tags: Mysqlnotebook: Mysql安装安装Mysql下载Mysql源wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装Mysql源yum -y localinstall mysql57-community-release-el7-11.noarch.rpm在线安装Mysqlyum -y install mysql-community-se.

2020-05-24 11:01:28 195

原创 2.TCP三次握手、四次挥手

TCP三次握手客户端发送一个带SYN的数据包给服务端。服务端接收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信号。客户端再发送一个带有ACK的数据包给服务端,代表“握手”结束。TCP四次挥手...

2019-06-08 00:26:19 110

原创 1.TCP/IP四层模型?

TCP/IP 四层模型1. 应用层应用层决定了向用户提供应用服务时通信的活动。FTP协议、DNS、HTTP协议2. 传输层传输层对上接应用层,提供处于网络连接中的两台计算机之间的数据传输。TCP(传输控制协议)、UDP(用户数据报协议)3. 网络层网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输线)到达对方计算机,并把数据包发送给...

2019-06-07 01:07:15 180

原创 Mycat 多租户方案 注解、切分函数

业务场景公司需要开发一个SAAS平台,考虑到数据的安全性和隔离级别,打算采用Mycat做为中间件,使用Mycat的多租户方案,实现租户数据的独立性。Mycat提供的两种多租户方案基于Mycat注解的方式,动态切schema优点:适用于传统的每个租户部署一套 web+db 的老系统升级为新的SAAS系统,这种方式改动较少,侵入性较小。方案详解 [Mybatis拦截器+Mycat注解...

2018-12-05 15:50:54 938 2

原创 MyCat跨库查询方案

Mycat跨库查询的解决方案1.使用全局表1.1 使用全局表的业务特点:数据变动不频繁数据总体变化不大数据规模不大,很少有超过数十万条记录1.2 全局表特性:全局表的插入、更新操作会实时在所有节点上执行,保持各个分片节点数据的一致性全局表的查询操作,只从一个节点获取全局表可以跟任何一个表进行JOIN操作注意:对数据的更新应该通过连接mycat来进行,不然会导致各节...

2018-11-27 20:27:52 5449 2

原创 cas单点登录系统搭建、配置、扩展

title: cas单点登录系统搭建、配置、扩展tags: casnotebook: cas环境信息节点已安装软件系统配置node8apache-tomcat-8.0.53.tar.gz;jdk-8u181-linux-x64.tar.gzcentos7.2一.安装 cas单点登录系统1.下载源码,编译cas-server-4.0.0-release....

2018-11-24 16:57:30 955 1

原创 MyCat简介

Mycat简介1.功能介绍Mycat是什么?从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的的Server,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生(Native)协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存...

2018-11-13 15:38:09 158 3

原创 MyCat安装文档

MyCat安装文档@(MyCat)[mycat]环境信息节点已安装软件系统配置node3mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz;jdk-8u181-linux-x64.tar.gzcentos7.2node4mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz;jdk-8u181-...

2018-11-09 11:52:53 182

原创 Java多线程相关知识点

Java多线程相关知识点什么是线程和进程 线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。线程有就绪、阻塞和运行三种基本状态。 进程是所有线程的集合,每一个线程是进程中的一条执行路径。创建线程的...

2018-10-23 21:57:40 157

原创 Cenos7 安装、卸载 MySql5.7

Cenos7 安装、卸载 MySql5.71.删除系统已经存在的Mysql 1.1 查看当前安装Mysql情况 rpm -qa | grep -i mysql 1.2 删除当前依赖 rpm -ev --nodeps [安装的依赖] 删除上次命令查出的依赖 直接替换 [] 1.3 查看Mysql安装的目录 find / -n...

2018-10-12 09:58:55 255 1

原创 数据并发存在的问题

数据并发存在的事务问题1.脏读2.不可重复读3.幻想读4.第一类丢失更新5.第二类丢失更新1.脏读A事务读取到B事务尚未提交的更改数据,并在这个数据的基础上进行操作。如果恰巧B事务回滚,那么A事务读到的数据根本是不被承认的。2.不可重复读不可重复读是指A事务读取了B事务已经提交的更改数据。假设A在取款事务过程中,B往账户转了100元,A两次读取账户的余额发生不一致。3.幻想读A事务读取...

2018-09-28 22:44:50 572

原创 Spring 自定义注解开发

Spring 自定义注解开发AOP的基本概念 (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint(连接点):所谓的连接点指那些被拦截到的点。在Spring中,这些点指的是方法,因为Spring只支持方法类型的连接点 (3)Advice(通知):所谓通知是指拦截到JointPoint之后要做的事情就是通知,通知分为前置通...

2018-07-24 16:08:51 246

原创 volatile 关键字

volatile 关键字概念 volatitle 关键字的主要作用是使修饰的变量在多个线程之间可见。线程执行流程图 在Java中,每一个线程都会有一块工作内存区,其中存放着主内存中的变量值的拷贝。当线程执行时,他在自己的工作内存区中操作这些变量。为了存取一个共享的变量,一个线程通常先获取、锁定并清楚它的内存工作区,把这些共享变量从线程的共享内存区中正确的装入到它自...

2018-07-17 22:42:52 145

原创 Java 日期区间连续判断

Java 日期区间连续判断1.需求开发会计期间维护API 会计期间 期间维护API [要求期间连续]2.分析使用定义日期格式为 yyyy-mm-dd 所以采用java8的LocalDate如何判断区间连续:每一个区间的结束日期+1等于下一个区间的开始日期。[记得判断每个日期的开始日期是否在结束日期之前]3.核心代码private void...

2018-07-10 20:20:22 8958

原创 Springboot 源码学习

1.判断字符串长度是否为零Assert.hasLength(encoding, "Encoding must not be empty");public static void hasLength(String text, String message) { if (!StringUtils.hasLength(text)) { throw new...

2018-04-25 10:13:31 136

原创 SpringSecurity 常用配置

SpringSecurity配置详解登录配置protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() //1 .and()...

2018-04-24 16:16:09 268

原创 IntelliJ Idea 常用快捷键

IntelliJ Idea 常用快捷键Ctrl+Alt+t 选择代码块 try catchAlt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等) mac系统 fn+alt+回车Ctrl+E或者Alt+Shi...

2018-04-18 22:39:17 95

原创 Redis 安装【Centos 6.5】

Redis 安装【centos 6.5】1.安装 gcc yum install gcc-c++2.上传 redis-3.0.0.tar.gz3.解压 redis-3.0.0.tar.gz 到 /usr/local/ tar -xvf redis-3.0.0.tar.gz -C /usr/local/4.进入 /usr/local/redis-3.0.0 编译 cd /us...

2018-04-13 13:39:48 128 1

原创 Zookeeper集群搭建

Zookeeper集群搭建1.初始化条件节点 已安装软件 系统属性 node1 jdk-7u45-linux-x64.tar.gz centos6.5 node2 jdk-7u45-linux-x64.tar.gz centos6.5 node3 jdk-7u45-linux-x64.tar.gz centos6.5 2.通过...

2018-04-13 11:04:03 131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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