自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMQ-进阶

生产端的可靠性投递定义保障消息的成功发出保障MQ节点的成功接收发送端收到MQ节点(Broker)确认应答完善的消息进行补偿机制BAT互联网大厂解决方案消息落库,对消息状态进行打标消息的延迟投递,做二次确认,回调检查消息落库Callbackcallback:统一服务幂等性定义消费端的幂等性消费端实现幂等性,就意味着,我们的消息永远不会消费多次,即使我们收到了多条一样的消息业界主流操作唯一ID+指纹码 机制,利用数据库主键去重利用Redis的原子性去实

2021-03-11 21:07:27 154

原创 Mysql优化-线上sql问题总结

1. LEFT JOIN 条件类型不同最常见问题: 一个为long/int 另一个为varchar# 解决方法 : cast函数,转换类型LEFT JOIN t_varchar tv ON tv.relation_order_code = cast(t_long.order_record_id as char)cast用法2. 索引失效联合索引没有遵循最佳左前缀可以重新建立索引(一般建立联合索引)最佳左前缀...

2021-03-10 17:27:04 184

原创 操作系统 - 3.2死锁

一. 死锁概述1.1 资源问题1.1.1 可重用性资源和消耗性资源可重用性资源: 可供用户重复使用多次的资源,具有如下性质每个可重用性资源中的单元职能分配给一个进程使用,不允许多个进程共享进程在使用可重用性资源时,必须按照以下顺序 1. 请求资源:如果请求资源失败,请求进程会被阻塞或循环等待 2. 使用资源:进程对资源进行操作 3. 释放资源:当进程使用完后自己释放资源可消耗性资源: 又叫临时资源,它是在运行期间,由进程动态的创建和消耗的,具有如下性质每一类可消耗性资源的

2021-03-09 23:52:07 632

原创 操作系统 - 分页 & 分段 存储管理方式

文章目录一. 分页存储管理方式1.1 分页存储管理的基本方法1.1.1 页面和物理块1.1.2 地址结构二. 分段存储管理方式连续分配方式会形成大量碎片,虽然可通过紧凑方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销离散分配 :将一个进程直接分散的装入到许多不相邻接的分区中,离散分配分为以下三种分页存储管理将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”,典型的页面大小为1kb相应的也将内存空间分为若干个物理块或页框页和块大小相同,这样可将用户程序的任一页

2021-03-09 23:51:31 3450

原创 JAVA环境搭建

环境搭建JDKJDK8NavicatNavicat 12 破解版SVNSVNMaven

2020-12-02 16:47:04 119

原创 分布式缓存 - 分布式系统理论(下)

一. 分布式系统设计策略 分布式系统的本质是通过低廉的硬件攒在一起已获得更好的吞吐量、性能及可用性等,在分布式环境下,有几个问题是普遍关心的,称为设计策略: 如何检测你还活着如何保障高可用容错处理重试机制负载均衡...

2020-11-27 17:22:58 192

原创 算法 - 桶排序

2020-11-26 16:13:48 92

原创 分布式缓存 -分布式系统理论(上)

1. 分布式系统概论分布式系统是一个内涵极度丰富的领域,单就应用层次而言就涉及分布式缓存、分布式存储、分布式文件系统、分布式锁、分布式事务、分布式调度任务、分布式调度计算、分布式消息、分布式采集等等 2. 分布式系统概念 2.1 进程、线程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程基本上不拥有系统资源,只拥有一点在运行中必不

2020-11-13 18:30:11 350

原创 分布式缓存 -分布式系统理论 - Paxos

一. Paxos简介 Paxos协议是一个解决分布式系统中,多个节点之间就某个值(提案)达成一致(协议)的通信协议。它能够处理在少数节点离线的情况下,剩余的多数节点仍能够达成一致大佬写的流程 - 详细大佬写的流程 Paxos协议是一个两阶段协议,分为 Prepare 阶段和 Accept 阶段。涉及两个参与者角色,Proposer 和 Acceptor。其中Proposer是提议提案的服务器,而Acceptor是批准提案的服务器。二者在物理上可以是同一个服务器 

2020-11-04 10:54:53 155

原创 分布式缓存 - 概念解释

第一章1. 正向代理&反向代理正向代理: 客户端知道真实请求的地址,但是直接访问访问不到(防火墙之类)。此时可以通过一个正向代理服务器(代理服务器可以直接访问),先将请求发送到代理服,代理服去目标服务器请求资源再返回给客户端。正向代理用途:(1)访问原来无法访问的资源,如google(2) 可以走缓存,加速访问资源(3) 对客户端访问授权,上网进行认证(4) 代理可以记录访问记录(上网行为管理),对外隐藏用户信息反向代理: 对于客户端来说,代理服务器就是源服务器,客户端发送请

2020-10-28 16:20:18 371 2

原创 分布式缓存 - 缓存简介,常用缓存算法

1. 客户端缓存2. 网络中缓存3. 服务端缓存 3.1 数据库缓存 3.2 平台级缓存 3.3 应用级缓存 3.3.1缓存算法缓存算法的几个专业术语缓存命中 :客户发起一个请求时,系统收到这个请求,如果该请求的数据在缓存中,这一数据就会被使用,这一行为叫做缓存命中没有命中 : 没有命中,如果此时缓存还有存储空间,那么没有命中的对象会被存储到缓存中存储成本 : 当缓存没有命中时,系统会从数据库或其他数据源取出数据,然后放入缓存,把这个数据

2020-10-28 16:18:43 423

原创 操作系统 - 存储器管理系统

一. 存储器的层次结构1.1 多层结构的存储器系统1.1.1 存储器的多层结构在存储层次中,层次越高,存储介质的访问速度越快,价格越高,相对所配置的存储容量也越小其中的寄存器、高速缓存、主存储器和磁盘缓存均属于操作系统存储管理的管辖范畴,掉电后它们中存储的信息不再存在低层的固定磁盘和可移动存储介质则属于设备管理的管辖范畴,它们存储的信息将被长期保存1.1.2 可执行存储器在计算机系统的存储层次中,寄存器和主存储器又被称为可执行存储器进程可以在很少的时钟周期内使用一条load或stor

2020-09-07 19:50:21 1685

原创 Git基本

文章目录优势三个区域联系代码托管中心联系命令行操作本地库操作远程库操作优势大部分操作在本地完成,不需要联网完整性保证尽可能添加数据而不是删除或修改数据分值操作非常快捷流畅与Linux命令全面兼容三个区域本地库(历史版本)暂存区(临时存储)工作区(写代码)联系工作区- git add - 暂存区 - git commit 本地库暂存区 - git rm --cach...

2020-09-05 18:15:39 128

原创 Netty -简介 & 线程模型

基本介绍官网架构图1. Transport Services(支持的传输服务)2. Protocol Support(支持的协议)如http,ssl等3. Core(核心)零拷贝api库可扩展的事件模型重要概念netty是一个异步的,基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠的网络IO程序Elasticsearch、Dubbo框架内部都采用了NettyNetty 的优点设计优雅:适用于各种传输类型的统一 API阻塞和非阻塞Socket;基于灵活且可扩

2020-08-29 11:17:04 235

原创 操作系统 - 3.1 处理机调度

P85

2020-08-25 11:28:30 532

原创 操作系统 - 进程&线程

一. 进程基本1. 程序顺序执行特征顺序性 :处理及严格按照程序所规定的顺序执行封闭性:程序在执行时独占系统的全部资源,因此,系统资源状态的改变只与执行的程序有关,而不受外界影响可再现性:只要初始条件相同,一个程序的多次重复将执行得到相同的结果2. 程序的并发执行特征间断性:由于资源共享和相互合作,并发执行的程序间形成了相互制约的关系,程序会出现 “执行 - 暂停 - 执行”的现象失去封闭性:程序在执行时与其他并发执行的程序共享系统的资源,因此资源的改变还有其他程序有关,及程序本身的执行

2020-08-24 20:29:59 1322

原创 Singleton bean creation not allowed while the singletons of this factory are indestruction

spring启动错误Singleton bean creation not allowed while the singletons of this factory are indestruction错误来由今天在公司测试线程服务的时候很蛋疼的遇到这个错,网上解释多重多样,最后还是靠我自己猜出来了原因其实很简单,就是你的线程里去拿bean,但是你的主线程在调用这个线程后销毁了,所以bean也会随之销毁,这时候你的线程去获取bean就会报这个错拉解决方法因为我是调的springboot的test,

2020-08-21 20:31:42 5551 2

原创 Spring - bean 的生命周期

基本介绍简介Spring容器可以管理Singleton作用域的Bean的声明周期,在此作用域下,Spring能够精确的知道该Bean何时被创建,何时初始化完成以及何时被销毁对于Prototype作用域的Bean,Spring 只负责创建,创建后Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期图示 + 流程简介根据配置情况调用Bean构造方法或工厂方法实例化Bean利用依赖注入完成Bean中所有属性值的配置注入如果Bean实现了BeanNameAware接口,则

2020-07-19 17:22:51 105

原创 Spring - bean 的加载

一 加载配置文件ClassPathXmlApplicationContext(“xxx.xml”)构造函数重点源码构造器(最终会执行该构造器) public ClassPathXmlApplicationContext( String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throws BeansException { super(parent); setCon

2020-07-19 15:38:45 203

原创 MyBatis-Plus 高阶用法

条件构造器ge // 查询name不为空的用户,并且邮箱不为空的emp,年龄大于等于23 QueryWrapper<Employee> wrapper = new QueryWrapper<>(); wrapper .isNotNull("last_name") .isNotNull("email") .ge("age",23);

2020-07-09 15:20:02 1490

原创 MyBatis-Plus 简单使用

简介文档官方github特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID

2020-07-08 17:03:59 514

原创 JUC - ThreadLocal

基本定义ThreadLocal,即线程变量是一个以ThreadLocal对象为键,任意对象为值的存储结构。这个结构会被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个值通过set(T)方法来设置一个值,在当前线程下再通过get()方法获取到原先设置的值源码nextHashCode是ThreadLocal 的唯一IDprivate final int threadLocalHashCode = nextHashCode();CAS

2020-07-08 17:02:42 121

原创 深入理解JAVA虚拟机三 -垃圾收集器与内存分配策略

3.2对象已死?(P68)3.2.1引用计数算法在对象中天街一个引用计数器,每当有一个地方引用它时,计数器值+1,当引用失效时,计数器值-1,为0的对象就是不可能再被使用的3.2.2 可达性分析算法通过一系列称为"GC ROOT"的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,走过的路径叫做"引用链(Reference Chain)",如果某个对象到GC Roots间没有任何引用链相连,(不可到达),证明此对象不可再被使用GC Roots的对象在虚拟机栈(栈中的本地变量表)中引用

2020-07-05 13:01:47 2803

原创 Docker

https://www.cnblogs.com/asxf/p/11057638.html容器:类镜像:对象https://cr.console.aliyun.com:找镜像docker pull redis:3.2 从阿里云把该镜像拉下来docker images 我的docker仓库有啥docker ps 当前容器里运行着啥镜像docker exec -it 542b9d...

2020-06-14 16:03:16 162

原创 springcloud-服务网关

网关一般位置作用反向代理鉴权流量控制熔断日志监控ZuulGateway三大概念Route(路由)路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如断言为true则匹配该路由Predicate(断言)参考的是Java8的java.util.function.Predicate开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由Filter(过滤)指的是Spring框架中Gatew

2020-06-11 14:28:37 189

原创 Kafka - 基本概述&操作

消息队列两种模式点对点(一对一,消费者消费后立刻清除消息)发布、订阅模式(一对多,消费者消费数据之后不会清除消息)基础架构Producer:消息生产者,想kafka broker发送消息的客户端Consumer:消息消费者,想kafka broker取消息的客户端Consumer Group(CG):消费者组,多个Consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个消费者消费;消费者组之间互不影响,所有的消费者都属于某个消费者组,即消费者组是逻辑上

2020-06-10 23:35:25 130

原创 springcloud - 服务降级

文章目录Hystrix概述服务雪崩主要作用三个重要概念1. 服务降级(fallback)2. 服务熔断(break)3. 服务限流(flowlimit)Hystrix概述分布式可能的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败HystrixHystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败。(如超时,异常)Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免联机

2020-06-08 14:09:28 314

原创 SpringCloud - 服务调用

文章目录RibbonRibbon

2020-06-01 19:55:29 267

原创 SpringCloud -服务注册中心

服务注册中心概念在服务注册与发现中,有一个注册中心。当服务器启动的时候,会把当前自己服务器的信息,比如服务地址通讯地址等以别名方式注册到注册中心上。另一方(消费者|服务提供者)以该别名的方式去注册中心上获取到实际的服务通讯地址,然后再实现RPC本地调用RPC远程服务,框架核心设计思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念)Eureka两个组件AA...

2020-05-28 21:58:01 217

原创 JUC-CAS

什么是CASCAS:比较当前工作内存中的值和主内存中的值如果这个值是期望的,那么则执行操作如果不是就一直循环缺点:循环会耗时一次性只能保证一个共享变量的原子性ABA问题Unsafe类自旋锁例子:ABA问题原子引用解决ABA问题,引入原子引用,对应的思想是乐观锁//初始值,初始版本号AtomicStampedReference<Integer> reference = new AtomicStampedReference<Integer&g

2020-05-26 18:31:32 120

原创 Volatile

Volatile基本保证线程之间的可见性(JMM原子操作)Volatile保证可见性与有序性,但是不保证原子性(需要借助synchronized这样的锁机制)缓存可见性实现原理底层实现主要是通过汇编lock前缀指令,它会锁定这块内存区域的缓存(缓存行锁定)并回写到主内存IA-32架构软甲开发者手册对lock指令的解释:会将当前处理器缓存行的数据立即写回到系统内存这个写回内存...

2020-05-26 18:25:43 133

原创 JUC-阻塞队列+线程池

文章目录BlockingQueue概念四组APISynchronousQueue同步队列代码线程池池化技术线程池创建三大方法AABlockingQueue概念阻塞队列间关系使用阻塞队列的场景多线程并发处理,线程池!四组API方式抛出异常有返回值阻塞等待超时等待添加addofferputoffer(,)移除removepolltakepoll(,)检测队列首elementpeek抛出异常/** * 抛出异常

2020-05-26 17:56:04 244

原创 JUC-四大函数式接口&流式计算

函数式接口定义只有一个方法的接口@FunctionalInterfacepublic interface Runnable { public abstract void run();}都可以用lambda表达式来简化四大函数式接口Function/** * Function 函数型接口(可用lambda) * 有一个输入参数,有一个输出参数 * */public class Demo01 { public static void main(String[]

2020-05-26 17:55:54 225

原创 JUC-ForkJoin简单示例

概念定义JDK1.7之后,并行执行任务,提高效率。大数据量将大任务分成几个小任务,用不同的线程去处理,最终合并结果流程图ForkJoin特点:工作窃取里面维护的都是双端队列代码定义/** * 求和计算的任务! * 如何使用 forkjoin * 1. forkjoinPool 通过它来执行 * 2. 计算任务 forkjoinPool.execute(ForkJoinTask task) * 3. 计算类继承RecursiveTask<返回类型>,重写co

2020-05-26 17:55:41 181

原创 JUC-异步调用

概念定义类似于Ajax,主要实现三个方法异步执行成功回调失败回调简单代码// 发起一个请求 , 没有返回值的 runAsync 异步回调CompletableFuture<Void> completableFuture = CompletableFuture.runAsync(()->{ try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) {

2020-05-26 17:55:30 161

原创 SpringCloud -理论

维度,构成体系SpringCloud = 分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体。俗称微服务全家桶主流技术cloud 与 boot版本关系官网查看cloud 升级环境搭建总父工程可创建maven site修改IDEA字符编码注解生效激活 Annotation Processorsjava编译选8 Java Processorsmaven部分知识点dependencyManagement通常在一个父POM中作用:

2020-05-25 18:08:49 199

原创 redis缓存穿透、击透和雪崩

缓存穿透(查不到)概念用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询,发现也没有,本次查询失败当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库,会给持久层数据库造成很大的压力,这就是缓存穿透解决方法布隆过滤器布隆过滤器是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,避免了对底层存储系统的查询压力缓存空对象当存储层不命中后,即使返回的空对象也将其缓存起来,同时设置一个过

2020-05-23 00:36:13 323

原创 Springboot-redis

文章目录基本配置说明源码序列化基本配置pom.xml<!-- redis --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>配置文件spring: redis: host

2020-05-22 23:34:00 157 1

原创 Nginx-配置实例

反向代理Tomcat修改hosts文件

2020-05-17 17:28:03 270

原创 Nginx-基本概念及配置

Nginx简介概述一个高性能的HTTP和反向代理web服务器特点是占有内存少,并发能力强专为性能优化而开发反向代理正向代理在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问反向代理把请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址负载均衡动静分离为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解

2020-05-17 17:27:51 5654 3

空空如也

空空如也

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

TA关注的人

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