4 xiaofeixiastar

尚未进行身份认证

暂无相关简介

等级
TA的排名 13w+

多线程Future

Future模式是多线程设计常用的一种设计模式。Future模式可以理解成:我有一个任务,提交给了Future,Future替我完成这个任务。期间我自己可以去做任何想做的事情。一段时间之后,我就便可以从Future那儿取出结果。Future提供了三种功能:判断任务是否完成能够中断任务能够获取任务执行的结果向线程池中提交任务的submit方法不是阻塞方法,而Future.get方法是一个阻...

2020-05-02 19:41:58

mysql 共享锁排它锁

mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流。共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获...

2020-05-02 11:54:22

mq消息队列解决分布式事务

一、RabbitMQ解决分布式事务思路:案例: 经典案例,以目前流行点外卖的案例,用户下单后,调用订单服务,让后订单服务调用派单系统通知送外卖人员送单,这时候订单系统与派单系统采用MQ异步通讯。二、RabbitMQ解决分布式事务原理:采用最终一致性原理。需要保证以下三要素1、确认生产者一定要将数据投递到MQ服务器中(采用MQ消息确认机制)2、MQ消费者消息能够正确消费消息,采用...

2020-03-31 17:53:18

Eureka注册表

一、问题Spring Cloud架构体系中,Eureka是一个至关重要的组件,它扮演着微服务注册中心的角色,所有的服务注册与服务发现,都是依赖Eureka的。不少初学Spring Cloud的朋友在落地公司生产环境部署时,经常会问: Eureka Server到底要部署几台机器? 我们的系统那么多服务,到底会对Eureka Server产生多大的访问压力? Eurek...

2020-03-30 10:09:58

springcloud常用核心组件(Eureka,Feign,Ribbon,Hystrix,Zuul)

概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖...

2020-03-26 12:08:35

spring容器BeanDefinition解析

Spring容器启动的过程中,会将Bean解析成Spring内部的BeanDefinition结构,本篇将深入分析这个BeanDefinition的内部结构。直接看BeanDefinition源码,public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement { /** *...

2020-03-21 10:53:22

异常和数据库事务的几个容易出错的地方

我们在开发企业应用时,由于数据操作在顺序执行的过程中,线上可能有各种无法预知的问题,任何一步操作都有可能发生异常,异常则会导致后续的操作无法完成。此时由于业务逻辑并未正确的完成,所以在之前操作过数据库的动作并不可靠,需要在这种情况下进行数据的回滚。这叫事务。事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就回退到事务开始未进行操作的状态。...

2019-12-20 09:44:05

vuex的state数据丢失

1. 产生原因其实很简单,因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就会被重新赋值。2. 解决思路一种是state里的数据全部是通过请求来触发action或mutation来改变一种是将state里的数据保存一份到本地存储(localStorage、sessionStorage、cookie)中很显然,第一种方案基本不可...

2019-11-25 16:27:45

vue定义全局变量

1、将从服务器请求的数据作为全局变量(全局变量模块挂载到Vue.prototype)在开发中,有时需要将从接口请求到的一些数据当做全局变量,在其他页面多次使用。比如,登录成功后可能需要将用户名,id等信息存起来,便于其他页面展示或使用,将这些信息定义为全局变量是用起来就很方便。举栗子:在login.vue中拿到了用户的一些信息:<script> import Vue ...

2019-11-20 10:30:25

Vue路由传参的三种基本方式

现有如下场景,点击一个button按钮跳转到另外一个路由页面,并向目标路由页面传递参数,便于目标路由页面获取源页面传递的数据信息。源页面中:<button@click="gotoTargetView">点击跳转到目标路由user页面</button>方案一,通过调用$router对象的push()方法,向push()方法传递一个路由配置对象,通过params来...

2019-11-08 17:16:58

数据库分片

数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。一、垂直切分一个数据库由很多表构成,每个表对应着不同的业务,垂直...

2019-10-25 09:58:19

ORACLE将表中的数据恢复到某一个时间点

今早不小心删了表中的部分数据,由于存在新建的数据未备份就被误删除,oracle没有开启闪回,也没记录日志,最后根据某一时刻的数据还原,具体操作如下:根据oracle自己的快照备份查询某一时刻的某张表数据select *from 表名as of timestamp to_timestamp('2018-06-0811:06:00', 'yyyy-MM-dd HH:mi:ss');...

2019-09-21 11:25:25

oracle删除死锁的session

查看锁表进程SQL语句1:select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$ses...

2019-09-21 11:22:40

spring中的拦截器(HandlerInterceptor+MethodInterceptor)

1. 过滤器跟拦截器的区别在说拦截器之前,不得不说一下过滤器,有时候往往被这两个词搞的头大。其实我们最先接触的就是过滤器,还记得web.xml中配置的<filter>吗~你应该知道spring mvc的拦截器是只拦截controller而不拦截jsp,html 页面文件的,如果想要拦截那怎么办?这就用到过滤器filter了,filter是在servlet前执行的,你也...

2019-09-20 14:59:02

RestTemplate 下载文件

1. 概述本教程中,我们将展示使用RestTemplate下载大文件的不同技术。2. RestTemplateRestTemplate是 Spring 3 中引入的同步阻塞式HTTP客户端。根据 Spring 官方文档 介绍,在将来的版本中它可能会被弃用,因为他们已在 Spring 5 中引入了WebClient作为非阻塞式 Reactive HTTP 客户端。3. ...

2019-09-18 11:33:03

RestTemplate详解

RestTemplate详解-Get请求 在RestTemplate中通过如下两个方法进行调用 --第一种:getForEntity()函数 返回:ResponseEntity(对HTTP响应的封装,重要元素:HTTP请求状态的枚举对象HttpStatus, HTTP请求头信息对象HttpHeaders,泛型的请...

2019-09-11 17:23:40

mybatis逆向生成代码时 只生成了insert 而没有其他的

最可能的原因就是,你的表没有主键

2019-09-03 17:45:31

SpringBoot 配置文件存放位置及读取顺序

SpringBoot配置文件可以使用yml格式和properties格式分别的默认命名为:application.yml、application.properties存放目录SpringBoot配置文件默认可以放到以下目录中,可以自动读取到:项目根目录下 项目根目录中config目录下 项目的resources目录下 项目resources目录中config目录下读取...

2019-08-30 10:04:02

Docker相关常用命令

systemctl stop firewalld.service 关闭防火墙docker inspect 容器id 查询容器信息docker stop 容器id 停止容器iddocker rm 容器id 删除容器idsystemctl restart docker 重启docker容器docker exec -it 容器ID /bin/bash 进入容器Ctr...

2019-04-29 10:16:39

一张图理解jenkins和docker作用

可以看出,jenkins充当的是一个自动构建的作用,而Docker相当于虚拟机,或者说是一个容器。补充:1、jenkins是一个插件的集合

2019-03-10 14:38:23

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。