自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java基础——运算符

Java运算符运算符是用来操纵数据的符号1、运算符的分类2、详解算术运算符算术运算符就是数学中的+ - * / 对数值进行计算自增运算符++ 和 – 每次运算完之后会加一或减一i++ :先使用后加加++i : 先加加后使用逻辑运算符&& 逻辑与|| 逻辑或! 逻辑非位运算符位运算符允许我们操作一个整型数字中的单个二进制位。位运算符会对两个整数对应的位执行布尔代数,从而产生结果& 与| 或^ 异或~ 非条件运算符布

2022-02-15 12:06:07 253

原创 Java基础——面向对象

面向对象本小节我们来说一说什么是面向对象1、什么是面向对象面向对象编程(Object-Oriented Programming,OOP)是一种编程思维方式和编码架构,是一种 对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。用通俗的语言来说,面向对象就是将现实中的事物可以抽象为一个一个的对象,比如洗衣机、电视等。2、面向对象的特点抽象:对同一类型的对象的共同属性和行为进行概括,形成类(class) 。类是构造对象的模板或蓝图。由类构造(construct) 对象的过程

2022-02-15 11:50:52 303

原创 Java基础知识——数据类型

Java数据类型

2022-02-09 13:40:13 398

原创 Java 基础知识——注释与关键字

Java 注释与关键字

2022-02-09 11:24:01 408

原创 计算机网络 五层协议参考模型(二)

计算机网络 五层协议参考模型(二)

2021-12-05 18:28:22 579

原创 面试—Redis(缓存穿透与缓存雪崩)

面试—Redis(缓存穿透与缓存雪崩)缓存穿透什么是缓存穿透大量请求的 key 根本不存在于缓存中,导致请求直接到了数据库上,根本没有经过缓存这一层如何解决缓存无效key如果缓存和数据库都查不到某个 key 的数据就写一个到 Redis 中去并设置过期时间缺点:导致大量无效key生成布隆过滤器布隆过滤器是一个非常神奇的数据结构,通过它我们可以非常方便地判断一个给定数据是否存在于海量数据中(小概率误判)缓存雪崩什么是缓存雪崩缓存在同一时间大面积的失效,后面的请求都直接落到了

2021-07-13 10:09:58 93

原创 面试—Redis(持久化机制)

Redis持久化概述Redis是一个内存型数据库,数据是保存在内存中的,因为内存是一个断电即失的硬件,所以导致数据容易发生丢失。所以Redis提供了一个持久化机制来应对该问题持久化的方式RDB(默认开启)Redis 通过创建快照来获得存储在内存里面的数据在某个时间点上的副本。Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本(Redis 主从结构,主要用来提高 Redis 性能),还可以将快照留在原地以便重启服务器的时候使用。启用方式修改配

2021-07-13 09:52:47 215

原创 面试—Redis(事务)

Redis事务是什么Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。如何使用Redis 可以通过 MULTI,EXEC,DISCARD 和 WATCH 等命令来实现事务(transaction)功能MULTI:开启事务EXEC:执行事务DISCARD:取消事务WATCH:监听某个key,当调用 EXEC 命令执行事务时,如果一个被 WATC

2021-07-13 08:54:35 122

原创 面试—Redis(缓存过期时间)

Redis缓存过期时间是什么给缓存的数据设置一个有效期,当这个数据过了有效期就失效有什么用Redis是一个内存型数据库,而内存是有限的,给缓存数据设置一个过期时间可以减少内存的消耗可以应对特定的业务场景,如短信验证码、token等底层数据结构Redis是通过一个叫过期字典的数据结构来保存数据的过期时间的typedef struct redisDb { ... dict *dict; //数据库键空间,保存着数据库中所有键值对 dict *expir

2021-07-13 08:35:43 698

原创 面试—Redis(基础知识)

面试—Redis(基础知识)概述Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LR

2021-07-08 15:26:11 115

原创 面试—MySQL(数据库优化)

面试—MySQL(数据库优化)由该图可知数据结构和SQL语句和索引去优化数据库效果是最好的,所以可以从以下几个方面去优化数据库数据库设计根据数据库三范式来进行表结构的设计尽量使用 TINYINT、SMALLINT、MEDIUM_INT 作为整数类型而非 INT,如果非负则加上 UNSIGNEDVARCHAR 的长度只分配真正需要的空间尽量使用整数代替字符串类型单表不要有太多字段,建议在 20 以内避免使用 NULL 字段,很难查询优化且占用额外索引空间不建议使用 select * fr

2021-07-08 14:50:13 189

原创 面试—MySQL(索引)

面试—MySQL(索引)基本概念索引在MySQL中也叫是一种“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引的优缺点优点:保证数据库表中每一行数据的唯一性可以大大加快数据的检索速度可以加速表和表之间的连接在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。缺点:创建索引和维护索引要耗费时间索引需要占物

2021-07-08 10:12:49 82

原创 面试—MySQL(锁和事务)

面试—MySQL(锁和事务)MySQL锁基本概念锁(LOCKING)是最常用的并发控制机构。是防止其他事务访问指定的资源控制、实现并发控制的一种主要手段。锁是事务对某个数据库中的资源(如表和记 录)存取前,先向系统提出请求,封锁该资源,事务获得锁后,即取得对数据的控制权,在事务释放它的锁前,其他事务不能更新此数据。当事务撤消后,释放被锁定的资源。当一个用户锁住数据库中的某个对象时,其他用户就不能再访问该对象锁的分类按锁的范围划分表锁:开销小,加锁快,不会出现死锁,锁定粒度大,发生锁冲突的概率

2021-07-08 09:29:16 133

原创 面试—MySQL(基础知识)

面试—MySQL(基础知识)基础知识超键、候选键、主键、外键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:最小超键,在元组中找不到其真子集,即不含多余的超键主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值外键:在一个表中存在的另一个表的主键称此表的外键存储过程和函数什么是存储过程?一组为了完成特定功能

2021-07-07 16:43:39 145

原创 SpringBoot—自定义starter(sms)

SpringBoot—自定义starter(阿里云短信服务)引言什么是阿里云短信服务?注册和使用阿里云短信服务登录阿里云账号开通RAM子账号给予短信服务的权限登录子账号打开短信服务使用短信服务短信签名:短信签名是短信服务提供的一种快捷、方便的个性化签名方式。当发送短信时,短信平台会根据设置,在短信内容里附加个性签名,再发送给指定手机号码。短信模板:阿里云肯定不会允许你随意发送短信,因此会要求你提前定义好短信发送的内容。当然,内容中允许出现一些参数变量,但基本内容是固定的,这样的一套

2021-07-02 16:08:37 902 1

原创 RabbitMQ—持久化

RabbitMQ—持久化引言如何保障当 RabbitMQ 服务停掉以后消息生产者发送过来的消息不丢失?默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它丢失队列和消息,除非告知它不要这样做。确保消息不会丢失需要做两件事:我们需要将队列和消息都标记为持久化。队列持久化如何实现队列持久化?在声明队列的时候把 durable 参数设置为true即可持久化注意点:有相同名字的队列未持久化,需要将该相同名字的队列删除才能持久化持久化之后,rabbitmq服务器重启,该队列依旧会存在

2021-07-02 15:08:30 3771

原创 RabbitMQ—消息应答

RabbitMQ—消息应答为什么要有消息应答场景:消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了,会发生什么情况。造成的影响:RabbitMQ 一旦向消费者传递了一条消息,便立即将该消息标记为删除。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。以及后续发送给该消费这的消息,因为它无法接收到。保证消息不丢失为了保证消息在发送过程中不丢失,rabbitmq 引入消息应答机制,消息应答就是:消费者在接收到消息并且处理该消息之后,告诉 r

2021-07-02 14:38:59 379 2

原创 RabbitMQ—简单工作队列(WorkQueue)

RabbitMQ—简单工作队列(WorkQueues)引言工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。案例(轮询分发消息)一个生产者,两个消费者抽取工具类public class RabbitMQUtils { public static Channel getChannel() t

2021-07-01 22:25:33 184 1

原创 RabbitMQ—简单队列(Hello World)

RabbitMQ——Hello World引言点对点,一个生产者,一个消费者,一个队列。编码生产者public class Producer { // 定义一个队列名称 public static final String QUEUE_NAME = "hello"; public static void main(String[] args) throws IOException, TimeoutException { // 创建连接工厂 C

2021-07-01 16:24:48 101

原创 SpringBoot整合Redis

SpringBoot整合Redis(详细)新建项目引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>修改配置文件server: port: 6666spring: redis

2021-06-29 19:50:58 73

原创 Linux安装Redis(很详细)

Linux安装Redis(很详细)下载地址:https://redis.io/download上传解压tar zxvf redis-6.0.9.tar.gz /usr/local/myredis安装进入蓝色的文件夹并安装cd redis-6.2.4makemake install PREFIX=/usr/local/redis卸载redis-cli shutdownps aux|grep redis# root 2575 0.0 0.0 6048 780 p

2021-06-29 17:25:47 181

原创 SpringBoot整合MybatisPlus

SpringBoot整合MybatisPlus

2021-06-28 16:56:39 51

原创 SpringBoot——配置文件

SpringBoot——配置文件配置文件的两种格式properties:yml两种配置文件的作用相同,只是语法不同properties采用k-v键值对的形式进行配置yml 采用缩进表示层级,较为简洁推荐使用yml配置yml基本语法#通过换行+缩进来表示层级 server.port = 8083server: port: 8888#key和value之间要有冒号,冒号和value之间要有空格,空格的数量不限制,一般来说就写一个空格name: '张三'数据格式#

2021-06-28 15:14:14 1923

原创 SpringBoot——简介与HelloWorld

SpringBoot——简介SpringBoot是什么Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者特点创建独立的 Spring 应用程序直接嵌入Tomcat、Jetty或Undertow(无需部署WAR文件

2021-06-28 13:00:17 163 1

原创 SpringCloudAlibaba——Sentinel(案例)

SpringCloudAlibaba——Sentinel(整合Ribbon、OpenFeign)整合Ribbon新建modelcloudalibaba-consumer-nacos-order84cloudalibaba-provider-payment9003cloudalibaba-provider-payment9004添加依赖(payment)<dependencies> <!--spring cloud alibaba nacos--&g

2021-06-27 22:29:23 196 1

原创 SpringCloudAlibaba——Sentinel(@SentinelResource实例)

SpringCloudAlibaba——Sentinel(@SentinelResource实例)修改cloudalibaba-sentinel-service8401模块添加依赖(添加commons依赖,自定义的entity model)<dependency> <groupId>org.cjd</groupId> <artifactId>cloud-api-commons</artifactId><

2021-06-27 21:39:55 150 1

原创 SpringCloudAlibaba——Sentinel

SpringCloudAlibaba——Sentinel(流控规则)什么是Sentinel一个轻量级的面向云原生微服务的流量控制,熔断降级组件。Sentinel主要分为两个部分核心库:Java客户端,不依赖任何框架,能够运行所有Java运行时环境,同时对Dubbo/SpringCloud等框架也有较好的支持。控制台:Dashboard基于SpringBoot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。Sentinel的下载与安装下载地址:https://g

2021-06-26 16:20:30 258

原创 SpringCloud Alibaba——Nacos(配置中心)

SpringCloud Alibaba——Nacos(配置中心)概述以前是用SpringCloud Config+Bus来进行自动刷新和动态的更新。现在我们可以直接把配置文件写进nacos,然后再用nacos做类似于config这样的功能。从nacos上抓取我们的配置信息。案例建立cloudalibaba-config-nacos-client3377进行测试新建model改pom <dependencies> <!--nacos-config--&

2021-06-25 22:49:11 190

原创 SpringCloudAlibaba——Nacos(服务注册中心)

SpringCloudAlibaba——Nacos什么是SpringCloudAlibabaSpring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合主要功能Nacos什么是Nacos一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台即,服务注册中心+服务配置中心Nacos安装环境为:阿里云服务器Centos7下载下载地址:https://github.com/alibaba/na

2021-06-24 14:59:41 159

原创 SpringCloud——Seluth链路追踪

SpringCloud——Seluth链路追踪Seluth是什么在微服务框架中,一个客户端发起的请求在后端系统中会经过多次不同的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。SpringCloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供了追踪解决方案并且兼容支持了zipkin。Sleuth :来负责跟踪整理zipkin:负责展现案例ZipKin下载:htt

2021-06-23 21:34:11 471

原创 SpringCloud——消息驱动Stream

SpringCloud——消息驱动Stream什么是StreamSpring Cloud Stream用一句话来概括就是:屏蔽消息中间件底层的差异,用于统一消息的编程模型,降低切换消息中间件的成本。为什么要用Stream降低微服务和消息中间件的耦合性重要概念Binder:Binder是应用与消息中间件之间的封装,目前实现了Kafka和RabbitMQ的Binder,通过Binder可以很方便的连接中间件,可以动态的改变消息类型(对应于Kafka的topic,RabbitMQ的exchange)

2021-06-23 21:07:52 112 1

原创 SpringCloud——消息总线Bus

SpringCloud——消息总线Bus消息总线在微服务架构中,通常会使用轻量级的消息代理来构建一个共用的消息主题来连接各个微服务实例,它广播的消息会被所有在注册中心的微服务实例监听和消费,也称消息总线SpringCloud中也有对应的解决方案,SpringCloud Bus 将分布式的节点用轻量的消息代理连接起来,可以很容易搭建消息总线,配合SpringCloud config 实现微服务应用配置信息的动态更新。动态刷新config两种设计思想利用消息总线触发一个客户端bus/refr

2021-06-22 23:13:41 192 1

原创 SpringCloud——Config

SpringCloud——Config什么是Config微服务意味着要将单体应用中的业务拆分成一个个子服务, 每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud Config是一个提供外部集中式配置管理的设施,配置服务器为各种不同的额微服务应用提供了一个中心化的外部配置Config可以干什么集中管理配置文件不同环境不同配置,动态化的配置更新,分环境部署比如:dev/t

2021-06-22 22:31:34 85

原创 SpringCloud——Gateway

SpringCloud——Gateway什么是GatewayGateway是在Spring生态系统上构建的API网关服务,基于Spring5,SpringBoot2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤功能,例如:熔断,限流,重试。SpringCoud Gateway使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架能干什么反向代理、鉴权、流量控制、熔断、日志监

2021-06-22 15:35:18 111

原创 SpringCloud——Hystrix

SpringCloud——Hystrix什么是HystrixHystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等。Hystriix能够保证在一个依赖问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。Hystrix中的重要概念Hystrix使用案例...

2021-06-21 20:19:51 97

原创 SpringCloud——OpenFegin

SpringCloud——OpenFegin什么是FeginFeign一个声明式WebService客户端,使用Feign能让WebService客户端更加简单。Feign可以与Eureka和Ribbon组合使用以支持服务在均衡。Fegin能干什么基本使用创建model修改pom,引入依赖<dependencies> <!--openfeign--> <dependency> <grou

2021-06-20 22:56:04 71

原创 SpringCloud——负载均衡

SpringCloud——负载均衡什么是负载均衡负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。负载均衡的分类集中式负载均衡:即在 consumer 和 provider 中间使用独立的负载均衡设施(可以是硬件,如F5,也可以是软件,如:Nginx),由该设施把访问请求通过某种策略转发到 provider。进程内负载均衡:将负载均衡的逻辑集成到 consumer,consumer 从服务注册中心获知有哪些地址可用,

2021-06-20 22:43:27 125

原创 SpringCloud——服务注册与发现

SpringCloud服务治理什么是服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,所以需要使用服务治理,管理服务与服务之间的依赖关系,可以实现服务调用、负载均衡、容错等,实现五福注册与发现EurekaEureka采用了CS的设计架构,Eureka Sever作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过Eureka Server来监控系统中各个微

2021-06-19 23:02:50 119

原创 RabbitMQ ----简介与安装

RabbitMQ1、简介什么是RabbitMQRabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。为什么要用RabbitMQ在分布式系统下具备异步,削峰,负载均衡等一系列高级功能。拥有持久化的机制,进程消息,队列中的信息也可以保存下来。实现消费者和生产者之间的解耦。对于高并发场景下,利用消息队列可

2021-06-04 22:44:16 61 1

原创 通俗易懂理解归并排序

归并排序原理将数组不断地二分,直到最后每个部分只包含 1 个数据。然后再对每个部分分别进行排序,最后将排序好的相邻的两部分合并在一起,这样整个数组就有序了。时间复杂度: O(nlogn)代码与注释public class Sort { public static void main(String[] args) { int[] arr = {5,4,6,3,7,1,9,8,2}; int[] temp = new int[arr.length];

2021-06-04 13:20:36 210

Oracle数据丢失恢复的两种方法.md

数据丢失恢复常用的两种方法。。。一般数据的丢失都能恢复

2020-08-11

空空如也

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

TA关注的人

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