自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 Execution default of goal org.springframework.boot:spring-boot-maven-plugin: XXXX .RELEASE:repackage

Spring boot 执行打包操作时候,报错如下Execution default of goal org.springframework.boot:spring-boot-maven-plugin:XXXX RELEASE:repackage failed: Unable to find main class根源为,在我的项目场景下,只有如图的-boot子模块生产可执行JAR包,其他几个模块是不需要可执行的,而我的根POM里,spring boot 默认帮我加入了如下build策略<

2021-10-09 15:23:56 250

原创 2555555555555555555

Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)巨輪 2021-03-28 02:16:11 12834 收藏 315分类专栏: 面试题 文章标签: AQS Spring循环依赖 Redis LockSupport Java开发面试版权面试题专栏收录该内容3 篇文章18 订阅订阅专栏总览问题 详解String.intern()的作用 linkLeetCode的Two Sum题 link什么是可重入锁? li...

2021-09-09 13:38:04 403

原创 CentOS 7 单机安装Redis Cluster(3主3从)

为了节省机器,我们直接把6个Redis实例安装在同一台机器上(3主3从),只是使用不同的端口号。机器IP 192.168.8.207更新:新版的cluster已经不需要通过ruby脚本创建,删掉了ruby相关依赖的安装cd /usr/local/soft/redis-5.0.5mkdir redis-clustercd redis-clustermkdir 7291 7292 7293 7294 7295 7296复制redis配置文件到7291目录cp /usr/loc...

2021-03-10 09:07:40 328

原创 Redis一主二从Sentinel监控配置

开启哨兵模式,至少需要3个Sentinel实例(奇数个,否则无法选举Leader)。本例通过3个Sentinel实例监控3个Redis服务(1主2从)。IP地址 节点角色&端口192.168.8.203 Master:6379 / Sentinel : 26379192.168.8.204 Slave :6379 / Sentinel : 26379192.168.8.205 Slave :6379 / Sentinel : 26379防火墙记得关闭!!...

2021-03-10 09:06:37 144 1

原创 CentOS7安装Redis单实例

CentOS7安装Redis单实例由于环境差异,安装过程可能遇到各种各样的问题,不要慌,根据错误提示解决即可。1、下载redis下载地址在:redis.io比如把Redis安装到/usr/local/soft/cd /usr/local/soft/wget http://download.redis.io/releases/redis-5.0.5.tar.gz2、解压压缩包tar -zxvf redis-5.0.5.tar.gz3、安装gcc依赖Redis是C语.

2021-03-10 09:04:52 113 1

原创 重复提交,你是如何处理的?

今天早上,新来的同事小王突然问我:“周哥,什么是幂等性啊?”。然后我就跟他解释了一番,幂等性就是说无论你执行几次请求,其结果是一样的。说到了幂等就不得不说重复提交了,你连续点击提交按钮,理论上来说这是同一条数据,数据库应该只能存入一条,而实际上存放了多条,这就违反了幂等性。因此我们就需要做一些处理,来保证连续点击提交按钮后,数据库只能存入一条数据。防止重复提交的方式很多,这里我就说一下我认为比较好用的一种。自定义注解+Aop实现我们通过获取用户ip及访问的接口来判断他是否重复提交,假如这个...

2021-03-04 15:10:18 405 1

原创 MyBatis 三种批量插入方式的对比 !

数据库使用的是sqlserver,JDK版本1.8,运行在SpringBoot环境下对比3种可用的方式: 反复执行单条插入语句 xml拼接sql 批处理执行 先说结论:少量插入请使用反复插入单条数据,方便。数量较多请使用批处理方式。(可以考虑以有需求的插入数据量20条左右为界吧,在我的测试和数据库环境下耗时都是百毫秒级的,方便最重要)。无论何时都不用xml拼接sql的方式。代码拼接SQL的xmlnewId()是sqlserver生成UUID的函数,与本文内容无关&

2021-02-23 11:44:22 118

原创 SpringBoot整合Sharding-JDBC实现分库分表

概述什么是ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,由JDBC、Proxy和Sidecar三部分组成。其定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。更多详情请参阅ShardingSphere官网什么是分库分表随着时间和业务的发展,造成表里面的数据越来越多,如果再去对数据库表curd操作,很容易造成性能问题,这个时候,为了解决由于数据量过大而造成数据库性能降低的问题,常见的解决

2020-11-06 17:28:58 323

原创 Mysql索引学习笔记

Mysql索引学习笔记分类:Mysqlundefined1、分类  MySQL索引分为普通索引、唯一索引、主键索引、组合索引、全文索引。索引不会包含有null值的列,索引项可以为null(唯一索引、组合索引等),但是只要列中有null值就不会被包含在索引中。 (1)普通索引:create index index_name on table(column); 或者创建表时指定,create table(..., index index_name column); ...

2020-10-23 16:45:23 126

原创 lvs+nginx负载均衡

lvs+nginx负载均衡分类:Keepalived,Linux,Load Balancing,Nginx标签:Load Balancing1 学习目标掌握什么是负载均衡及负载均衡的作用和意义。了解lvs负载均衡的三种模式。了解lvs-DR负载均衡部署方法。掌握nginx实现负载均衡的方法。掌握lvs+nginx负载均衡拓扑结构。2 负载均衡方案2.1 什么是负载均衡 一台普通服务器的处理能力是有...

2020-10-23 16:44:03 754

原创 这篇 MySQL 索引和 B+Tree 讲的太通俗易懂!

正确的创建合适的索引,是提升数据库查询性能的基础。在正式讲解之前,对后面举例中使用的表结构先简单看一下:create table user( id bigint not null comment 'id' primary key, name varchar(200) null comment 'name', age bigint null comment 'age', gender int null comment '

2020-10-15 10:08:19 382

原创 Java:CAS(乐观锁)

本文讲解CAS机制,主要是因为最近准备面试题,发现这个问题在面试中出现的频率非常的高,因此把自己学习过程中的一些理解记录下来,希望能对大家也有帮助。什么是悲观锁、乐观锁?在java语言里,总有一些名词看语义跟本不明白是啥玩意儿,也就总有部分面试官拿着这样的词来忽悠面试者,以此来找优越感,其实理解清楚了,这些词也就唬不住人了。synchronized是悲观锁,这种线程一旦得到锁,其他需要锁的线程就挂起的情况就是悲观锁。 CAS操作的就是乐观锁,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突

2020-10-09 17:51:51 1172 2

原创 CAS

1、什么是CAS?CAS:Compare and Swap,即比较再交换。jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的,这是一种独占锁,也是是悲观锁。2、CAS算法理解对CAS的理解,CAS是一种无锁算法,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则

2020-10-09 17:34:39 181

原创 2020-10-09

AQS详解(面试)AQS原理AQS:AbstractQuenedSynchronizer抽象的队列式同步器。是除了java自带的synchronized关键字之外的锁机制。AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包AQS的核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并将共享资源设置为锁定状态,如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机

2020-10-09 17:33:46 68

原创 解决IDEA下SpringBoot启动没有Run Dashboard并找回

解决IDEA下SpringBoot启动没有Run Dashboard并找回前两天看到别人SpringBoot启动服务,启动器是长这样的而我的呢?是这样的Run Dashboard 它是一个代替Run窗口的一个更好清晰简洁的一个启动器。如果我们需要启动多个窗口时,Run窗口不能让我们直观的看到我们看到每一个端口的变化。(上图所示,一个服务占一个窗口)一般有时候创建springboot项目的时候右下角可以提示你打开RunDashboard,但是如果不提醒就需要自己配置了...

2020-09-27 10:19:46 1792 2

原创 Docker安装MySQL8

安装MySQL8.0:拉取镜像docker pull mysql:8.0创建并启动容器docker run --name mysql8.0 \-p 3306:3306 \--restart=always \-e MYSQL_ROOT_PASSWORD=root \-v /var/lib/mysql/:/var/lib/mysql/ \-d mysql:8.0 \--character-set-server=utf8mb4 \--collation-server..

2020-09-25 17:10:20 144

转载 “分布式事务”

收藏 | 第一次有人把“分布式事务”讲的这么简单明了不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。作者:咖啡拿铁来源:咖啡拿铁微信公众号|2018-08-14 09:28收藏分享又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。事...

2020-09-21 10:41:45 222

原创 rabbitmq

1.马上就要到了程序员的黄金时间了,也就是所谓的金三银四,作为一个实习生的我,也安耐不住我内心的骚动,也想试水自由市场,但是大家也都明白,不准备些面试题,是无法为自己加分的,我打算每周在上班之余抽时间研究一项技术,来和大家一起分享,打算研究的技术,都是现在比较主流的东西,弄明白了,基本面试就稳了,预计会在以后推出Redis RabbitMQ SpringCloud组件 ElasticSearch Spring Security Oauth2 zokeerper 其他希望大家能够时刻关注我.

2020-09-21 10:33:51 203

原创 mybatis 3.4.6源码深度解析之调用主流程

文章目录1 概述 2 环境搭建 3 项目层次结构介绍 4 mybatis解析配置文件时序图 5 mybatis 调用时序图1 概述MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,其通过XML配置的方式消除了绝大部分JDBC重复代码以及参数的设置,结果集的映射。作为开发人员,为了更好地学习和,有必要深入研究了解优秀框架的源码和mybatis的设计思路,以便更好的借鉴。同时,.

2020-09-18 08:41:25 137

原创 三种实现分布式锁的方式

一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均衡,大致如下图:上图可以看到,变量A存在JVM1、JVM2、JVM3三个JVM内存中(这个变

2020-09-17 17:48:03 1298

原创 分布式事务的四种解决方案

简述分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。解决方案在分布式系统中,要实现分布式事务,无外乎那几种解决方案。一、两阶段提交(2PC)两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真正执行事务。1. 运行过程1.1 准备阶段协调者询问参与者事务是否执行成功,参与者发回事务执行结果。

2020-09-17 17:46:06 751

原创 RocketMQ消息丢失场景及解决办法

作者:霁云HYY来源:https://blog.csdn.net/LO_YUN/article/details/103949317既然在项目中使用了MQ,那么就不可避免的需要考虑消息丢失问题。在一些涉及到了金钱交易的场景下,消息丢失还是很致命的。那么在RocketMQ中存在哪几种消息丢失的场景呢?先来一张最简单的消费流程图:上图中大致包含了这么几种场景: 生产者产生消息发送给RocketMQ RocketMQ接收到了消息之后,必然需要存到磁盘中,否则断电或宕机之后会.

2020-09-15 13:55:40 540

原创 如何保证缓存与数据库的双写一致性?

作者:你是我的海啸来源:https://blog.csdn.net/chang384915878分布式缓存是现在很多分布式应用中必不可少的组件,但是用到了分布式缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?Cache Aside Pattern最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。更新的时候,.

2020-09-15 13:55:26 70

原创 代码规范

1.导读昨天在技术交流群,有位读者吐槽刚刚接手的代码(文章标题),代码全篇无格式,无注释,多个嵌套不打括号,函数命名不规范,代码实在看不下去。随着软件项目代码的日积月累,系统维护成本变得越来越高,代码质量是所有软件团队面临的共同问题。持续地优化代码,提高代码的质量,是提升系统生命力的有效手段之一。软件系统思维有句话“Less coding, more thinking(少编码、多思考)”,也有这么一句俚语“Think more, code less(思考越多,编码越少)”。所以,我们在编码中多思

2020-09-15 11:23:44 65

原创 事务的实现原理

相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等。今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题:事务想要做到什么效果?按我理解,无非是要做到可靠性以及并发处理 可靠性:数据库要保证当insert或update操作时抛异常或者数据库crash的时候需要保障数据的操作前后的一致,想要做到这个,我需要知道我修改之前和修改之后的状态,所以就有了undo lo

2020-09-07 11:12:55 1751 2

原创 SVN服务器搭建和使用

Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说.首先来下载和搭建SVN服务器.现在Subversion已经迁移到apache网站上了,下载地址:http://subversion.apache.org/packages.html这是二进制文件包的下载地址,你可在左侧的导航栏找到源代码,文档的下载地址.windows操作系统下面的二进制文件包一共有5种,如图:个人认为最好用VisualSVN server 服务端和 TortoiseSVN客户端搭

2020-08-31 09:38:06 313

原创 如何保证API接口数据安全

前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互。网页或者app,只要抓下包就可以清楚的知道这个请求获取到的数据,也可以伪造请求去获取或攻击服务器;也对爬虫工程师来说是一种福音,要抓你的数据简直轻而易举。那我们怎么去解决这些问题呢?接口签名我们先考虑一下接口数据被伪造,以及接口被重复调用的问题,要解决这个问题我们就要用.

2020-08-27 13:37:21 1206

原创 自定义字段处理方式

前言 自定义字段又叫做“开放模型”,用户可以根据自已的需求,添加需要的字段,实现个性化定制。 使用自定义字段的目的,使用自定义字段解决哪些问题 如现有一套CRM系统,客户模块中客户信息,需要实现不同行业,不同业态都可以个性化需求。那我们知道客户信息表T_CUSTOM,如姓名,性别,电话 等基本通用属性是可以通用的,但如药疗行业客户需要记录体重,血压等,而运输行业的客户更关注货物品类,产量等,而又如快速消费品行业关注客户的爱好,年龄,星座啊,这些问题该如何处理呢? 自定义字段的设计与实现 a、

2020-08-27 11:51:13 1490

原创 ftp 上传、下载、删除文件

```javapackage com.ropeok.bacco.utils;import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;import java.io.*; /** * @Description: .

2020-08-19 17:38:24 404 1

原创 vue项目启动

npm installnpm config set registry http://registry.npm.taobao.org/npm run start安装vue插件

2019-05-08 16:54:41 199

原创 tomcat修改端口

2019-04-25 18:09:14 121

原创 单点登录

单点登录:idea乱码https://blog.csdn.net/qq_41264674/article/details/80945140http://www.cnblogs.com/ywlaker/p/6113927.htmlhttps://blog.csdn.net/albenxie/article/details/80266327https://blog.csdn...

2019-04-25 14:18:59 140

原创 软件授权

https://blog.csdn.net/wohaqiyi/article/details/82986646

2019-04-25 10:50:46 997 3

原创 zeroc ice笔记 第四节

2019-04-21 11:11:37 491

原创 zeroc ice笔记 第三节

2019-04-21 10:51:37 121

原创 zeroc ice笔记 第二节

2019-04-21 09:39:00 280

原创 技术交流

技术交流

2019-02-13 11:21:36 127

iOS学习路线图

iOS学习路线图,描述自学的步骤跟学习路线

2015-12-21

空空如也

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

TA关注的人

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