自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot-mybatis-oracle学习笔记

前言最近公司的项目是基于 oracle 数据库的,这里记录下 springboot+mybatis+oracle 的踩坑过程。开发前准备环境参数开发工具:IDEA基础工具:Maven+JDK8所用技术:SpringBoot+Mybatis+Oracle数据库:MySQL5.7SpringBoot 版本:2.2.6.RELEASEMybatis 版本: 2.1.2Oracle:...

2020-04-13 22:33:26 326

原创 spring-cloud-gateway降级

前言本文主要研究一下 spring cloud gateway 如何集成 hystrix。当下游接口负载很大,或者接口不通等其他原因导致超时,如果接口不熔断的话将会影响到下游接口得不到喘息,网关也会因为超时连接一直挂起,很可能因为一个子系统的问题导致整个系统的雪崩。所以我们的网关需要设计熔断,当因为熔断器打开时,网关将返回一个降级的应答。Maven 配置添加 hystrix 依赖pom....

2020-04-07 23:15:36 592

原创 spring-cloud-gateway限流

概述限流:网关上有大量请求,对指定服务进行限流,可以很大程度上提高服务的可用性与稳定性,限流的目的是通过对并发访问/请求进行限速,或对一个时间窗口内的请求进行限速来保护系统。一旦达到限制速率则可以拒绝服务、排队或等待、降级。在 Spring Cloud Gateway 中,有 Filter过滤器,因此可以在 pre 类型的 Filter 中自行实现上述三种过滤器。但是限流作为网关最基本的功能,...

2020-04-07 23:14:15 621

原创 spring-cloud-gateway动态路由

概述线上项目发布一般有以下几种方案:停机发布蓝绿部署滚动部署灰度发布停机发布 这种发布一般在夜里或者进行大版本升级的时候发布,因为需要停机,所以现在大家都在研究 Devops 方案。蓝绿部署 需要准备两个相同的环境。一个环境新版本,一个环境旧版本,通过负载均衡进行切换与回滚,目的是为了减少服务停止时间。滚动部署 就是在升级过程中,并不一下子启动所有新版本,是先启动一台新版本,再...

2020-04-04 17:30:03 350

原创 spring-cloud-gateway静态路由

为什么引入 API 网关使用 API 网关后的优点如下:易于监控。可以在网关收集监控数据并将其推送到外部系统进行分析。易于认证。可以在网关上进行认证,然后再将请求转发到后端的微服务,而无须在每个微服务中进行认证。减少了客户端与各个微服务之间的交互次数。基本环境见 spring-cloud-gateway 简介, 项目中 provider1 的 maven 配置在此做下更正pom.x...

2020-04-04 16:16:09 2425

原创 activiti6官方示例笔记

概述要想学习 activiti工作流, 入门便是学习官方的示例。下边我将基于官方的 demo 做一遍流程,考虑自己的业务该如何基于 activiti 设计逻辑。工作流要素:流程表单用户有了以上 3 大要素,流程便可以流转。表单绑定在流程节点上,用来输入当前流程信息用户绑定在流程节点上,用来处理当前流程任务下载安装首先到 官方 下载 activiti6.0.0。对 ...

2020-04-02 23:02:16 802

原创 spring-cloud-gateway过滤器实践

概述这里是 SpringCloud Gateway 实践的第一篇,主要讲过滤器的相关实现。Spring-Cloud-Gateway 是以 WebFlux 为基础的响应式架构设计, 是异步非阻塞式的,它能够充分利用多核 CPU 的硬件资源去处理大量的并发请求。本篇将基于 spring-cloud-gateway 简介 基础环境进行改造。工作原理Spring-Cloud-Gateway 基于过...

2020-04-01 22:29:13 543

原创 spring-cloud-gateway简介

概述API网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求。如果让客户端直接与各个微服务通信,会有以下的问题:客户端会多次请求不同的微服务,增加了客户端的复杂性。存在跨域请求,在一定场景下处理相对复杂。认证复杂,每个服务都需要独立认证。难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合...

2020-04-01 22:27:08 245

原创 设计模式--策略模式

1. 概述策略模式(Strategy Pattern)是比较典型的对象行为型模式,它是将对处理对象的一系列不同算法都单独抽离出来,单独封装成一个个类。策略的出现,主要是为了解决不同算法替换时的逻辑判断,将逻辑判断移到 Client 中去(即由客户端自己决定在什么情况下使用什么具体策略)。2. 模式结构策略模式包含如下角色:Context: 环境类,也叫做上下文角色,起承上启下封装作用; ...

2020-03-18 20:29:27 184

原创 学习ConcurrentHashMap1.7分段锁原理

1. 概述接上一篇 学习 ConcurrentHashMap1.8 并发写机制, 本文主要学习 Segment分段锁 的实现原理。虽然 JDK1.7 在生产环境已逐渐被 JDK1.8 替代,然而一些好的思想还是需要进行学习的。比方说位图中寻找 bit 位的思路是不是和 ConcurrentHashMap1.7 有点相似?接下来,本文基于 OpenJDK7 来做源码解析。2. Concurr...

2020-03-17 22:01:09 2012 3

原创 学习ConcurrentHashMap并发写机制

1. 前言上篇文章讲了 Unsafe 类中 CAS 的实现,其实是在为这篇文章打基础。不太熟悉的小伙伴请移步Unsafe 中 CAS 的实现。本篇文章主要基于 OpenJDK8 来做源码解析。2. 源码ConcurrentHashMap 基于 HashMap 实现。JDK1.7 和 JDK1.8 作为并发容器在实现上是有差别的。JDK1.7 通过 Segment 分段锁实现,而 JDK1....

2020-03-15 23:53:01 232

原创 Unsafe中CAS的实现

前言Unsafe 是位于 sun.misc 包下的一个类。Unsafe 提供的 API 大致可分为内存操作、CAS、Class 相关、对象操作、线程调度、系统信息获取、内存屏障、数组操作等几类。由于并发相关的源码很多用到了 CAS,比如 java.util.concurrent.atomic 相关类、AQS、CurrentHashMap 等相关类。所以本文主要讲 Unsafe 中 CAS 的实现...

2020-03-15 11:17:26 443

原创 LinkedHashMap源码解读

1. 前言还是从面试中来,到面试中去。面试官在面试 Redis 的时候经常会问到,Redis 的 LRU 是如何实现的?如果让你实现 LRU 算法,你会怎么实现呢?除了用现有的结构 LinkedHashMap 实现,你可以自己实现一个吗?跳跃表、小顶堆行不行…阅读这篇文章前建议大家先熟悉下Java 面试必问之 Hashmap 底层实现原理(JDK1.8)。LinkedHashMap 基于 Ha...

2020-03-14 00:24:32 119

原创 Hashset源码分析

1. 概述Hashset 实现 set 接口,底层基于 Hashmap 实现, 但与 Hashmap 不同的实 Hashmap 存储键值对,Hashset 仅存储对象。HashSet 使用成员对象来计算 hashcode 值。2. 原理在《Head fist java》一书中有描述:当你把对象加入 HashSet 时,HashSet 会先计算对象的 hashcode 值来判断对象加入的位...

2020-03-12 18:08:13 116

原创 复盘MySQL分页查询优化方案

一、前言MySQL分页查询作为Java面试的一道高频面试题,这里有必要实践一下,毕竟实践出真知。很多同学在做测试时苦于没有海量数据,官方其实是有一套测试库的。二、模拟数据这里模拟数据分2种情况导入,如果只是需要数据测试下,那么推荐官方数据。如果官方数据满足不了需求的话,那么我们自己模拟数据。1. 导入官方测试库下载 官方数据库文件 或者在 github 上下载。该测试库含有6个表。...

2020-03-10 21:53:14 155

原创 Java面试必问之Hashmap底层实现原理(JDK1.8)

1. 前言上一篇从源码方面了解了JDK1.7中Hashmap的实现原理,可以看到其源码相对还是比较简单的。本篇笔者和大家一起学习下JDK1.8下Hashmap的实现。JDK1.8中对Hashmap做了以下改动。默认初始化容量=0引入红黑树,优化数据结构将链表头插法改为尾插法,解决1.7中多线程循环链表的bug优化hash算法resize计算索引位置的算法改进先插入后扩容2. H...

2020-03-06 09:44:05 429

原创 Java面试必问之Hashmap底层实现原理(JDK1.7)

1. 前言Hashmap可以说是Java面试必问的,一般的面试题会问:Hashmap有哪些特性?Hashmap底层实现原理(get\put\resize)Hashmap怎么解决hash冲突?Hashmap是线程安全的吗?…今天就从源码角度一探究竟。笔者的源码是OpenJDK1.72. 构造方法首先看构造方法的源码 // 默认初始容量 static final ...

2020-03-05 13:09:24 693

原创 Docker实战之Kafka集群

1. 概述Apache Kafka 是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统。其具有高吞吐量、内置分区、支持数据副本和容错的特性,适合在大规模消息处理场景中使用。笔者之前在物联网公司工作,其中 Kafka 作为物联网 MQ 选型的事实标准,这里优先给大家搭建 Kafka 集群环境。由于 Kafka 的安装需要依赖 Zookeeper,对 Zookeeper 还不了解的小伙伴...

2020-03-04 20:06:23 275

原创 Docker实战之Zookeeper集群

1. 概述这里是 Docker 实战系列第四篇。主要介绍分布式系统中的元老级组件 Zookeeper。ZooKeeper 是一个开源的分布式协调服务,是 Hadoop,HBase 和其他分布式框架使用的有组织服务的标准。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。读过 D...

2020-03-03 22:17:13 321

原创 Docker实战之Consul集群

前言最近参加了几场 Java 面试,发现大多数的微服务实践还是 Eureka 偏多,鉴于笔者的单位选型 Consul,这里对 Consul 做简单总结。该篇是 Docker 实战系列的第三篇。传送门:Docker 实战之 MySQL 主从复制Docker 实战之 Redis-Cluster 集群为什么选 Consul?首先 Consul 有以下几个关键特性:服务发现:支持服务发...

2020-03-02 23:13:10 231

原创 Docker实战之Redis-Cluster集群

概述接上一篇Docker实战之MySQL主从复制, 这里是Docker实战系列的第二篇,主要进行Redis-Cluster集群环境的快速搭建。Redis作为基于键值对的NoSQL数据库,具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,同时Redis本身非常稳定,已经得到业界的广泛认可和使用。在Redis中,集群的解决方案有三种主从复制哨兵机制ClusterRedis ...

2020-03-01 19:15:50 1677 2

原创 通过乐观锁解决库存超卖的问题

前言在通过多线程来解决高并发的问题上,线程安全往往是最先需要考虑的问题,其次才是性能。库存超卖问题是有很多种技术解决方案的,比如悲观锁,分布式锁,乐观锁,队列串行化,Redis原子操作等。本篇通过MySQL乐观锁来演示基本实现。开发前准备1. 环境参数开发工具:IDEA基础工具:Maven+JDK8所用技术:SpringBoot+Mybatis数据库:MySQL5.7Spri...

2020-02-29 22:36:58 985 2

原创 Docker实战之MySQL主从复制

前言曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批?其实很多时候,我们所缺少的只是对高大上的技术的演练。没有相关的业务需求,没有集群环境,然后便只是Google几篇博文,看下原理,便算是了解了。然而真的明白了吗?众多的复制粘贴中,那篇文章才对我们有用,哪些又是以讹传讹?所幸容器技术的快速发...

2020-02-28 23:06:59 178

原创 JVM类加载器是否可以加载自定义的String

前言曾经有一次,面试官问到类加载机制,相信大多数小伙伴都可以答上来双亲委派机制,也都知道JVM出于安全性的考虑,全限定类名相同的String是不能被加载的。但是如果加载了,会出现什么样的结果呢?异常?那是什么样的异常。如果包名不相同呢?自定义类加载器是否可以加载呢?相信面试官从各种不同的角度出击,很快就会答出漏洞,比较咱没有深入研究过虚拟机...接下来笔者就针对上述问题进行一一验证。该篇文章抱...

2020-02-28 15:35:12 1341

原创 设计模式--单例

概述单例模式(SingletonPattern),保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式有 3 个特点:单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点;在很多比较大型的程序中,全局变量经常被用到。如果不用全局变量,那么在使用到的模块中,都需要用参数将全局变量传入,这是非常麻烦的。虽然要减少使用全局变量,但...

2020-02-27 21:15:39 782

原创 多线程--线程池的正确打开方式

概述线程可认为是操作系统可调度的最小的程序执行序列,一般作为进程的组成部分,同一进程中多个线程可共享该进程的资源(如内存等)。JVM线程跟内核轻量级进程有一对一的映射关系,所以JVM中的线程是很宝贵的。一般在工程上多线程的实现是基于线程池的。因为相比自己创建线程,多线程具有以下优点线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。可以根据系统的承受能力,...

2020-02-26 10:30:41 1578

原创 设计模式--概述

写在前边《庚子年记》 以前总是听说: 今年是经济形势最差的一年,各企业都准备过冬。没想到2020仅一个月就打败了最难过的2019。 笔者于2019年底裸辞,原计划2020春招再工作,怎耐遇上了武汉疫情。举国闭门谢客,当然也包括往日的金三银四。各大小企业纷纷缩减开支,立求生存下去,求职市场略显惨淡。值此之际,获得了难得的学习时间,想趁着自由的时光巩固下知识,打牢基本功。回首以前做过的项目,愈发频...

2020-02-25 18:45:05 774

原创 mysql 主从复制

参照上一篇我们创建的数据库。这里我们做主从mysql1、Master配置     1.1、   vi etc/my.cnf:        log-bin=mysql-binserver-id=2binlog-ignore-db=information_schemabinlog-ignore-db=clusterbinlog-ignore-db=mysqlbinlog-...

2018-07-15 02:50:57 175

原创 centos安装MySQL

首先放上官方链接:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/我的系统环境是centos7.默认没有安装wget,yum中没有MySQL repository,以下为安装过程:1、安装wget:        sudo yum install -y wget2、wget下载mysql源:        wget...

2018-07-14 18:00:53 213

原创 gRpc Hello-world入门

一般我们调用数据得时候都是通过Restful API接口调用。RPC调用方式为分布式中通过TCP之类得协议直接调用服务得方法。gRpc就是这样得框架网上得很多示例都没跑起来,这里再JAVA环境下记录下demo过程 1、首先创建一个空maven项目2、pom文件如下:<dependencies> <dependency> ...

2018-06-27 17:13:46 312

原创 java报文解析

package com.ud.ruleengine.utils;import java.math.BigInteger;public class ParseUtils { /** * 截取byte数组 * @param src * @param begin * @param count * @return * 小端,有符...

2018-06-12 19:47:01 10464

原创 POI导入导出50W条数据

请问从Excel导入50W条数据进Mysql,会出现什么问题,如何解决?首先回答第一个问题,50W条应该算是一个大数据了,POI数据导入过程应该是先把数据读取到内存,在内存中进行编辑后再insert到数据库,这样的话问题就出现了——内存溢出。那我们怎么解决这个问题呢?官方给出了解决方案1、分段缓存刷新官方demo: http://poi.apache.org/spreadsheet/how-to....

2018-05-03 22:29:32 857

原创 java 操作系统cmd示例

package com.shanglan.erp.ffmpeg.service;import com.shanglan.erp.ffmpeg.config.FFmpegConfig;import com.shanglan.erp.ffmpeg.entity.TaskEntity;import java.io.IOException;import java.util.ArrayLis

2017-12-01 10:57:19 352

转载 java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流

为方便查阅进行了转载,如有侵权,请作者联系删除前言:之前已经对FFmpeg命令进行了封装http://blog.csdn.net/eguid_1/article/details/51787646,但是当时没有考虑到扩展性,所以总体设计不是太好,需要改动的地方也比较多,也不支持原生ffmpeg命令,所以本次版本推翻了前面的版本重新设计接口和实现,全面支持各个流程注入自己的实现,并且在

2017-11-27 17:44:54 2274

转载 Spring使用POI实现Excel导入导出

Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。

2017-11-24 15:05:07 805

转载 poi导出数据(需要合并单元格)

[java] view plain copyimport java.io.IOException;  import java.io.OutputStream;  import java.io.UnsupportedEncodingException;  import java.lang.reflect.InvocationTargetException;

2017-11-24 14:58:45 436

转载 SpringMVC实现poi 解析excel 导入导出

SpringMVC实现poi 解析excel 导入导出 详解听说csdn编辑支持markdown了,果断从博客园转了过来(谁让我是markdown中毒依赖者~~)。这是我在csdn博客上的第一篇文章。最近,我在公司的项目上做了许多个模块涉及excel的导入导出解析,想把这些模块总结成文字,与大家分享,有不足之处,还望指正!1.引入poi jar要良好支持XSSF的话,下

2017-11-24 14:57:31 954

转载 项目中使用POI导出Excel的一些心得(包含复杂表头和动态页数与列数)

最近使用poi做Excel导出较多,应用场景也各种各样,导致基本都是按需求自己手动拼的Excel,网上的通用工具类大多不适合业务需要,简单记录下来以免下次用到。通用版(根据jsp上的表格内容动态生成Excel)工具类@SuppressWarnings("deprecation") public static void fromHtmlTable(String tab

2017-11-24 14:56:19 1719

转载 Java 执行系统命令

Java 执行系统命令在Java中执行系统命令,主要是使用ProcessBuilder和Runtime.getRuntime().exec()。而在这里主要是介绍两种方法的使用。使用情景是在linux系统中,使用mencoder来进行视频转码。将视频转为flv格式,因为转为flv格式命令较为简单,如要转为MP4格式,可以看官方文档介绍一.使用Runtime##上

2017-11-21 16:56:27 515

转载 当我遇上你csy 海康IPC+NVR+路由器+ffmpeg+nginx实现网页/Android/IOS的HLS直播

研究摄像头直播有一个月了,最终领导决定使用HLS协议进行摄像头实时预览,原因是HLS对移动端和Web端都能有比较好的支持总体思路大致如下:1.搭建好IPC和NVR环境后,可以通过NVR的IP地址(内网)和rtsp协议访问到关联此NVR的IPC视频2.通过路由器的端口映射功能,将NVR的端口映射到外网上,这样我们就能通过外网IP和映射的外网端口访问到与承此NVR关联的所有IP

2017-11-21 10:21:11 1055

可自行扩展的下拉刷新上拉加载的listView

头布局,尾布局可自行修改显示不同的刷新样式

2015-11-07

空空如也

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

TA关注的人

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