自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

转载 全文搜索引擎 Elasticsearch 入门教程

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装...

2019-08-20 11:35:00 94

转载 JMM和底层实现原理

1.并发编程领域的关键问题1.1 线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就是通过共享对象进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送...

2019-07-22 18:23:00 104

转载 Kafka consumer group位移重设

本文阐述如何使用Kafka自带的kafka-consumer-groups.sh脚本随意设置消费者组(consumer group)的位移。需要特别强调的是, 这是0.11.0.0版本提供的新功能且只适用于新版本consumer。在新版本之前,如果要为已有的consumer group调整位移必须要手动编写Java程序调用KafkaConsumer#seek方法,...

2019-07-18 11:26:00 136

转载 Spring-MVC理解之二:前置控制器

一、前置控制器配置与讲解    上篇中理解了IOC容器的初始化时机,并理解了webApplicationContext和SevletContext和servlet的param等的概念和关系。  现在记录,如何配置前置控制器: <servlet> <servlet-name>MainServlet</servlet-...

2019-07-17 16:48:00 262

转载 Spring-MVC理解之一:应用上下文webApplicationContext

一、先说ServletContext  javaee标准规定了,servlet容器需要在应用项目启动时,给应用项目初始化一个ServletContext作为公共环境容器存放公共信息。ServletContext中的信息都是由容器提供的。举例:通过自定义contextListener获取web.xml中配置的参数1.容器启动时,找到配置文件中的context-param...

2019-07-17 16:47:00 66

转载 Tomcat优化详细教程

Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器。而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化。一、内存优化 默认情况下Tomcat的相关内存配置较低,这对于一些大型项目显然是不够用的,这些项目运行就已经耗费了大部分内存空间,何况大规模访问的情况。即使是本文中的这个只有一个页面...

2019-07-15 19:04:00 94

转载 DispatcherServlet初始化过程

前言我们知道在使用SpringMVC的时候,我们会在web.xml中配置如下内容,DispatcherServlet会拦截住所有的请求然后处理。 <context-param> <param-name>contextConfigLocation</param-name> <param-valu...

2019-07-14 21:29:00 172

转载 SpringCloud实现原理图

服务注册发现组件Eureka工作原理服务网关组件Zuul工作原理跨域时序图Eureka与Ribbon整合工作原理解决分布式一致性级联故障流程断路器组件Hystrix工作原理分布式追踪Sleuth工作原理SpringBoot自动配置工作原理文章来源:http://www.imooc.com/article...

2019-07-11 17:37:00 59

转载 docker常用操作

1.查看docker信息(version、info)# 查看docker版本 $docker version # 显示docker系统的信息 $docker info 2.对image的操作(search、pull、images、rmi、history)# 检索image $docker search image_name ...

2019-07-11 17:04:00 55

转载 Mybatis架构与原理

MyBatis功能架构设计功能架构讲解:我们把Mybatis的功能架构分为三层:(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。...

2019-07-11 16:15:00 72

转载 mysql的事务与事务隔离级别

1.什么是事务?事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小...

2019-07-11 10:35:00 71

转载 深入了解mysql--gap locks,Next-Key Locks

Next-Key LocksNext-Key Locks是在存储引擎innodb、事务级别在可重复读的情况下使用的数据库锁,官网上有介绍,Next-Key Locks是行锁和gap锁的组合。行锁是什么我们都很清楚,这篇文章主要简单分析一下mysql中的gap锁是什么。innodb默认的锁就是Next-Key locks。GAP锁gap锁,又称为间隙锁。存在的主要目的就是为...

2019-07-11 10:28:00 129

转载 深入springboot原理——动手封装一个starter

文章主目录准备要封装的组件打包发布组件新建一个starter编写自动配置类配置spring.factories文件打包发布starter元数据从上一篇文章《深入springboot原理——一步步分析springboot启动机制(starter机制)》我们已经知道springboot的起步依赖与自动配置的机制。spring-boot-...

2019-07-09 11:39:00 103

转载 深入springboot原理——一步步分析springboot启动机制(starter机制)

文章主目录前言起步依赖自动配置总结回到顶部前言使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程。本文的目的就是一步步分析springboot的启动过程,分析springboot是如何帮我们简化这个过程的。springboot帮我们做了什么通常搭...

2019-07-09 09:39:00 94

转载 Hystrix使用说明,配置参数说明

一、什么情况下会触发fallback方法?名字描述触发fallbackEMIT值传递NOSUCCESS执行完成,没有错误NOFAILURE执行抛出异常YESTIMEOUT执行...

2019-07-04 14:07:00 69

转载 服务限流 -- 自定义注解基于RateLimiter实现接口限流

1. 令牌桶限流算法令牌桶会以一个恒定的速率向固定容量大小桶中放入令牌,当有浏览来时取走一个或者多个令牌,当发生高并发情况下拿到令牌的执行业务逻辑,没有获取到令牌的就会丢弃获取服务降级处理,提示一个友好的错误信息给用户。2. RateLimiter简单实现 maven依赖 <!-- guava --> &l...

2019-07-03 11:41:00 290

转载 Java生产环境下问题排查

在生产环境中,我们无法通过断点调试、新增log、可视化工具去立马查看当前的运行状态和拿到错误信息,此时,借助Java自带的命令行工具以及相关dump分析工具以及一些小技巧,可以大大提升我们排查问题的效率运行参数下面会列出一些常用且非常有效的命令以及参数来查看运行时Java程序的信息,从而辅助你了解程序运行状态。还有大量可用的功能由其他参数提供,自行参阅oracle文档...

2019-07-01 16:25:00 327

转载 Java垃圾回收(GC)机制详解

一、为什么需要垃圾回收  如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。二、哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象。那么如何找到这些对象?1、引用计数法...

2019-07-01 10:36:00 70

转载 RabbitMQ如何解决各种情况下丢数据的问题

1.生产者丢数据生产者的消息没有投递到MQ中怎么办?从生产者弄丢数据这个角度来看,RabbitMQ提供transaction和confirm模式来确保生产者不丢消息。transaction机制就是说,发送消息前,开启事物(channel.txSelect()),然后发送消息,如果发送过程中出现什么异常,事物就会回滚(channel.txRollback()),如果...

2019-06-26 19:52:00 90

转载 JWT如何在Spring Cloud微服务系统中在服务相互调时传递

转载请标明出处:http://blog.csdn.net/forezp/article/details/78676036本文出自方志朋的博客在微服务系统中,为了保证微服务系统的安全,常常使用jwt来鉴权,但是服务内部的相互调用呢。经常有人在微信上问我,我给出一个解决办法,采用Feign的拦截器。在Feign中开启了hystrix,hystrix默认采用的是...

2019-06-26 15:54:00 54

转载 Mycat实现读写分离、分库分表

系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。希望通过这篇文章的介绍,能学会Mycat的使用。安装Mycat官网:http://www.mycat.io/可以...

2019-06-25 15:48:00 60

转载 mysql主从复制

数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个读节点的配置。而一般的读写分离中间件,例如Mycat的读写分离和自动切换机制,需要mysql的主从复制机制配合。主从配置需要注意的地方1、主DB server...

2019-06-25 14:47:00 65

转载 @ConditionalOnProperty来控制Configuration是否生效

1. 简介Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效2. 说明@Retention(RetentionPolicy.RUNTIME)@Target({ ElementType.TYPE, ElementType.METHOD })@Documented@Conditional(OnPr...

2019-06-17 10:23:00 181

转载 Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

原文出处:JavaDoop阅读建议:四节基本上可以进行独立阅读,建议初学者可按照 Java7 HashMap -> Java7 ConcurrentHashMap -> Java8 HashMap -> Java8 ConcurrentHashMap 顺序进行阅读,可适当降低阅读门槛。阅读前提:本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,...

2019-06-12 18:54:00 51

转载 java并发编程:Executor、Executors、ExecutorService

1.Executor和ExecutorServiceExecutor:一个接口,其定义了一个接收Runnable对象的方法executor,其方法签名为executor(Runnable command),该方法接收一个Runable实例,它用来执行一个任务,任务即一个实现了Runnable接口的类,一般来说,Runnable任务开辟在新线程中的使用方法为:new Thread(ne...

2019-06-12 17:24:00 114

转载 Spring中的事务传播行为与隔离级别

事务传播行为事务传播行为(为了解决业务层方法之间互相调用的事务问题): 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:支持当前事务的情况:TransactionDefinition.PROPAGA...

2019-06-11 15:27:00 136

转载 redis分布式共享锁模拟抢单的实现

本篇内容主要讲解的是redis分布式锁,并结合模拟抢单的场景来使用,内容节点如下:jedis的nx生成锁如何删除锁模拟抢单动作1.jedis的nx生成锁对于分布式锁的生成通常需要注意如下几个方面:创建锁的策略:redis的普通key一般都允许覆盖,A用户set某个key后,B在set相同的key时同样能成功,如果是锁场景,那就无法知道到底是哪个用户se...

2019-06-11 11:56:00 127

转载 synchronized关键字修饰非静态方法与静态方法的区别

这里我们先创建ObjLock类,并实现Runnable接口。并创建一个Demo类,具有被synchronized关键字修饰的非静态方法与静态方法。非静态方法public class ObjLock implements Runnable { Demo demo; public ObjLock(Demo demo){ this.de...

2019-06-04 11:59:00 192

转载 docker安装Tensorflow并使用jupyter notebook

目前网上提供的大多数的方法都是如下:docker pull tensorflow/tensorflowdocker run -it -p 8888:8888 tensorflow/tensorflow但是按照步骤执行之后发现容器无法启动,或是启动之后没有出现进入jupyter notebook的地址。之后进入tensorflow官网查看发现,tensor...

2019-06-04 11:31:00 350

空空如也

空空如也

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

TA关注的人

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