自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java中的阻塞队列基础

文章目录Java中的阻塞队列基础使用案例JUC中的阻塞队列阻塞队列的基本操作方法Java中的阻塞队列基础阻塞队列可以用于线程之间的通信,实现线程与线程之间的解耦。可用于简单的单服务中生成者消费者模式。使用案例模拟场景发布重要通知后,需要进行钉钉消息通知但实际上,这样会带来一些问题正常发布通知接口只需要1s,添加发送钉钉消息逻辑后,变成了2s,效率下降。强耦合,正常发布新闻通知,发送钉钉消息不是必须的过程,发送钉钉消息失败会导致发布通知失败。原代码public class NewsC

2020-09-21 15:44:10 228

原创 Mysql性能优化 - MVCC

Mysql性能优化 - MVCC什么是mvcc多版本并发控制并发访问数据库时,对正在事务内处理的数据做多版本的管理,以达到避免写操作的阻塞,从而引发读操作的并发问题mvcc插入流程mvcc删除流程mvcc修改流程mvcc查询流程Undo Logundo意为取消,以撤销操作为目的,返回指定某个状态的操作undo log指事务开始之前,在操作任何数据之前,首先把要操作的数据备份到一个地方(Undo Log)Undo log是为了实现事务的原子性而存在的:​ 事务处理过程中如果出现

2020-08-14 11:54:51 242

原创 Mysql性能优化 - innodb的事务和锁

文章目录Mysql性能优化 - innodb的事务和锁事务什么是事务事务ACID特性事务并发会产生的问题事务的四种隔离级别锁innodb 锁类型Mysql性能优化 - innodb的事务和锁事务什么是事务事务数据库中的最小操作单元,是一组不可再分割的操作集合mysql中开启事务begin/start transaction -》 commit/ rollback 手动启动事务提交或者回滚set session autocommit = on/off 设定事务是否自动开启事务ACID特性

2020-08-14 11:15:57 237

原创 Mysql性能优化 - 慢sql查询

Mysql性能优化 - 慢sql查询开启慢日志记录show variables like ‘slow_query_log’ 查看慢日志是否开启set global slow_query_log = on 开启慢日志记录set global slow_query_log_file = ‘地址’ 设置慢日志保存地址set global log_queries_not_using-indexes= on 开启未使用索引的日志记录set global long_query_time = 0.1(秒

2020-08-12 08:50:19 244

原创 Mysql性能优化 - Mysql运行原理

Mysql性能优化 - Mysql运行原理Mysql体系Client Connectors 接入方,支持协议有很多Management Serveices & Utilities 系统管理和控制工具,mysqldump,mysql复制集群,分区管理等Connection Pool 连接池,夫案例缓冲用户连接, 用户名,密码,权限校验,线程处理等需要缓存的需求SQL Interface SQL 接口,接受用户的SQL命令,并且返回用户需要查询的结果Parser 解析器,SQL命令传

2020-08-11 11:25:56 170

原创 Mysql性能优化 - 存储引擎

Mysql性能优化 - 存储引擎存储引擎介绍插拔式的插件方式存储引擎是指定在表上的。每一张表都可以指定专用的存储引擎不管采用何种存储引擎都会在数据区,产生对应的frm (表结构定义文件)几大存储引擎概述CSV存储引擎数据以CSV文件存储不能定义索引,列必须定义为NOT NULL,不能设置自增列,不适用大表或者数据的在线处理CSV数据使用“,”隔开,可直接编辑CSV文件进行数据的编排,在通过flush table XXX命令使其生效,数据安全性较低应用场景数据的快速导入导出表

2020-08-11 08:55:01 156

原创 Mysql性能优化-索引

Mysql性能优化-索引MYSQL体系结构索引索引是什么?为什么要使用索引?为什么选择B+树作为索引?相关索引知识总结本文基于mysql5.7版本MYSQL体系结构client connectors 连接客户端 jdbc odbcservices & uitlities 服务和工具类 备份还原 安全connection pool 连接池sql interface 接收用户sql DML DDL Trigger Views etc等Parser 解析器 解析sql 由lex和ya

2020-08-10 11:15:19 154

原创 Mysql hibernate Jpa环境添加空间数据支持

由于项目环境限制,现需求在当前架构体系下储存空间数据。查询了一些网上的资料,发现一个是问题解决的不全面,再一个就是没有考虑到数据序列化的问题,现记录问题完备解决思路及过程。问题解决思路确认mysql对空间数据的支持 添加hibernate对空间数据的支持 确认hibernate对geometry类型的支持及序列化的支持mysql对空间数据的支持mysql自4.1开始,便对空间数据...

2019-12-09 11:42:17 593

原创 解决spring data jpa 双向依赖死循环问题

在使用spring data jpa 的过程中,有时候会有双向依赖的需求,如查询班级时需要级联查出班级内所有的学生,查询学生时需要查询学生所在的班级。体现在代码中便是public class ClassOne implements Serializable{ private static final long serialVersionUID = -1553531838801480...

2019-08-16 14:34:27 6240 1

原创 maven下载依赖慢,试试最优配置阿里源

默认的maven源为国外,由于国内网络的原因,下载速度慢的令人发指,解决方法其一便是更改maven源为阿里源。(1)找到maven安装目录下 conf文件夹下的settings.xml文件(2)打开文件,找到<mirrors></mirrors> 标签(3)将如下节点添加至标签内<mirrors> <mirror> ...

2019-08-16 14:15:50 416

原创 SpringBoot2源码解析 @SpringBootApplication注解

在接触spring boot之前,我们要了解他的思想。spring boot 的核心思想就是“习惯优于配置”,spring boot将大量的配置文件用最常用的方式配置在jar包中,使我们在使用的过程中省去了大量的配置。所以在一个spring boot项目中,你可能看不到任何的配置文件,只有下面这些代码,但是它仍是个可运行的项目。@SpringBootApplicationpublic cl...

2019-08-08 16:17:10 224

原创 通俗易懂的JAVA设计模式之命令模式

命令模式的作用了解一个模式首先要了解这个模式所能解决的问题,命令模式所能提供的便是将“动作发起者” 和 “动作执行者进行”进行解耦,正如字面上表示的,“动作发起者” 和 “动作执行者”便是通过“命令”进行解耦的。生活中的命令模式可能这样的说明会比较抽象,让我们来结合生活中实际的情境来说明这个问题。当你去餐厅吃饭的时候,首先你会要求服务员进行点餐服务,然后由服务员通知厨师进行烹饪。在这个...

2019-08-06 15:24:24 184

原创 如何将jar包加入windows服务

如何将jar包加入windows服务下载winsw编写于exe文件同名的xml配置文件 <service> <!-- ID of the service. It should be unique accross the Windows system--> <id>dam</id> <!-- Display...

2019-05-13 15:47:54 4842

原创 从零开始搭建spring cloud(六)Hystrix断路器实现容错

Hystrix简介Hystrix是一个实现了超时机制和断路器模式的工具类库。用于隔离访问远程系统,服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要通过以下几点实现延迟和容错。1.包裹请求,使用HystrixCommand(或者HystrixObservableCommand)包裹对依赖的调用逻辑,每个命令在独立的线程中执行。2.跳闸机制,当某个服务的错误...

2018-10-10 14:08:02 204

原创 从零开始搭建spring cloud(五)使用Feign实现声明式REST调用

前文示例中是使用RestTemplate实现REST API调用的,使用的是拼接字符串的形式来构造url,这种方式显然是具有很多缺点的,在现实中请求往往带着很多参数,如果使用拼接url的方式,会导致效率低下,难以维护。Feign可以很好解决这个问题。Feign 简介Feign是netflix开发的声明式,模板化的客户端,可以帮助我们更加便捷,优雅的调用HTTP API,在spring cl...

2018-09-14 16:45:17 231

原创 从零开始搭建spring cloud(四)使用ribbon实现客户端侧负载均衡

Ribbon简介Ribbon是Netflix发布的负载均衡器,他有助于控制http和tcp客户端行为。为Ribbon配置服务者提供列表后,Ribbon就可以基于某种负载均衡算法,自动的帮助服务消费者去请求。Ribbon 默认为我们提供了很多负载均衡算法,如轮询,随机等等。当然也可以自定义负载均衡算法。在spring cloud中当Ribbon与Eureka配合使用时,Ribbon可以自动从...

2018-09-14 15:03:41 277

原创 从零开始搭建spring cloud(三)创建服务消费者

上一篇文章编写了一个服务提供者,本篇来编写一个服务消费者,该服务非常简单,只是调用上篇的服务提供者的获取用户接口。1.同前面文章,创建consumer 服务的model,并且创建相应的.gradle文件添加依赖project(':maoj-eureka-consumer'){ dependencies { compile('org.springframework....

2018-09-13 14:03:00 745

原创 从零开始搭建spring cloud(二)创建服务提供者

 服务提供者与消费者 使用微服务构建的是分布式系统,微服务直接通过网络进行通信,服务提供者与服务消费者来描述微服务直接的关系。服务提供者:服务的被调用方(为其他服务提供服务的服务)服务消费者:服务的调用方(依赖其他服务的服务)本次提供一个用户微服务作为服务提供者,该服务可以通过主键查询用户信息。使用Spring Data JPA作为持久性框架,使用h2作为数据库。1.在父项目上...

2018-09-13 09:30:44 546

原创 从零开始搭建spring cloud (一)创建eureka server注册中心

sring cloud简介spring cloud 为开发人员提供了快速构建分布式系统中的一些通用模式(例如配置管理,服务发现,断路器,只能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致了锅炉板模式,并且使用spring cloud开发人员可以快速的站起来实现这些模式的服务和应用程序。他们在任何分布式环境中正常工作。高深的内容我也不说太多...

2018-09-12 14:44:32 2172

原创 Java集合类

ArrayList和LinkListArrayList和LinkList都是实现了List的接口类。ArrayList在末尾添加和删除的时间是一样的,中间部分的增删所需时间大大增加。根据索引查找元素的速度大大加快。LinkList插入和删除集合中在任何位置元素花费的时间都是一样的,根据索引查找一个元素的时间较长。原因是ArrayList的实现是基于数组,LinkList的实现是基于...

2018-09-11 15:17:05 159

原创 通俗易懂的JAVA设计模式之策略模式

策略模式解决的问题策略模式定义了一系列算法,也可以称之为解决方案,并将每一个方法封装起来,使他们可以相互替换,让算法独立于使用他的客户而变化。这样的话就可以解决在编码时使用大量if else的问题,如果在一个条件语句中又嵌套了多个条件语句,就会使代码变得臃肿,维护成本也加大,策略模式可以很好的解决这个问题。策略模式使用场景1.针对同一类型问题的多种处理方式,仅仅有具体行为差异时2....

2018-09-11 10:57:20 304

原创 通俗易懂的JAVA设计模式之代理模式

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用,代理模式就是中介。在不改变源码的情况下,实现对目标对象的功能扩展。代理模式按照代理创建的时期来分类的话,可以分为静态代理和动态代理。静态代理是程序员创建源代码,再对其变异,在运行之前代理类.class文件就已经被创建了,动态代理是由程序在运行时通过反射机制动态创建的。静态代理实例静态代理可以做到在符合开闭原则的情况下...

2018-09-10 16:12:45 273

原创 通俗易懂的java设计模式之工厂模式

工厂模式就像一个加工厂一样,假设一个场景,我喜欢吃饺子,那么饺子店就是一个工厂,饺子就是产品的抽象类,猪肉馅饺子,三鲜馅饺子就是具体的产品类。工厂模式主要为创建对象提供了接口,工厂是对象的工厂。工厂模式分为三类。1.简单工厂模式工厂类中根据条件决定一个接口由哪个具体产品类来实现。编写组成:产品抽象类,产品具体类,工厂类//创建一个饺子的抽象类public interface J...

2018-09-06 10:05:13 721

原创 通俗易懂的java设计模式之单例模式

单例模式,顾名思义要确保某一个类只能存在一个实例,类要自行创建自己的唯一实例,并且要像整个系统提供这个实例。单例模式是为了避免不一致的状态,避免政出多头的现象。所以多为具有资源管理功能的类,常见的如线程池,日志,缓存等。编写单例模式要保证:1.单例只能有一个实例2.单例必须自己创建自己的唯一实例3.单例类必须给其他对象提供方法访问这唯一实例单例模式 懒汉式...

2018-09-03 14:47:18 225

空空如也

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

TA关注的人

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