自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Security

1 设置用户名和密码通过配置文件设置通过配置类设置自定义实现类设置

2021-01-03 23:03:15 117

原创 docker

安装docker步骤uname -r 检查内核版本 版本大于3.1.0即可yum install 安装yum源yum install -y yum-utils device-mapper-persistent-data lvm2 安装依赖包yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 设置stable镜像仓库yum install doc

2020-10-16 21:00:57 137

原创 mysql

什么是事务:原子性一个事务要么同时成功要么同时失败一致性一致性是和原子性密切相关的,指的是事务的开始至结束,数据的结果保持不变隔离性事务与事务之间互不影响,互不干扰持久性一个事务执行成功,那么这个记录会永久的保存在数据库中事务有哪些隔离级别?mysql的默认级别是什么?mysql的默认级别是可重复读取事务的隔离级别有1 读未提交读未提交在并发的情况下可能会出现脏读的问题2 读已提交读以提交可以解决脏读的问题,但是他多次读取的数据是不一样的,可能会导致不可重读读的问题3

2020-10-02 11:07:16 140

原创 redis相关知识

redis的主从复制主要分为三个阶段和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。主从复制主要分为三个阶段连接阶段(slave与master建立连接)同步阶段(全量同步,增量同步)命令阶段(slave向master发送同步完成命令)这里主要介绍同步阶段全量同步Red

2020-09-29 17:39:50 134

原创 RabbitMq高级特性

1 消息的可靠投递在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ为我们提供了两种方式用来控制消息的投递可靠性模式。confirm确认模式return退回模式rabbitmq整个消息投递的路径为:producer—>rabbitmq broker—>exchange—>queue—>consumer消息从producer 到 exchange则会返回一个confirmCallback .消息从exchange–&g

2020-09-20 15:13:13 160

原创 RabbitMq入门

1. 消息队列MQMQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。...

2020-09-19 13:40:32 250

原创 电商项目面试总结

1 怎么防止用户恶意刷单答:我们防止用户恶意刷单主要是用redis去做的,具体过程就是我们在用户下单的时候会根据当前用户名给用户生成一个唯一标识,然后通过redis让这个唯一标识进行自增,然后我们可以根据这个自增的值去判断是不是恶意刷单,如果这个值为1的话就可以说这个用户不是恶意刷单,如果大于一的话就可以判断说这是一个恶意刷单的行为,我们直接reture false 就好,当然这个唯一标识我们也给他加了一个过期时间2 如何防止相同秒杀商品重复购买答:直接去根据用户名和商品id去查订单数据库,如

2020-09-15 15:37:02 1481

原创 面试题

高并发解决方案1,最简单粗暴的一份方法就是提升硬件 2,将我们的系统进行分布式管理,我们可以使用一个集群 而不是单个系统来完成工作,提高系统的吞吐量3,采用缓存的方式,我们可以将常用而又显得不那么重要的信息存入缓存当中,一定的时间去刷新一次,可以大大减少数据库的压力4,使用Nginx,Nginx作为一款轻量级反向代理服务器,并发能力强,能够支持50000个并发连接数的响应,可以把哪些静态的资源文件放入Nginx中来提高访问的速度5,采用异步的方式,举个例子,某个人从支付宝提取现金到银行卡,但是银行

2020-08-14 14:38:01 166

转载 RedisTemplate常用方法总结

引用:RedisTemplate常用方法总结

2020-07-13 15:37:40 157

原创 分布式事务解决方案

1.分布式事务解决方案例如我们编写的扣减库存与保存订单是在两个服务中存在的,如果扣减库存后订单保存失败了是不会回滚的,这样就会造成数据不一致的情况,这其实就是我们所说的分布式事务的问题,接下来我们来学习分布式事务的解决方案。1.1 本地事务与分布式事务1.1.1 事务数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务拥有以下四个特性,习惯上被称为ACID特性:原子性(Atomicity): 事务作为一个整体被执行,包含在其中的

2020-07-12 12:14:34 119

原创 springboot整合大众点评cat

CAT 简介CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束

2020-06-24 23:51:45 405

原创 Springboot 整合thymeleaf人门

1.Thymeleaf 介绍thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标

2020-06-21 00:35:13 144

原创 elsticSearch各种操作

包括分页,高亮,价格区间过滤,品牌锅炉,聚合查询,升序(降序),关键字搜索package com.changgou.search.service.impl;import com.alibaba.fastjson.JSON;import com.changgou.search.pojo.SkuInfo;import com.changgou.search.service.SearchService;import org.apache.commons.lang.StringUtils;import

2020-06-20 23:52:21 220

原创 Nginx的三大作用

负载均衡功能反向代理功能http服务器功能

2020-06-14 00:31:00 258

原创 Linux介绍及常用命令

Linux常见目录说明:/bin: 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里;/etc: 存放系统管理和配置文件;/home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;/usr : 用于存放系统应用程序;/opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里;/proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;

2020-06-12 16:04:43 98

原创 Redis面试题

什么是 Redis ?Redis ,全称 Remote Dictionary Server ,是一个基于内存的高性能 Key-Value 数据库。另外,Redis 已经成为互联网公司在缓存组件选择的唯一,更多的关注点是,如何使用好 Redis 。Redis 有什么优点????? 1. 速度快因为数据存在内存中,类似于 HashMap ,HashMap 的优势就是查找和操作的时间复杂度都是O (1) 。Redis 本质上是一个 Key-Value 类型的内存数据库,很像Memcached ,整个

2020-06-12 10:58:21 236

原创 redis

1.什么是 Redis ?全称 Remote Dictionary Server ,是一个基于内存的高性能 Key-Value 类型的数据库,另外,Redis 已经成为互联网公司在缓存组件选择的唯一,更多的关注点是,如何使用好 Redis 。2.Redis 有什么优点?速度快因为数据存在内存中,类似于 HashMap ,HashMap 的优势就是查找和操作的时间复杂度都是O (1) 。Redis 本质上是一个 Key-Value 类型的内存数据库,很像Memcached ,整个数据库统统

2020-06-12 10:54:50 86

原创 多线程入门

1.线程的生命周期新建 :从新建一个线程对象到程序start() 这个线程之间的状态,都是新建状态;就绪 :线程对象调用start()方法后,就处于就绪状态,等到JVM里的线程调度器的调度;运行 :就绪状态下的线程在获取CPU资源后就可以执行run(),此时的线程便处于运行状态,运行状态的线程可变为就绪、阻塞及死亡三种状态。等待/阻塞/睡眠 :在一个线程执行了sleep(睡眠)、suspend(挂起)等方法后会失去所占有的资源,从而进入阻塞状态,在睡眠结束后可重新进入就绪状态。终止 :run()

2020-06-11 16:22:02 57

转载 解决跨域问题

前言Springboot跨域问题,是当前主流web开发人员都绕不开的难题。但我们首先要明确以下几点跨域只存在于浏览器端,不存在于安卓/ios/Node.js/python/ java等其它环境跨域请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。之所以会跨域,是因为受到了同源策略的限制,同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。浏览器出于安全的考虑,使用 XMLHttpRequest对象发起 HTTP请求时必须遵守同源策略,否则就

2020-06-10 16:41:48 142

原创 使用canal监控数据库

1 OpenResty介绍: OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。 OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 乃至1000K以上并发连接响应的超高性能 Web 应用系统。360,UPYUN,阿里云,新浪,腾

2020-06-09 11:28:06 980

原创 分布式ID生成解决方案

1 分布式ID生成解决方案1.UUID:常见的方式。可以利用数据库也可以利用程序生成,一般来说全球唯一。优点:1)简单,代码方便。2)生成ID性能非常好,基本不会有性能问题。3)全球唯一,在遇见数据迁移,系统数据合并,或者数据库变更等情况下,可以从容应对。缺点:1)没有排序,无法保证趋势递增。2)UUID往往是使用字符串存储,查询的效率比较低。3)存储空间比较大,如果是海量数据库,就需要考虑存储量的问题。4)传输数据量大5)不可读。2 Redis:当使用数据库来生成 ID性能不够

2020-06-07 22:40:40 82

原创 JWT 实现微服务鉴权

什么是微服务鉴权:判断用户是否有权限进行微服务的访问,微服务的鉴权比较适合在网关中进行权限的校验我们可以采用 JWT的方式来实现鉴权校验JWT:JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名1.头部(Header):头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。这也可以被表示成一个JSON对象 如:{“typ”:“JWT”,“

2020-06-07 16:45:57 532

原创 加密算法

1. 可逆加密算法解释: 加密后, 密文可以反向解密得到密码原文2.对称加密【文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥】解释: 在对称加密算法中,数据发信方将明文和加密密钥一起经过特殊的加密算法处理后,使其变成复杂的加密密文发送出去,收信方收到密文后,若想解读出原文,则需要使用加密时用的密钥以及相同加密算法的逆算法对密文进行解密,才能使其回复成可读明文。在对称加密算法中,使用的密钥只有一个,收发双方都使用这个密钥,这就需要解密方事先知道加密密钥。优点: 对称加密算法的优点是算法公

2020-06-07 14:47:56 113

原创 BCrypt快速入门

在用户模块,对于用户密码的保护,通常都会进行加密。我们通常对密码进行加密,然后存放在数据库中,在用户进行登录的时候,将其输入的密码进行加密然后与数据库中存放的密文进行比较,以验证用户密码是否正确。 目前,MD5和BCrypt比较流行。相对来说,BCrypt比MD5更安全。因为其内部引入的加盐机制Demopackage com.changgou;import org.springframework.security.crypto.bcrypt.BCrypt;public class TestBCr

2020-06-07 10:42:59 315

原创 基于网关对服务进行限流

常用的限流办法是使用令牌桶进行限流1)所有的请求在处理之前都需要拿到一个可用的令牌才会被处理;2)根据限流大小,设置按照一定的速率往桶里添加令牌;3)桶设置最大的放置令牌限制,当桶满时、新添加的令牌就被丢弃或者拒绝;4)请求达到后首先要获取令牌桶中的令牌,拿着令牌才可以进行其他的业务逻辑,处理完业务逻辑之后,将令牌直接删除;5)令牌桶有最低限额,当桶中的令牌达到最低限额的时候,请求处理完之后将不会删除令牌,以此保证足够的限流这个算法的实现,有很多技术, Guava(读音: 瓜哇)是其中之一,re

2020-06-06 22:58:58 251

原创 如何使用getway实现网关过滤器

使用getway网关过滤器只需要在filter包里面的类中继承GlobalFilter 和 Ordered即可示范代码:package com.changgou.filter;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.

2020-06-06 22:41:32 2969

原创 跨域处理

使用yml配置文件进行处理spring: application: name: sysgateway cloud: gateway: globalcors: cors-configurations: '[/**]': # 匹配所有请求 allowedOrigins: "*" #跨域处理 允许所有的域 allowedMethods: # 支持的方法 - GET

2020-06-06 22:13:41 89

原创 FastDFS工具类

FastDFSFile.java 为 FastDFSClient.java上传文件所需要的对象public class FastDFSFile { //文件名字 private String name; //文件内容 private byte[] content; //文件扩展名 private String ext; //文件MD5摘要值 private String md5; //文件创建作者 private String

2020-06-06 17:46:19 788

原创 为什么要使用网关

1,使用网关可以统一进行鉴权,如果在微服务系统中不使用网关那么在每一个微服务中都需要进行鉴权,不仅增加系统的复杂性,而且也影响用户体验2,使用网关鉴权可以有效的保护微服务,只暴露自己的网关,将其他的微服务可以隐藏在内网中通过防火墙进行保护3,易于监控,可以在网关中直接统一收集监控数据并将其推送到外部系统进行分析4减少客户端与各个微服务之间的交互次数...

2020-06-06 17:13:33 3883

原创 git

创建本地仓库的3种方式:1.在安装git的前提下进入想要创建本地仓库的文件下点击鼠标右键选择Git GUI Here 点击创建2. 使用git命令行的方式:在git命令行里输入git init进行创建3. 在安装git的前提下进入想要创建本地仓库的文件下点击鼠标右键选择Git create repository here进行创建...

2020-05-23 18:02:37 100

空空如也

空空如也

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

TA关注的人

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