自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

转载 分布式系统面试题:分布式事务解决方案?

一般来说,分布式事务的实现主要有以下 5 种方案:XA 方案TCC 方案本地消息表可靠消息最终一致性方案最大努力通知方案两阶段提交方案/XA方案所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复 ok,那么就正式提交事务,在各个数据库上执行操作;如果任何其中一个数据库回答...

2020-03-20 17:34:44 312

原创 源码解析由于mysql驱动包升级, “LOAD DATA” 出现The used command is not allowed with this MySQL version错误

问题背景最近在一次项目的开发中,由于在pom文件中没有指定mysql-connector-java的version,则自动依赖了最新版的8.0.18包,在执行“LOAD DATA”时出现“nested exception is java.sql.SQLSyntaxErrorException: The used command is not allowed with this MySQL ver...

2019-12-18 19:19:15 1104 2

原创 redis常见操作

查看redis状态,内存等信息info查看redis当前的连接Ip./redis-cli -h Ip -p port -a ‘test’ client list | awk ‘{print $2}’|cut -d = -f 2| cut -d : -f 1 | sort | uniq -c | sort -rn...

2019-12-04 16:28:38 172

原创 通过SpringAop、Filter对Request参数解密和对Response内容加密

需求背景最近项目组中接到新的需求,要求app访问服务端的接口中,需要在报文传输中对某个字段进行加密,同时若返回响应中有该字段,则需要加密返回app;为了兼容旧版本app,与客户端同事商议,在新版本中该字段传输格式为:加密文本+特定的分割符+加密方式。解决思路服务端通过传入字段判断,如果是“特殊分割符+加密方式”这个方式拼接的,则需要对加密文本通通过想对应的解密方式解密;app涉及的服务特...

2019-11-20 18:48:58 1561

转载 为何阿里开发手册中,线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式

看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,通过源码分析禁用的原因。写在前面首先感谢大家在盖楼的间隙阅读本篇文章,通过阅读本篇文章你将了解到:线程池的定义Executors创建线程池的几种方式ThreadPoolExecutor对象线程池执行任务逻辑和线程池参数的关系Executors创建返回T...

2019-11-12 18:55:20 737

原创 java操作SFTP工具类

在工作中常会用到通过sftp进行文件的上传和下载,该类是自己分装的一个工具类,后续可以根据需要添加相应的方法:package com.sogou.map.usercenter.bmsync.controller;import com.jcraft.jsch.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import j...

2019-11-12 10:52:50 851

转载 TCP的三次握手和四次挥手

三次握手和四次挥手是面试的高频,通过这篇文章能收获以下知识:请画出三次握手和四次挥手的示意图为什么连接的时候是三次握手?什么是半连接队列?ISN(Initial Sequence Number)是固定的吗?三次握手过程中可以携带数据吗?如果第三次握手丢失了,客户端服务端会如何处理?SYN攻击是什么?挥手为什么需要四次?四次挥手释放连接时,等待2MSL的意义?1. 三次握手...

2019-11-06 15:53:17 124

转载 升级tomcat遇到的坑

注: 该篇是由于阅读一篇公众号文章看到升级tomcat会发生这个坑,这里记录以下,以便在之后的工作中遇到这个坑时,很方便的解决这个问题。参考地址:https://mp.weixin.qq.com/s/_orImnCJqQlOTvATPf0o-A故障描述tomcat版本从8.5.11升级到8.5.31后,线上nginx 报400错误,ng配置如下:解决方法在nginx中的locatio...

2019-10-25 17:41:10 733

转载 redis主从架构宕机问题解决方法

主机宕机设置端口6379是主机,端口6380是从机,全部都正常启动验证在6379写入数据,在6380也能得到数据现在将6379主机停掉,模拟主机宕机由于主机宕机了,现在就要将6380从机设置为主机,使用slaveof no one命令,此时原来的从机变为主机也有了写的权限要是原来6379经过修复后,能够正常工作,先将6380主机数据进行保存持久化,将rdb文件,覆盖原主机6379的rd...

2019-10-24 18:31:36 1868

原创 jersery集成jackson实现restful api,由于jdk版本不一致导致的坑

问题背景项目中使用jersey+jackson实现 restful api,返回信息格式为json,开发测试环境都是OK的,然鹅在线上当访问时一直报500,错误信息如下:com.sun.jersey.spi.container.ContainerResponse write: The registered message body writers compatible with the MI...

2019-10-22 15:52:29 2902

原创 python爬虫实践

近期学习python爬虫,且正好帝都公布了19年积分落户公示名单,实践一下爬取名单并存入数据库,统计下各各个阶段落户的人数:页面请求分析可以很直观的看到,页面数据是通过ajax请求获取的,请求方法为post,参数为rows和page,返回响应为html文档。代码实现模拟请求获取响应的数据import requestsfrom bs4 import BeautifulSoupim...

2019-10-16 11:25:28 158

原创 python 实现八皇后算法

问题描述有一个棋盘和8个要放在棋盘上的皇后,唯一的要求是皇后之间不能构成威胁。状态表示为了表示一个可能的解决方案,可以使用元组,每个元组中的元素标识对应行上的皇后的位置,如:state[0]=3标识第一行上的皇后在第4列,当在某一递归的层面时,只能知道上一行皇后的位置,因此需要一个长度小于8的状态的元组。寻找冲突定义一个寻找冲突的函数conflict,将已知皇后的state和下一个皇后的...

2019-10-15 13:21:42 1040

转载 jdk lambda表达式的坑

整理出zk连接的关键逻辑如下:public class ClientZkAgent { //单例模式 private static final ClientZkAgent instance = new ClientZkAgent(); private ZooKeeper zk; //zk客户端 private ClientZkAgent() { connect(); //...

2019-10-15 10:09:38 415

原创 Sqoop的简介及使用

Sqoop的介绍Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库 (例如 : MySQL ,Oracle ,Postgres等) 中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Sqoop的安装配置解压 tar -zxvf sqoop-1.4.4.b...

2019-10-08 15:11:58 334

原创 HBase简介及使用

HBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具。Hbase的相关概念主键RowKey主键是...

2019-10-08 15:00:27 635

原创 Hive简介及使用

Hive的简介Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内...

2019-10-08 14:35:28 323

原创 hadoop集群搭建

1、zk 集群搭建 zookeeper的默认配置文件为zookeeper/conf/zoo_sample.cfg,需要将其修改为zoo.cfg。其中各配置项的含义,解释如下: tickTime:CS通信心跳时间,Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime 以毫秒为单位,tic...

2019-09-30 18:17:08 174

原创 hadoop介绍及伪分布式搭建

1、解决问题 海量数据的存储(HDFS) 海量数据的分析(MapReduce) 资源管理调度(YARN)2、hadoop核心 HDFS: Hadoop Distributed File System 分布式文件系统 YARN: Yet Another Resource Negotiator3、HDFS的架构 主从结构 ...

2019-09-30 17:27:46 160

原创 深入剖析Redis高可用集群架构原理

redis集群方案比较1.哨兵模式架构哨兵监控集群服务的各节点的健康状态,master解决写服务,down之后选举salve为主节点问题:单台redis支持5w左右的并发,无法满足大并发的业务需求master挂掉之后,在选举的过程中,不能响应写服务节点内存有限,即内存瓶颈2.高可用模式架构(redis3.0之后官方架构)redis集群是一个由多个主从节点组成的...

2019-09-30 17:06:09 673

原创 HDFS原理

1、分布式文件系统2、HDFS特点数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。 是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。 通透性。让实际上是通过网络来访问文件的动作,由程序与用户看来,就像...

2019-09-30 16:58:50 117

原创 Spring集成quartz实现的定时任务调用

本示例使用Spring+quartz实现定时任务的调度,通过zookeeper+curator实现分布式锁,保证分布式任务串行运行,通过自定义注解实现任务的扫描及注册;1.添加相关的maven依赖,不包括spring<dependency> <groupId>org.apache.curator</groupId> <artifac...

2019-09-30 16:41:25 268

原创 从Spring代理的bean中获取代理对象

public class SpringTargetBeanUtils { /** * 获取 目标对象 * * @param proxy 代理对象 * @return * @throws Exception */ public static Object getTarget(Object proxy) throws Exc...

2019-09-30 15:50:41 2066

原创 SpringAop+Mybatis 实现动态切换数据库操作

在平常的项目开发中,会遇到一个应用中访问多个数据源的需求,本文将通过使用SpringAop+Mybatis与spring-jdbc的AbstractRoutingDataSource实现动态切换数据源;1.定义多个数据源的枚举:public enum DataSourceType { //第一个数据源 DATASOURCE_ONE, ...

2019-09-27 17:01:36 631

转载 Redis内存淘汰策略

Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小//设置Redis最大占用内存大小为100Mmaxmemory100mbredis的配置文件不...

2019-09-27 15:47:35 71

转载 datetime与timestamp的区别

timestamp与datetime的区别 a)DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。 这个区别就解释了为什么平时我们都不用可以管这个字段就能自动更新了,因为多数时候用的是timestamp;而此...

2019-09-27 15:41:00 242

转载 pip3 install tesserocr安装失败

安装Tesserocr遇到的很坑的就是在安装Tesserocr的时候,pip3 install pillow命令并没有那么顺利问题一:pip3 install pillow错误如下:先不要着急去安装Microdoft Visual C++ 14.0,我们换一种安装方式首先下载对应的.whl文件,一定要与tesseract版本配对:运行命令:pip3 installtes...

2019-08-13 18:13:25 2861

转载 Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?

Spring Boot 中默认打包成的 jar 叫做 可执行 jar,这种 jar 不同于普通的 jar,普通的 jar 不可以通过 java -jarxxx.jar 命令执行,普通的 jar 主要是被其他应用依赖,Spring Boot 打成的 jar可以执行,但是不可以被其他的应用所依赖,即使强制依赖,也无法获取里边的类。但是可执行 jar 并不是 Spring Boot 独有的,Ja...

2019-07-31 17:48:27 483

原创 eclipse pydev插件地址

http://dl.bintray.com/fabioz/pydev/

2019-03-26 09:36:41 218

转载 Centos下面Eclipse打开文件闪退

在centos操作系统下面,使用eclipse开发打开文件时,发生闪退情况,查了好久的资料,说是与火狐插件不兼容还是咋的,具体原因真心不知道,但解决方法倒是有,即在eclipse的安装目录下面找到eclipse.ini配置文件,在最后面加上下面几行代码即可:-Dorg.eclipse.swt.browser.DefaultType=mozilla-Dorg.eclipse.swt.brows...

2019-03-24 19:47:31 219

转载 yum安装时出现:Cannot retrieve metalink for repository: epel. Please verify its path and try again

解决方法: 一句话:把/etc/yum.repos.d/epel.repo,文件第3行注释去掉,把第四行注释掉。具体如下:打开/etc/yum.repos.d/epel.repo,将[epel]name=Extra Packages for Enterprise Linux 6 - $basearch#baseurl=http://download.fedoraproject.org/...

2019-03-11 14:17:11 760

原创 java SimpleDateFormat类浅析

1、SimpleDateFormat不是线程安全的:其中常用的format方法和parse方法会在多线程的情况下发生严重错误,这是因为在format方法中,会使用一个成员变量calendar来保存时间,private StringBuffer format(Date date, StringBuffer toAppendTo, ...

2018-12-28 14:27:32 197

原创 java单例模式的7种实现方式

1.懒汉式加载,最简单的单例模式,只需要2两步, a.把自己的构造方法设置为私有的,不让别人访问你的实例,b.提供一个static方法给别人获取你的实例public class Singleton{ private static Singleton singleton; private Singleton(){ } public static S...

2018-12-28 11:20:42 376 1

原创 mysql 排查问题一些小技巧

1.mysqldump 导入导出数据:mysqldump -uroot -ppassword -h 127.0.0.1 --no-create-info --databases 数据库名 --tables 表表名 --skip-lock-tables> C://db.sqlmysql -uroot -ppassword -h 127.0.0.1 --default-charac...

2018-12-25 18:53:08 1591

原创 mysql主从复制及读写分离

一、mysql主从同步原理1.为什么做主从同步:a.实时灾备,用于故障切换b.读写负载均衡c.单独应用使用(定时任务,报表系统等,不与业务系统进行交互)d.开发人员专用2.主从同步原理binlog:一些SQL语句,但是不包含查询语句,可以恢复数据;IOthread:专门从master同步biglog,放置在relay binlog中;SQLThread:...

2018-12-25 18:25:54 114

原创 Redis客户端Redisson+SpringBoot实现的分布式锁案例

1.Redisson介绍wiki:https://github.com/redisson/redisson/wiki/2.整合Spingboot实现分布式锁:   application.properties配置redis地址:redisson.address=redis://*.*.*.*:6379redisson.password=123456  Redisson相关配置及...

2018-12-25 18:05:11 1310

原创 tomcat8+linux+IDEA配置远程代码调试

1、修改tomcat目录bin目录下的catalina.sh CATALINA_OPTS= -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10089" 之后重启tomcat2.IDEA 配置                  ...

2018-11-15 14:34:22 201

原创 mybatis批量写入及批量更新

1.批量写入 insert into user_info ( id,name,age ) select #{item.id,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR},

2017-11-22 15:38:01 2067

原创 JDK动态代理与CGLIB的区别

JDK动态代理和CGLIB字节码生成的区别?

2017-11-22 14:03:48 1011

spring源码编译缺少的cglib和objenesis包

包括spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.1.jar,解决了spring源码编译后缺少的cglib和objenesis的问题。

2017-11-20

房屋出租系统

使用JDBC连接Mysql数据库设计的房屋出租系统,包含房屋信息的增删改查,以及客人的租房与退房功能。

2014-08-02

空空如也

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

TA关注的人

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