自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术宝库

荣耀的背后是不断的付出与坚持!

  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySQL 中的 ibdata1 文件过大如何处理?

使用独享表空间,将表空间分别单独存放。MySQL开启独享表空间的参数是 Innodb_file_per_table,会为每个Innodb表创建一个 .idb的文件。ibdata1 是InnoDB的共有表空间,默认情况下会把表空间存放在一个名叫 ibdata1的文件中,日积月累会使该文件越来越大。到此,就完成了大文件的删除,并且以后会分而治之的存储。

2023-12-27 16:40:28 682 1

原创 RPC初识

RPC 是帮助我们屏蔽网络编程细节,实现调用远程方法就跟调用本地(同一个项目中的方法)一样的体验,我们不需要因为这个方法是远程调用就需要编写很多与业务无关的代码。屏蔽远程调用跟本地调用的区别,让我们感觉就是调用项目内的方法;隐藏底层网络通信的复杂性,让我们更专注于业务逻辑。很方便的从“单体”演进成“微服务化”解决实际开发中的效率低下、系统耦合等问题。

2022-11-16 10:18:41 512 1

原创 Keepalive 高可用环境详解

前言本篇文章主要介绍keepalive的高可用实现原理,以及keepalive配合Nginx实现高可用环境的详细过程。keepalive原理简介Keepalived软件主要通过VRRP协议实现高可用功能的。VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题,它能够保证当个别节点宕机时,整个网络可以不间断地运行。keepalived除了能够管理LVS软件外,还可以作为其他服务(Nginx,Hap

2021-12-28 16:26:22 2243 1

原创 Kafka 初识

kafka 是由LinkedIn公司开发的,是一个分布式、支持分区的、多副本的,基于zookeeper协调的分布式消息系统,它的最大特点就是可以实时的处理大量数据以满足各种需求场景:比如基于Hadoop的批处理系统、低延迟的实时系统、storm/spark流式处理引擎,web/nginx日志、访问日志、消息服务等,用Scala语言编写,LinkedIn于2010年贡献给了Apache基金会并成立顶...

2020-04-21 18:19:34 240

原创 Java实现微信小程序模板推送

实现小程序推送 需要以下配置信息:1,小程序appid2,小程序AppSecret(密匙)3,小程序推送模版id4,用户的openid5,用户的formid(一个formid只能用一次)APPID、APPsecret、模板ID 都是可以通过微信公众平台 直接过去拿到的,而openId是需要调用方 传给我们。formId 是收集用户触发的动作,官方文档讲formId的有效期是7天,且一...

2019-11-18 15:18:57 973

原创 Java 中的异步方法在Spring中的使用

Java使用异步方法时,需注意以下几点:1、调用异步方法时,一定要在其他类中调用,在同类中是不生效的。2、测试时,尽量使用postman去测,用测试类有时候会执行无结果,也没有不会异常;3、异步方法是没有返回值的,因为方法中的函数 都是异步的,不知道谁先执行结束;在Spring中调用异步方法:在方法上使用注解 @Async ,且当前类是在Spring管理类中,其次,在启动类中添加注解 @...

2019-11-12 17:23:22 646

原创 Java 上传文件至阿里云0SS

一、背景本地浏览器导出功能因数据量大,出现浏览器卡顿、崩溃的情况下,我们可以通过优化代码、sql来缓解,当出现非代码优化所能处理卡顿的情况时,就需要换种思路处理导出功能了,那就是 实现异步导出(浏览器点击导出时,执行异步方法,边写入处理任务、边执行导出功能,这时很慢的导出在后台运行,前台客户无感知,等异步下载完成后,更薪任务状态,通知客户下载完毕,可以下载了。这条任务需要存入数据表里)。实现思路...

2019-11-12 17:17:36 648

原创 Mybatis 之 useGeneratedKeys 参数的用法

在Mybatis中,有三个位置可以设置 参数“useGeneratedKeys”:1、在setting元素中设置 useGeneratedKeys参数,对于支持自动生成主键的数据库,如 mysql,sql server,此时设置useGeneratedKeys为 true,在执行插入记录之后,可以读取到数据库自动生成的主键ID。在setting元素中设置的useGeneratedKeys是一个...

2019-09-10 17:22:44 6342

原创 ArrayList 源码解析

一、ArrayList的概述ArrayList 是我们开发中常用的一种数据结构,它的底层是基于数组实现的,是一个动态数组,容量你可以动态 增加,ArrayList实现Serializable 接口,他能支持序列化传输;实现了RandomAccess接口,支持快速随机访问,也就是通过下标可以实现快速访问;实现了Cloneable 接口,意味着可以被克隆。二、ArrayList 的源码解析首先看...

2019-03-21 14:28:19 145

原创 为什么一定要用消息中间件

目前市面上常见的几种中间件有 ActiveMQ、RabbitMQ、Kafka等。ActiveMQ: 可用于 异步调用 、系统解耦等 功能很强大,但是对于高并发、高负载、高吞吐量的复杂场景在国内落地较少;RabbitMQ: 可以支撑高并发、高吞吐、性能很高,同时有非常完善的后台管理界面,支持集群化、高可用部署、消息高可靠支持;Kafka: 超高吞吐量的实时日志采集、实时数据...

2019-01-28 20:16:20 6490 1

原创 Spring Cloud (六):分布式配置中心(Spring Cloud Config)

一、简介在分布式系统中,由于服务数量较多,为了方便服务配置文件统一管理、实时更新,所以需要配置中心组件。在Spring Cloud中,有分布式配置中心组建 Spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程仓库Git中。在spring cloud config 组件 中,分两个角色,一是config server,二是config client...

2019-01-24 17:45:34 247

原创 Spring Cloud (五):路由网关(Zuul)

在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由于这几个基础组件互相协作,共同组建了一个简单的微服务系统。一个简单的微服务系统的如下:注:服务A 与 服务B 同样可以互相调用,且配置服务也是注册到服务注册中心的。在SpringCloud 微服务中,一种常见的负载均衡方式是:客户端的请求首先经过负载均衡(zuul、Nginx)...

2019-01-23 17:19:56 212

原创 Spring Cloud (四):断路器(Hystrix)

在微服务架构中, 根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,程资源会被消耗Servlet容器的线完毕,导致服...

2019-01-22 20:23:24 201

原创 Spring Cloud (三):服务消费者(Feign)

一、简介Feign 是一个声明式的伪Http客户端,它使得写Http客户端变的更简单。使用Feign只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign 默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。简而言之:Feign 采用的是基于接口的注解Feign 整合了ribbon,具...

2019-01-18 14:55:37 224

原创 Spring Cloud (二):服务消费者(rest + ribbon)

在微服务架构中,业务都会被拆分成一个独立的服务,服务于服务的通讯是基于 http restful 的。Spring Cloud有两种服务调用方式。一种是 ribbon + restTemplate,另一种是 feign,首先讲下基于 ribbon + rest。一、ribbon 简介ribbon 是一个负载均衡客户端,可以很好的控制http和tcp的一些行为。Feign 默认集成了ribbo...

2019-01-17 13:45:14 257

原创 Spring Cloud (一):服务的注册与发现

一、Spring Cloud 简介Spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等。它运行环境简单,可以在开发人员电脑上运行。另外说明Spring cloud是基于springboot的。二、创建服务注册中心在这里我们需要用到的组件Spring cloud Netflix 的Eur...

2019-01-16 19:41:04 187

原创 Docker 初识

一、什么是Docker?Docker 是一个开源的应用容器引擎,基于Go语言并遵循Apache2.0协议开源。可以让开发者打包自己的应用以及依赖包到一个轻量级、可移植的容器中,发布到linux上实现虚拟化。docker仓库(Registry): Docker仓库用来保存镜像;docker镜像(Images): Docker镜像用于创建Docker容器的模板;docker容器(Contain...

2018-11-30 18:56:23 121

转载 Nginx 安装及配置详解

nginx概述nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。这里主要通过三个方面简单介绍nginx反向代理负载均衡nginx特点1. 反向代理关于代理说到代理,首先我们要明确一个概念,所谓代理就是...

2018-04-04 15:47:23 351

原创 Redis 主从复制

一、什么是redis的主从复制?行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的 master/slave机制,Master以写为主,Slave以读为主二、作用读写分离, 容灾恢复三、如何使用?1、配从(库)不配主(库) 2、从库配置:salveof 主库ip 主库端口 注意:当从库每次与master断开连接之后,都需要重新连接,除...

2018-03-16 13:31:12 209

原创 Redis持久化之 RDB & AOF

RDB在指定时间间隔内将 内存中的数据集快照写入磁盘,也就是行话讲的 Snapshot快照,它恢复时是将快照文件直接读到内存里。 1、原理 备份原理:Redis会单独创建一个(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,等持久化结束了,再用这个临时文件替换上次持久化好的文件。 缺点是最后一次持久化的数据可能会丢失。 2、fork fork 的作用是复制一个与...

2018-02-12 16:58:06 241

原创 ActiveMQ(一): 入门篇

JMSActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。它是面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。前言: 在没有JMS出现的时候,很多应用系统存在这样的一种缺陷: 1、通信的异步性 client 端发起

2018-02-01 13:40:00 213

原创 Spring Boot(五):开启quartz定时任务

除了Java 中内置的定时任务之外,一般都使用quartz的cron 表达式做定时任务 一、quartz定时任务cron 的格式 : “* * * * * ?” 至少有6个(也可以7个) 由空格分隔的时间元素 含义说明: "0 */1 * * * ?" 每分钟执行一次(循环) 斜杠代表轮询执行

2018-01-26 15:31:44 1266

原创 Spring boot(四):整合Mybatis

目前暂整理这两种方式,亲测可用 一、注解的方式 1、引入依赖 在pom文件中引入 mybaits-spring-boot-starter的依赖:dependency> groupId>org.mybatis.spring.bootgroupId> artifactId>mybatis-spring-boot-starterartifactId> versio

2018-01-23 15:43:24 259

原创 Spring boot(三):Web 进阶

一、表单校验 1、 后端校验同样是通过注解的形式进行设置 在实体类中属性上添加注解/*** Created by Advancer on 2017/12/19 21:08.* auth: lbh*/@Entity //注解的包 都是引用的 javax.persistence 下的public class User { @Id @Gener

2018-01-18 18:17:05 262

原创 Spring Boot(二):整合 JPA 及 事务控制

一、什么是JPA? JPA(Java Persistence API) Java 持久层API,是JDK5.0注解或XML描述 对象-关系表的映射关系,并将运行期内的实体对象持久化到数据库中。 JPA的总体思想和现有Hibernate、TopLink、Jdo等ORM框架大体一致,总的来说,JPA 包括以下3方面的技术: 1、ORM映射元数据 JPA支持XML和JDK5.0注解两种元数据的形

2018-01-17 18:04:33 15143 2

原创 Spring Boot(一):入门篇

一、什么是 spring Boot? Spring Boot 是由Pivotal团队提供的全新的框架,其设计目的是用来简化新的Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。(对Spring系列的框架进行了整合、简化)二、Spring Boot 的特点 在编码、配置、部署、监控 上变的简单, 是微服务的入门级框架。

2018-01-16 19:04:25 427

原创 Redis的几大数据类型常用命令总结

redis 默认有16个库,编号从0开始,0~15; 统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上; redis的索引都是从0开始的; Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 1、key关键字keys * #查看当前库所有keyFLUSHDB #删除当前库的

2017-11-16 20:40:07 430

原创 在Centos 7 下redis的安装

一、前提环境 在Linux系统中安装软件我是利用xshell进行远程连接,xftp传输文件,要使Linux系统与本地主机进行通信,需要进行网络配置。在 VMware安装的过程中,会自动建立两个网络适配项(VMnet1 和 VMnet8)。 vmnet1 :host-only, 就是说,选择用vmnet1的话就相当于VMware给你提供了一个虚拟交换机,仅将虚拟机和真实系统连接上了,虚

2017-11-14 18:18:43 305

原创 分布式数据库中的CAP原理 CAP+BASE

1、在传统的关系型数据库中,事物(transaction)遵循ACID四种规则: ① A(Atomicity) 原子性:事物里的所有操作要么全部做完,要么都不做,一条失败,全部回滚。 ② C(Consistency) 一致性:数据要一直保持一致的状态,事物的运行不会影响一致性约束。 ③ I(Isolation) 独立性:并发的事物之间不会互相影响。 ④ D(Durability) 持久性:数

2017-10-23 23:10:17 412

原创 互联网背景下为什么会出现NoSQL?

一、传统应用模式 (ALL IN ONE) 所有的东西都部署在一台机器上,包括站点、数据库、文件等等(现在阿里云的出现方便了很多)。核心工作就是:前端传过来一些数据,然后业务逻辑层拼装,然后访问数据库,数据库返回数据,数据拼装成页面,最终返回到浏览器。 这时候数据库可能会率先成为瓶颈,在流量峰值期容易宕机,第一可以优化sql语句,第二,典型的应用都是读数据库频率远大于写数

2017-10-22 22:17:22 5350

原创 Java 8 新特性——Stream API

一、为什么需要用Stream? Java8 中的Stream API 它与Java.io包里的InputStream 和 OutputStream 是完全不同的概念,也不同于StAX对XML解析的Stream。 它提供了一种高效且易于使用的处理数据的方式,是对集合(Collection)对象功能的增强。 它可以指定对集合的操作,可以执行非常复杂的查找、过滤、映射数据等操作。 使用Strea

2017-10-16 22:02:27 222

原创 Java 8 新特性——lambda表达式

在今年的九月份Java9刚刚发布,而Java8的几大新特性还不了解。 Java8新特性的特点:速度更快代码更少(增加了新语法 Lambda表达式)强大的Stream API便于并行最大减少空指针异常 optional Lambda 表达式与 Stream API 最为核心。Lambda 是一个匿名函数,我们可以把Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递

2017-10-11 12:06:02 276

转载 数据库设计范式(MySQL为例)

目前数据库设计中存在着五中设计范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),巴斯.科德范式(BCNF),第四范式(4NF),第五范式(5NF)。数据库设计的最低要求是要满足第一范式,在此基础上再满足上一级范式。范式的级别越高,数据设计的就是越合理。通常数据库的设计满足第三范式就可以了。第一范式第一范式(1NF)是指在关系模型中,对域添加的一个规范要求,所有的域都应该是原子性的,即

2017-08-29 17:03:39 268

原创 二. Shiro 环境初步搭建

Shiro 集成 Spring, 搭建 Shiro+Spring+SpringMVC+Mybatis 环境,数据源为 DruidDataSource一. 步骤传统的SSM框架不再叙述,直接集成Shiro配置 1. 首先在 web.xml 中加入 ShiroFilter <!-- 1. 配置 shiro 的 shiroFilter 2. DelegatingFil

2017-08-25 16:10:38 259

转载 一. Shiro 概述

1,什么是Apache Shiro?Apache Shiro是一个强大而灵活的开源框架,通常用来处理认证,授权,企业会话管理和加密等。利用Apache Shiro可以实现以下功能:鉴定用户的识别身份控制用户的访问权限在任何环境中使用session API,即使没有WEB或是EJB容器在认证,访问控制,session管理期间,对事件做出响应2,Apache Shiro featuresAut

2017-08-24 16:19:49 265

原创 Java下载模板文件(Excel demo)

一:思路 1.0 使用场景用例: 数据导入功能使用模板文件作为参考,先从服务器中下载模板,然后编辑实际数据信息,再上传文件信息。 1.1 首先在相应的模板目录中(…\Choice\template)存放好模板文件,接下来就是实现导入了。二:步骤 在页面定义“下载模板”按钮,发送导出功能请求; 在控制层中直接调用应用层/工具类里的下载方法。 /**

2017-07-10 14:12:18 7108 2

原创 Oracle导出表结构至Excel

为了整理复杂的系统数据表结构,方便以后研发人员工作,特此整理数据字典。oracle表结构涉及到几个关键的系统表:cols –系统表 user_col_comments –表名、列名、说明 user_tab_comments –表名、类型、说明 user_objects – 字典表视图 真正导出的SQL语句整理如下:SELECT t1.Table_Name || chr(13) || t3.

2017-06-07 15:11:45 21378 5

原创 Oracle 中关键字 ‘exists‘ 与 ‘in’ 详解

IN(list) 和 NOT IN(list) 等于列表其一和不等于列表其一,IN(list) 还常用于判断一个子查询的结果集;EXISTS(): 用在where中作为过滤条件,其后跟一个子查询,只要子查询可以查出至少一条数据,那么EXISTS就返回TRUE;举例对比效率问题:select * from T1 where exists(select b from T2 where T1.a =

2017-06-05 18:21:19 4310

转载 Logger日志级别及设置方法 说明

日志记录、log4j、Java

2017-05-22 17:47:11 2006

原创 Java处理数据导出功能

一:思路 前提:首先要获取要导出的数据列表(一般都是通过请求查询条件从数据库中获取数据);然后调用封装好的生成Excel文件方法,在业务层中渲染文件中的数据列表。 二:步骤 1.导入使用的 jxl.jar ; 在页面定义“导出”按钮,发送导出功能请求; 在控制层中,获取要导出的数据集,传入文件名,执行生成Excel文件方法;@RequestMapping("/exportChk

2017-02-23 11:41:52 843

阿里巴巴Java开发手册

《阿里巴巴Java开发手册》是阿里巴巴集团技术团队的集体经验总结,经历了多次大规模一线实战的检验及不断的完善,反馈给广大开发者。 愿景是码出质量、码出高效。

2017-08-29

空空如也

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

TA关注的人

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