自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Get和Post区别

Get和Post区别Url可见性get的Url是可见的,Post的Url是不可见的。所以get是不安全的,Post是安全的1.GET是通过URL方式请求的,可以直接看到,明文传输2.POST是通过请求的header请求,可以开发者工具或者抓包都可以,3.get请求会保存在浏览器历史记录中,还可能会保存在Web的日志中。4.与POST相比,Get的安全性交差,因为所发生的数据是URL的一部分在发送密码或者meigan信息时绝对不要使用GET,POST比GET更安全,因为参数不会被保存在浏览器历史

2021-11-26 15:43:29 288

原创 浅学设计模式

设计模式从何而来每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次的重用那些已有的成功的解决方案,无需重复相同的工作设计模式是什么设计模式是一套被反复使用,多数人知晓,经过分类编目的,代码设计经验的总结,使用设计模式是为了可重用代码,让代码更容易被他人理解并且保证代码可靠性装饰模式以售卖咖啡,在咖啡店里添加不同的配料为例,体验装饰模式的好处以下是装饰模式的结构图在卖咖啡的过程,客户先选择一种口味的咖啡,又选择不同种类的配料,由于配

2021-11-26 15:12:52 409

原创 Mysql面试总结

1.关系型数据库有哪些?关系型数据库:Mysql,Oracal,SQLserver,MariaDB,DB22.非关系型数据库有哪些?Redis,Redis是Nosql一种,MongDB3.sql优化的方案1.尽量使用具体字段名代替*2.做表设计时,字段的类型最好是varchar代替char3.字段里的值,最好用数字代替字符串4.尽量把过滤条件精细,能用and不用or5.索引的涉及,最多5个,不能太多6.模糊查询,尽量要确定开始元素,让索引生效。7.数据库对数字没有严格的要求,8。无用

2021-11-16 23:19:03 431

原创 RebbitMQ

RebbitMQ学习RebbitMQ是什么?RebbitMQ是消息队列,消息中间件,RebbitMQ使用场景服务解耦假设有这样一个场景,服务A产生数据,而服务B,C,D需要这些数据,那么我们可以在A服务中直接调用B,C,D服务,把数据传递到下游服务即可。,但是随着我们的应用规模不断扩大,会有更多的服务需要A的数据,如果服务过多维护会很困难。这是由于服务之间耦合度过于紧密。流量削峰假设我们有一个应用,平均访问量是每秒300请求,那么一台服务器可以轻松应对,而在高峰期,访问量翻了10倍,达到每秒

2021-11-15 18:53:10 1367

原创 不得不掌握的JVM

JVM类加载机制Java运行时一个类是什么时候被加载的。HotSpot虚拟机类加载器究竟是什么?双亲委派模型是什么回事?如何自定义类加载器?

2021-11-15 15:26:24 658

原创 java基础

1.java基础 序列化和反序列化什么是序列化?java序列化是指把java对象转化为字节序列的过程,而java反序列化就是指把字节序列化恢复为java对象的过程。为什么要序列化和反序列化?我们知道,两个进程进行远程通信的时候,可以相互发送各种类型的数据,包括文本,图片,音频,视频,而这些数据都会以二进制序列的形式在网络上传送,两个进程间进行对象的传送,可以用到序列化和反序列化。一方面,发送方需要把java对象转化为字节序列然后在网络上传输,另一方面,接收方,需要从字节序列中恢复出字节对象。

2021-11-11 16:09:31 362

原创 Redis使用

redis1.redis是内存数据库,基于key-value进行存储的,支持多种数据类型 :String(字符串),list(列表);hash(哈希),set(集合),zset(有序集合)2.支持持久化,通过内存进行存储,也可以存在硬盘里面。3.Redis读取的速度是110000次/s,写的速度是81000次/s4.支持过期时间,支持事物,消息订阅5.一般来讲,把经常查询,不经常修改,不是特别重要的数据放到redis作为缓存 把经常访问的数据放到redis的使用步骤redis整合 Spri

2021-11-08 17:30:49 349

原创 算法之冒泡排序

为什么叫冒泡排序?因为每次比较都会比较出最大的一个,就像碳酸饮料一样浮出最大的一个,所以叫冒泡排序通过实验可以得出几个结论1.一共有几个元素参与比较(6个)2.一个比较了几轮(5轮)3.每一轮是怎么比较的(相邻元素进行比较,顺序不对就互换位置–顺序是前一个跟后一个进行比较)4.每轮比较的结果(每轮都会确定一定最大的元素)5.有哪些相邻元素可以不参与比较(之前轮确认的最大值)我们怎么实现冒泡排序?我们可以通过for循环嵌套来实现外层循环控制的是比较的轮数内层循环控制的每轮比较的次数在比

2021-11-08 09:34:58 52

原创 Docker安装

Docker安装准备工作第一步:准备Centos(用课前资料的centos7964),本次以CentOS7为例进行安装。第二步:基于vmvare打开Centos第三步:克隆Centos(选择链接克隆-更省空间),重新命名开启虚拟机系统在ifconfig指令查看ip用MobaXterm工具链接虚拟系统卸载Docker假如已经有docker,可执行如下指令卸载Docker(一般只针对线上安装情况)sudo yum remove docker-ce docker-ce-client doc

2021-11-06 17:24:26 65

原创 Vue的v-model属性学习

Vue的v-model属性学习mvc:是一种思想,为了实现程序的解耦,在程序设计时,V:视图层,M:model数据模型,C:控制层整个后台都是控制层。v-model是数据的双向绑定,只要用户写,都用到数据双相绑定。v-model.number 将输入的内容转换为数值v-model.trim 去掉多余的空格,前后空格v-model.lazy 懒加载方式 用户离焦触发Vue的生命周期创建挂载...

2021-11-04 10:57:55 142

原创 Elasticsearch:全文检索条

Elasticsearch全文检索引擎服务器1.克隆docker base:es2.设置ip./ip-staticip:3.上传文件到、rootpditems文件夹elasticresarch-an–zipes-img.gz4.导入镜像docker load -i es-img.gz5.增加服务器内存到2G或以上6.修改linux底层系统参数,echo 'vm.max_map_count=262144' >>/etc/sysctl.conf没有参数运行不了7.关闭

2021-11-03 16:58:58 977

原创 Redis哨兵搭建

Redis哨兵搭建哨兵:在redis里监控服务,在主从复制结构中,当主服务器宕机,哨兵可以监控到服务宕机,并且在服务器中选举产生一个新的主服务器。选举多个哨兵,一个是高可用,另一个原因是投票,当都投票到一个说明这个服务器宕机。少数服从多数搭建主从服务器 — 一主多从启动系统dockersystemctl restart docker清理容器docker rm -f $(docker ps -aq)进入容器docker exec -it redis6379 redis-cli查看集群信息

2021-11-03 09:58:58 331

原创 java解析Excel工具easyexcal

java解析Excel工具easyexcalEasyExcel 简介1.java领域解析,生成Excel比较有名的框架有Apache poi,jxl等,但是他们都存在一个严重的问题就是非常耗内存,如果你的系统并发量不打还行,但是一旦并发上来后一定会OOM或者JVM频繁full gc2.EasyExcel是阿里巴巴开源的一个excel处理框架,已使用简单,节省内存著称能减少内存主要的原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘文件上一行行读取数据,逐个解析使用ExcelE

2021-11-02 16:51:17 949

原创 Nginx反向代理服务器

Nginx反向代理服务器1.请求转发路经匹配进行转发2.负载均衡3.动静分离

2021-11-01 20:59:56 1561

原创 面试复习攻略

面试复习攻略程序员职业发展复习路线JVM、多线程、Spring 全家桶、微服务、网络、消息中间件、数据结构、算法、分布式1.JVM2.Java集合+多线程并发3.Java 基础+Spring 原理+微服务4.Netty 与 RPC+网络5.日志+Zookeeper+Kafka6.消息中间件7.设计模式+负载均衡8.数据库+一致性算法9.Java 算法+数据结构+加密算法+分布式缓存...

2021-11-01 10:42:35 111

原创 Java代码操作阿里云oss对象存储

Java代码操作阿里云oss上传文件到aliyun oss操作1.准备工作:创建阿里云oss许可证(阿里云颁发id和密钥)查看文档快速入门–在项目中直接整合在java中应用1.创建子模块service-oss–maven项目2.在pom.xml文件中添加依赖3.配置application.yml4.创建启动类–控制台报错–去访问数据库了,要配置数据源5.解决–没有数据库方式一:添加数据库配置–不需要方式二:在启动类添加书香,默认不去加载启动类数据库配置6.

2021-10-30 16:07:55 882

原创 微服务文件上传(总结与练习)

业务描述基于Spring Cloud Alibaba解决方案实现文件上传,例如工程创建以及初始化工程结构在父工程的pom文件下添加依赖 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <art

2021-10-29 09:18:48 346

原创 Dockerfile及镜像制作

背景我们从基于docker pull 指令可以从远程仓库下载我们需要的一些镜像(image),但是镜像仓库中的镜像是从哪里来的呢,加入镜像仓库中没有我们需要的镜像尼镜像制作分析Dockerfile 是一个用来构建镜像的文本文件,文本文件包含了一条条构建镜像所需要的指令和说明所有的镜像文件创建时都需要一个空的centos镜像,就类似一个空的光盘。创建镜像文件Dockerfile制作jdk镜像1.vim Dockerfile2.点击i进入编辑模式3.FROM centos:7ADD j

2021-10-29 09:18:02 61

原创 zuul集成ribbon/hytrix

zuul集成ribbon默认启用了负载均衡默认没有启用重试(会影响故障的传播,所以不在前面启用重试)在末尾进行重试在入口位置进行重试会造成后台大面积服务压力翻倍,可能造成故障传播。这里叫雪崩。zuul启用重试步骤:1.添加spring-retry依赖2.yml配置 zuul.retryable=true3.配置重试参数(可选)zuul集成HystrixHystrix容错限流工具当流量访问过大时就限流–把链路断掉容错是通过降级来实现,降级就是调用后台服务出错,可以执行当前服务的一

2021-10-29 09:17:36 346

原创 springcloud微服务

springcloud介绍spring cloud是一系列框架的集合。它利用spring boot的开发便利性巧妙的简化了分布式系统基础设施的开发,如服务的发现与注册,配置中心,消息总线,负载均衡,断路器,数据监控等都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 spring boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和

2021-10-29 09:17:07 80

原创 Tcc模式

Tcc模式有侵入的事务方案事务控制代码需要自己写业务代码也需要修改底层数据库表结构也要修改AT事务适用于80%业务场景,在一些复杂的情况下,自动事务无法自动处理,就需要手动处理事务TCC–两个阶段的三个操作第一阶段。Try-预留资源,冻结数据。第二阶段。Confirm-确认资源,使用冻结数据完成业务处理。Cancel-取消预留的资源,把之前预留的资源解冻/恢复回去例子第一阶段 Try以账户服务为例,当下订单时要扣减用户账户金额:假如用户购买 100 元商品,要扣

2021-10-28 18:39:48 819

原创 分布式事务(五)Seata AT模式-Spring Cloud微服务添加 AT 分布式事务

seata server AT事务部署Seata server (TC事务协调器)1.下载seata server-1.3.zip2.修改三个配置文件registry.conf–向注册中心注册file.conf–协调运行过程中记录的日志数据,要存到数据库,所以要配置数据库seata-server.bat–配置 使用的内存(默认2G)该小(256M)–windows批处理文件3.执行seata-server.ba启动只能是jdk1.8才能起来seata-server.

2021-10-27 17:40:23 131

原创 分布式事务

分布式事务搭建业务案例数据库初始化工具执行多次测试后,库存好账户金额都会减少,可以执行初始化工具,把数据重置到初始状态,在重新测试1.新建空工程:seata-at2.新建spring模块:db-init3.添加依赖: spring jdbc,mysql driver<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifac

2021-10-26 17:58:29 95

原创 消息服务案例

1.Bus配置刷新Bus发送一个刷新指令,其他模块接受执行并执行刷新操作Rabbitmq模式:主题模式2.链路跟踪日志链路日志发送到rabbitmq,zipkin服务器接收日志简单模式3.订单的流量晓峰短时间内产生大量的订单...

2021-10-26 15:54:31 52

原创 链路追踪zipkin

sleuth用来产生链路跟踪日志zipkin日志的可视化处理sleuth产生日志a–b--c–d用户访问a,先从a进行执行,a会随机产生链路产生链路id,b,c,d都会产生是否交给zipkin处理,有booleanb值,默认只有10%的抽样比例发送给zipkin,比例是可调的添加sleuth产生链路跟踪日志只需要在pom文件添加sleuth依赖sleuth自动配置,不需要添加任何其他配置修改2,3,4,6,四个模块–以下是产生的日志链路日志直接发送到zipkin直接连接zipki

2021-10-25 14:14:13 566

原创 Springcloud Netfix学习之--服务的发现与注册

服务的发现与注册主要业务:3个业务模块商品模块:item用户模块:user订单模块:order新下了订单,增加用户积分,远程调用,订单远程调用user,获取积分,调用商品,减少库存访问订单时,会从订单远程调用商品,调用用户核心业务,围绕核心业务添加组件共同模块–commin创建父工程springcloud01pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache

2021-10-21 20:39:13 111

原创 第五阶段的学习

主要学习1.spring cloud netfix2.RabbitMQ3.分布式事务4.RocketMQ5.Docker6.Elasticearch:全文检索条7.Kubernetes:全自动容器管理开发环境ideaLombokEditStartersFree Mybatis PluginMaven HelperMaven使用阿里仓库和中央仓库,来回切换更新setting.xml不配置任何镜像仓库,默认使用中央仓库创建新工程...

2021-10-21 19:28:02 53

原创 springcloud-config配置中心

配置文件修改更方便,把配置文件集中到配置中心,项目不用重新配置。集中的管理和维护配置中心从git下配置中心一:准备Git仓库把2,3,4三个项目的配置文件,存放到配置中心1.先准备本地仓库,在speingcloud1下新建文件夹,config2,把2,3,4.三个项目的配置文件,复制到config目录item-service-dev.ymluser-service-dev.ymlorder-service-dev.yml为了防止配置中心的配置覆盖本地命令参数,override-none

2021-10-21 11:26:39 88

原创 eureka注册

服务是注册与发现搭建eureka注册中心服务器1.新建module:sp05-eureka2.调整父项目父项目添加eureka server依赖3.yml配置:关闭自我保护主机名–eureka集群针对单台服务器,不向自己注册,不从自己拉去4.启动类注解:@EnableEurekaServer 触发eureka服务的自动配置...

2021-10-18 19:00:10 41

原创 Springcloud Netfix学习

Springcloud Netfix学习一:注册中心nacosEureka二:配置中心Nacosspring cloud config三:远程调用,负载均衡Feign,Ribbon四:统容错,限流sentinelHystrix五:API网关spring cloud Gateway六:数据监控sentinelHystrix Dashboard链路跟踪遇到依赖下载不下来的时候,换仓库。换成远程仓库,默认是远程仓库...

2021-10-18 14:01:48 75

原创 Redis主从同步架构设计

Redis主从同步架构设计背景redis是内存数据库,单个redis支持的读写能力还是有限的,此时我们可以使用多个redis来提高redis的并发能力,redis如何协同,就需要一定的架构设计。我们这里主要从主从同步架构进行分析和实现。基本架构其中master负责读写,slave负责读,从节点负责读取数据,但是不能写数据快速入门基于redis设计一主从架构,一个master,两个slave,其中Master负责redis的读写操作,并将数据同步到Slave,slave只负责读,其步骤如下:

2021-10-12 18:56:39 117

原创 redis池--JedisPool

背景我们基于jedis访问redis时,每次都要获取连接,然后每次都要创建jedis ,释放连接会带来很大的性能开销,我们使用连接池,可以提高性能。使用步骤简单的demo演示public class jedisPooltTest { @Test public void testJedisPool(){ String host = "192.168.126.129"; int port = 6379; //定义连接 池配置

2021-10-11 13:16:17 1320

原创 Docker常用的镜像,容器,以及常用的操作

常用的镜像Centos 7mysql镜像—docker pull mysql:8.0.23redis镜像–docker pull redisnginx镜像–docker pull nginxnacos镜像–docker pull nacos/nacos-server:1.4.1sentinel镜像常用的容器容器是基于镜像启动的常用的操作相关镜像操作指令:docker pull 镜像名,版本—拉取镜像docker images --查看镜像docker images rm 镜像

2021-10-08 19:01:58 247

原创 Docker容器互联

简介概述Docker中存在多个容器时,容器与容器之间经常需要进行通讯,例如nacos访问mysql,redis集群中的各个节点之间的通讯解决方案Docker中容器与容器之间进行通讯的解决方案有两种:第一种:两个容器之间通过宿主机进行通讯(容器中的端口会映射在宿主机上)第二种:两个容器之间通过虚拟网络进行连接,但是需要在docker中创建网络初始化网络架构设计Docker中新建网络例如:创建名字为t-net创建网络:docker network create t-net查看网络信息:

2021-10-08 11:16:40 55

原创 Docker学习

什么是Docker?docker是一个虚拟化平台,基于镜像启动容器,在容器里执行业务。可快速的进行打包测试以及部署程序。Docker版本dockerEE (企业版) dockerCE(社区版–免费)Docker核心组件镜像(image)Docker 镜像是一个特殊的文件系统(https://hub.docker.com/),除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。例如JDK镜像、Centos镜像、MySQL镜像

2021-10-08 10:08:18 41

原创 Nacos,Sentinel,gateway层面的面试总结

Nacos面试分析1.为什么将服务注册到nacos?答:微服务里有很多服务,为了更好的管理和查找服务,将服务注册到nacosnacos孵化于阿里巴巴,成长于十年双十一的洪峰考验,简单易用,稳定可靠,性能逐月。2.在nacos中服务提供者是如何向nacos注册中心(Registry)续约的?答:nacos服务客户端(要注册到nacos的服务)启动时会每隔一段时间(默认5秒)向nacos发生心跳包,nacos注册中心15秒内没有检测到心跳包会默认认为nacos处于一种不健康的状态,30秒还没收到则认为

2021-09-29 19:03:58 4166

原创 Spring学习

Spring是什么?Spring是开源的框架,是容器框架,用来装javabean(java对象),中间层框架(万能胶),可以起连接作用,让我们的企业开发更快,更简洁Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架–从大小与开销都是两方面都是轻量级的代码的侵入性都是低的,依赖性也低。-...

2021-09-28 23:20:37 40

原创 spring-cloud总结

spring-cloud微服务总结学习框架微服务—服务的治理什么是微服务?微服务就是单个应用程序开发可以作为小型的服务,单个部署与发布,比如提供方,消费方这些服务使用轻量级API,通过明确定义的接口进行通信,这些服务是围绕业务功能构建的,每项服务执行一项功能,由于他们是独立运行的,因此可以根据各项服务进行灯芯,部署和扩展,实现应用程序特定功能的需求。spring-cloud-alibaba微服务解决方案spring Cloud Alibaba是springCloud的一个子项目,致力于提供

2021-09-23 20:45:12 94

原创 服务降级学习

服务降级学习降级概述除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出 DegradeException)。服务降级和熔断的区别服务

2021-09-22 14:12:11 107

原创 基于Feign的远程服务调用(重点)

基于Feign的远程服务调用(重点)基于Feign的远程服务调用的目的我们之前是服务消费方基于rest方式请求调用服务方的服务时,一种直接的方式就是自己拼接url,拼接参数后然后进行服务的调用,但每次使用都需要这样拼接,代码量复杂不易维护,所以就使用feign使用feign可以实现消费方对远程服务的调用使用feign的步骤第一步 : 在pom文件里添加依赖第二步 :在启动类上加注解@EnableFeignClients第三步:定义service包接口 ,使用注解,调用远程服务@Feig

2021-09-22 11:14:54 227

空空如也

空空如也

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

TA关注的人

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