04 2018 档案

摘要:Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置。 下面来介绍如何使用Condition 首先写一个类 package com.test.spring; import org.springframewo 阅读全文
posted @ 2018-04-29 08:37 夏威夷8080 阅读(371) 评论(0) 推荐(0) 编辑
摘要:什么是松散索引? 答:实际上就是当MySQL 完全利用索引扫描来实现GROUP BY 的时候,并不需要扫描所有满足条件的索引键即可完成操作得出结果。 要利用到松散索引扫描实现GROUP BY,需要至少满足以下几个条件:◆ GROUP BY 条件字段必须在同一个索引中最前面的连续位置;◆ 在使用GRO 阅读全文
posted @ 2018-04-28 23:55 夏威夷8080 阅读(1318) 评论(0) 推荐(0) 编辑
摘要:两个方法都可以向线程池提交任务, execute()方法的返回类型是void,它定义在Executor接口中, 而submit()方法可以返回持有计算结果的Future对象,它定义在ExecutorService接口中,它扩展了Executor接口,其它线程池类像ThreadPoolExecutor 阅读全文
posted @ 2018-04-27 23:31 夏威夷8080 阅读(1475) 评论(0) 推荐(0) 编辑
摘要:ENUM是枚举类型,它虽然只能保存一个值,却能够处理多达65535个预定义的值。下面是我写的一个mysql语句 如果sex列中插入了除bor,girl,secret之外的其它字符,则视为空字符串 1 每个枚举值都有一个索引: 列出的元素被分配从1开始的索引值。 空字符串作为错误值的索引值为0。可以使 阅读全文
posted @ 2018-04-27 23:14 夏威夷8080 阅读(13366) 评论(0) 推荐(0) 编辑
摘要:语法 MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(7,4)的 可显示为-999.9999,MySQL保存值时进行四舍五入,如果插入999.00009,则结果为999.0001。 所属类型 float 阅读全文
posted @ 2018-04-27 23:03 夏威夷8080 阅读(379) 评论(0) 推荐(0) 编辑
摘要:定义 乐观锁和悲观锁这两种锁机制,是在多用户环境并发控制的两种所机制。 悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。[1]常见实现如独占锁。乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。[1] 乐观锁不能解决脏读的问题。常见实现如CAS等。 阅读全文
posted @ 2018-04-26 23:20 夏威夷8080 阅读(186) 评论(0) 推荐(0) 编辑
摘要:这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件。 一、简介 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可。 二、服务追踪分析 微服务架 阅读全文
posted @ 2018-04-26 21:39 夏威夷8080 阅读(360) 评论(0) 推荐(0) 编辑
摘要:引用 在开窗函数出现之前存在着非常多用 SQL 语句非常难解决的问题,非常多都要通过复杂的相关子查询或者存储过程来完毕。为了解决这些问题,在2003年ISO SQL标准增加了开窗函数,开窗函数的使用使得这些经典的难题能够被轻松的解决。眼下在 MSSQLServer、Oracle、DB2 等主流数据库 阅读全文
posted @ 2018-04-26 21:12 夏威夷8080 阅读(1291) 评论(0) 推荐(0) 编辑
摘要:先看一段代码 synchronize用法关键是搞清楚对谁加锁,methodA,和methodB都是对当前对象加锁,即如果有两个线程同时访问同一个对象的methoA和methodB则会发生竞争,必须等待其中一个执行完成后另一个才会执行。如果两个线程访问的是不同对象的methodA和methodB则不会 阅读全文
posted @ 2018-04-26 12:05 夏威夷8080 阅读(2774) 评论(0) 推荐(0) 编辑
摘要:query cache原理 当mysql接收到一条select类型的query时,mysql会对这条query进行hash计算而得到一个hash值,然后通过该hash值到query cache中去匹配,如果没有匹配中,则将这个hash值存放在一个hash链表中,同时将query的结果集存放进cach 阅读全文
posted @ 2018-04-25 23:59 夏威夷8080 阅读(255) 评论(0) 推荐(0) 编辑
摘要:distinct简单来说就是用来去重的,而group by的设计目的则是用来聚合统计的,两者在能够实现的功能上有些相同之处,但应该仔细区分,因为用错场景的话,效率相差可以倍计。 单纯的去重操作使用distinct,速度是快于group by的。 distinct distinct支持单列、多列的去重 阅读全文
posted @ 2018-04-25 23:34 夏威夷8080 阅读(18062) 评论(0) 推荐(3) 编辑
摘要:前面已经介绍了很多zuul的功能,本篇继续介绍它的另一大功能。在高并发的应用中,限流往往是一个绕不开的话题。本文详细探讨在Spring Cloud中如何实现限流。 在 Zuul 上实现限流是个不错的选择,只需要编写一个过滤器就可以了,关键在于如何实现限流的算法。常见的限流算法有漏桶算法以及令牌桶算法 阅读全文
posted @ 2018-04-25 22:31 夏威夷8080 阅读(3882) 评论(1) 推荐(1) 编辑
摘要:上篇文章主要介绍了Zuul网关使用模式,以及自动转发机制,但其实Zuul还有更多的应用场景,比如:鉴权、流量转发、请求统计等等,这些功能都可以使用Zuul来实现。 Zuul的核心 Filter是Zuul的核心,用来实现对外服务的控制。Filter的生命周期有4个,分别是“PRE”、“ROUTING” 阅读全文
posted @ 2018-04-25 21:26 夏威夷8080 阅读(366) 评论(0) 推荐(0) 编辑
摘要:前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个微服务框架已经完成了。 我们还是少考虑了一个问题,外部的应用如何来访问内部各种各样的微服务呢?在微服 阅读全文
posted @ 2018-04-25 00:10 夏威夷8080 阅读(275) 评论(0) 推荐(0) 编辑
摘要:1 DBCP DBCP是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。 2.C3P0 是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的 阅读全文
posted @ 2018-04-24 23:53 夏威夷8080 阅读(242) 评论(0) 推荐(0) 编辑
摘要:springboot官方文档介绍数据库连接池的使用策略如下: Production database connections can also be auto-configured using a pooling DataSource. Here’s the algorithm for choosi 阅读全文
posted @ 2018-04-24 23:38 夏威夷8080 阅读(3377) 评论(5) 推荐(1) 编辑
摘要:也许是本人不才,初识Maven时,被各种不明所以的教程搞得一头雾水,而在后来的使用中,我发现Maven大部分功能没有想象的那么困难。 本片文章面向Maven初学者,希望能让其以最快的速度了解Maven并享受到它所带来的一系列好处。 [一个简单的问题] 在进行讲解前,先提问一个简单的问题。 假如你正在 阅读全文
posted @ 2018-04-24 23:31 夏威夷8080 阅读(597) 评论(0) 推荐(0) 编辑
摘要:jndi(java naming directory interface),可以把JNDI看成一个全局的目录服务接口,实现了这个接口的类可以提供你想要的东西,不管这个东西是什么,只要注册到了目录中就可以被找到并且返回给你。有点像webservbice。 Spring配置JNDI和通过JNDI获取Da 阅读全文
posted @ 2018-04-24 23:23 夏威夷8080 阅读(425) 评论(0) 推荐(0) 编辑
摘要:这里收集整理下以往打包MAVEN项目为JAR包的各种方式 直接打包,不打包依赖包 直接打包,不打包依赖包,仅打包出项目中的代码到JAR包中。在POM中添加如下plugin即可,随后执行maven install 将依赖JAR包输出到lib目录方式 将项目中的JAR包的依赖包输出到指定的目录下,修改o 阅读全文
posted @ 2018-04-24 23:12 夏威夷8080 阅读(1689) 评论(0) 推荐(0) 编辑
摘要:每一个构建都需要唯一的坐标来标识位置,我们根据坐标位置就能够下载构建至本地仓库。那么如果我们是内部项目,自定义的构建并不公开至网络上,项目成员又想依赖他怎么办呢?想想maven找寻构建的步骤。 先找寻本地仓库,本地仓库不存在,找寻远程仓库或者私服。 我们只需把自定义的构建安装至私服或者本地仓库中就行 阅读全文
posted @ 2018-04-24 12:54 夏威夷8080 阅读(63727) 评论(1) 推荐(1) 编辑
摘要:xtrabackup-2.4.8的安装及使用 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。特点: (1)备份过程快速、物理备份可靠; (2)备份过程不会打断正在执行的事务(无需锁表) 阅读全文
posted @ 2018-04-23 21:21 夏威夷8080 阅读(246) 评论(0) 推荐(0) 编辑
摘要:如题,究竟该使用mysqldump还是xtrabackup,要说用,两个都能备份,都支持热备,但是生产环境我们要考虑的是效率,就是不管备份还是恢复,都要快,要稳定。 之前我在维护mysql数据库的时候,使用mysqldump来进行备份与恢复,在备份的时候锁住表,然后全部备份,在数据少的时候没问题,但 阅读全文
posted @ 2018-04-23 21:18 夏威夷8080 阅读(909) 评论(0) 推荐(0) 编辑
摘要:前言 在分析interrupt之前,应该先了解java里线程有5种状态,其中有一个阻塞状态,interrupt和阻塞有关。 interrupt() 方法 作用于要中断的那个线程。 interrupt() 方法只是改变中断状态而已,它不会中断一个正在运行的线程。 这一方法实际完成的是,给调用该方法的线 阅读全文
posted @ 2018-04-16 22:35 夏威夷8080 阅读(519) 评论(0) 推荐(0) 编辑
摘要:SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别。 1) 最核心的区别Git是分布式的,而Svn不是分布的。能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本控制系统,还有比如Mercurial等,所以说它们差不许多。 阅读全文
posted @ 2018-04-16 19:58 夏威夷8080 阅读(234) 评论(0) 推荐(0) 编辑
摘要:如题,java thread yield 的设计目的是什么?有什么实际应用场景吗? Ps:它的作用是理解的,和 join 等的区别也理解。就是个人感觉这个设计有点鸡肋(可能是个人读书太少...) It is rarely appropriate to use this method. It may 阅读全文
posted @ 2018-04-15 13:03 夏威夷8080 阅读(411) 评论(0) 推荐(0) 编辑
摘要:结果如下: 交集:[王者荣耀, 地下城与勇士] 差集:[英雄联盟, 穿越火线] 并集:[王者荣耀, 英雄联盟, 魔兽世界, 地下城与勇士, 穿越火线] 阅读全文
posted @ 2018-04-15 13:00 夏威夷8080 阅读(12715) 评论(0) 推荐(1) 编辑
摘要:UML简要类图关系: 下面详细看一下三者的区别: Executor vs ExecutorService vs Executors 正如上面所说,这三者均是 Executor 框架中的一部分。Java 开发者很有必要学习和理解他们,以便更高效的使用 Java 提供的不同类型的线程池。总结一下这三者间 阅读全文
posted @ 2018-04-15 12:54 夏威夷8080 阅读(2648) 评论(0) 推荐(3) 编辑
摘要:Java 线程池 Executors提供了几种线程池实现? 5个,分别如下 1、newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。(线程最大并发数不可控制)2、newFixedThreadPool:创建一个定长线程池 阅读全文
posted @ 2018-04-14 11:54 夏威夷8080 阅读(4153) 评论(0) 推荐(0) 编辑
摘要:Redis的各种语言客户端列表,请参见Redis Client。其中Java客户端在github上start最高的是Jedis和Redisson。Jedis提供了完整Redis命令,而Redisson有更多分布式的容器实现。 Redis(七):Jedis简介和集群 阅读全文
posted @ 2018-04-11 11:37 夏威夷8080 阅读(1350) 评论(0) 推荐(0) 编辑
摘要:一、理解MySQL的Query Optimizer MySQL Optimizer是一个专门负责优化SELECT 语句的优化器模块,它主要的功能就是通过计算分析系统中收集的各种统计信息,为客户端请求的Query 给出他认为最优的执行计划,也就是他认为最优的数据检索方式。 二、Query 语句优化基本 阅读全文
posted @ 2018-04-07 23:00 夏威夷8080 阅读(4628) 评论(0) 推荐(1) 编辑
摘要:写在前面的话 不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程; 不要求每个人一定知道线上(现在或未来)哪张表数据量大,哪张表数据量小; 但要经常使用explain查看执行计划,这是一种美德! 联表查询的基础知识 下面两个查询,它们只差了一 阅读全文
posted @ 2018-04-07 13:19 夏威夷8080 阅读(3710) 评论(3) 推荐(0) 编辑
摘要:摘要 本文主要是介绍使用redis scan命令遇到的一些问题总结,scan命令本身没有什么问题,主要是spring-data-redis的问题。 需求 需要遍历redis中key,找到符合某些pattern的所有keys。第一反应当然是 KEYS "ABC* 可以找到前缀是ABC的所有KEYS,时 阅读全文
posted @ 2018-04-07 09:18 夏威夷8080 阅读(5873) 评论(11) 推荐(0) 编辑
摘要:下面的表格列出了MySQL 中最重要的内建日期函数: 时间差函数(TIMESTAMPDIFF、DATEDIFF) 需要用MySQL计算时间差,使用TIMESTAMPDIFF、DATEDIFF,记录一下实验结果 MySQL 取得两个时间相差的分钟数 -- 取得相隔秒数 SELECT UNIX_TIME 阅读全文
posted @ 2018-04-01 10:51 夏威夷8080 阅读(197) 评论(0) 推荐(0) 编辑
摘要:OLAP、OLTP的介绍和比较 阅读全文
posted @ 2018-04-01 09:38 夏威夷8080 阅读(135) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示