自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分库分表

前言传统的将数据集中存储至单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足互联网的海量数据场景。数据分片数据分片指按照某个维度将存放在单一数据库中的数据分散地存放至多个数据库或表中以达到提升性能瓶颈以及可用性的效果。 数据分片的有效手段是对关系型数据库进行分库和分表。分库和分表均可以有效的避免由数据量超过可承受阈值而产生的查询瓶颈。 除此之外,分库还能够用于有效的分散对数据库单点的访问量;分表虽然无法缓解数据库压力,但却能够提供尽量将分布式事务转化为本地事务的可能,一旦涉及到跨库的

2020-05-25 00:32:31 385 1

原创 分布式ID详解

背景分布式ID:用在分布式系统中在我们的业务需求中通常有需要一些唯一的ID,来记录我们某个数据的标识:某个用户的ID某个订单的单号某个信息的ID为什么需要分布式ID1.如果id我们使用的是数据库的自增长类型,在分布式系统中需要分库和分表,会有两个相同的表,有可能产生主键冲突分布式ID类型:全球唯一,不会冲突UUID:全球唯一:字符串数据库表来维护ID :新建一张表来产生ID,使用哪种数据库由自己选择Mysql、MongoDB、Redis,性能不好:字符串或数字类型雪花ID:时间

2020-05-21 23:54:46 1336

原创 如何使用JWT和RSA非对称加密进行授权认证单点登录

认证流程集中式认证流程分布式认证流程分布式认证有状态登录:服务器需要存储token无状态登录:服务器不用存储token什么是有状态例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点:服务器需要保存大量数据,压力大服务端保存用户状态,无法进行水平扩展客户端请求依赖服务端,多次请求必须访问同一台服务器,

2020-05-15 23:17:57 1861 2

原创 最新RabbitMQ面试题

AMQP和JMS分别是什么 ,区别是什么?答:AMQP:是高级消息队列协议(SpringBoot内置了启动器) 定义数据的格式:json , 二进制 跨语言的JMS:定义了操作消息的接口规范:发送消息,接收消息 只能用java两者的区别和联系:- JMS是定义了统一的接口,来对消息操作进行统一,AMQP是通过规定协议来统一数据交互的格式.- JMS限定了必须使用Java语言,AMMQP只是协议,不规定实现方式,是跨语言的.- JMS规定了两种消息模型,分别是点对点,和发布订阅两种,而

2020-05-13 23:26:52 206

原创 ArrayList底层原理详解

前言:在讲ArrayList之前,先讲简单讲下ListList集合代表一个有序集合,集合中每个元素都有其对应的顺序索引,它继承Collection接口,可以定义一个允许重复的有序集合List接口的特点:1、有下标2、有顺序3、能重复实现List接口的集合有:ArrayList、LinkedList、Vector、Stack在这篇文章,只详细讲ArrayLi...

2020-02-28 12:56:45 703

原创 JVM-垃圾收集算法

怎么判断一个对象是垃圾判断算法引用计数法当别的对象引用该对象时,该对象内部计数器会加1,失效时计数器会减1,当计数器为0时,对象就会被回收当栈中的obj引用堆中的obj1时,obj1内部计数器会加1,obj1引用obj2时,obj2内部计数器也会加1,而同时obj2引用obj1,obj1内部计数器将会再加1。引用计数器的问题:哪怕是栈里面的obj对堆里面obj1进行了释放,那么obj1的计数器还是不为零,如果两个对象相互依赖,导致内部的计数器用于不会0,导致永远不能被回收

2020-06-08 19:27:52 151

原创 JVM-堆

堆:java堆是所有线程所共享的一块内存,在虚拟机启动时创建,几乎所有的对象实例都在这里创建,因此该区域经常发生垃圾回收操作。新生代:. eden区. S区s0区s1区老年代jdk1.8为什么要把永久代干掉,取而代之的是元空间呢1.永久代:空间大小是固定的2.元空间:自动扩容,扩容堆外内存新生代对象创建发生在什么区?一般情况都会创建在eden区,一些大对象分配到老年代可以通过参数配置 -XX:PretenureSizeThreshold=6M ,例如超

2020-06-07 17:39:55 213

原创 开源的分布式事务解决方案之Seata

前言分布式事务框架很多:tcc-transaction、Hmily、ByteTCC、myth、EasyTransaction、tx-lcn、seata等等框架,这里有一篇关于这些框架压测的测试报告【不包括seata】:测试报告 ,可以了解下这里我们介绍seata来实现分布式事务。2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像

2020-05-24 18:55:44 926

原创 安装seata与搭建seata服务

1)安装第一步:下载:https://github.com/seata/seata/releases第二步:解压 seata-server-0.9.0第三步:运行bin下的seata-server.bat2)涉及到分布式事务的数据库添加表seata需要用到额外的一张数据库表,在需要分布式事务的数据库中执行如下sql创建表即可:-- 注意此处0.3.0+ 增加唯一索引 ux_undo_logCREATE TABLE `undo_log` ( `id` bigint(20) NOT NULL

2020-05-24 18:55:32 5308 2

原创 分布式事务理论

分布式事务与本地事务的区别本地事务:整个服务只能操作一个数据库资源,也就是一个tomcat操作一个数据库【同一线程】分布式事务(多进程间的,一个端口就是一个进程):一个tomcat操作多个数据库或者多个tomcat操作一个或多个数据库分布式事务相关理论:CAP定理CAP定理是在 1998年加州大学的计算机科学家 Eric Brewer (埃里克.布鲁尔)提出,分布式系统有三个指标Consistency 一致性Availability 可用性Partition tole

2020-05-24 17:50:13 129

原创 SpringCloud搭建短信微服务

开通阿里短信服务依赖坐标 <dependencies> <!--web起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </depende

2020-05-17 17:21:04 928

原创 开通阿里短信服务

1.开通服务1.1 注册阿里云登录阿里云首页:阿里云然后注册账号并登录1.2开通短信服务在首页的产品中,找到短信服务:首次登入会显示:立即开通,以后会显示管理控制台:可以看到控制台页面:1.3 付费充值(4分一条信息)2.服务准备正式开发发送短信前,还有一系列准备工作要做,主要包括以下几个部分:开通子账户,设置AccessKeyId和AccessKeySecret开通子账户短信权限申请短信签名申请短信模板2.1.开通子账户出于安全考虑,我们不能直接使用主账号开发,因为

2020-05-17 15:28:14 683

原创 JWT使用RSA生成token

加载依赖<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.10.5</version></dependency><dependency> <groupId>io.jsonwebtoken</groupId>

2020-05-16 00:02:23 3639 2

原创 RSA工具类【配JWT+RSA实现授权认证】

import java.io.File;import java.io.IOException;import java.nio.file.Files;import java.security.*;import java.security.spec.InvalidKeySpecException;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import java

2020-05-15 23:49:59 556

原创 RSA非对称加密【配JWT+RSA实现授权认证】

加密技术的类型加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点是加密算法,加密算法可以分为三类:对称加密,如AES基本原理:将明文分成N个组,然后使用密钥对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。优势:算法公开、计算量小、加密速度快、加密效率高缺陷:双方都使用同样密钥,安全性得不到保证非对称加密,如RSA基本原理:同时生成两把密钥:私钥和公钥,私钥隐秘保存,公

2020-05-15 23:42:53 1000

原创 JWT的数据结构【配JWT+RSA实现授权认证】

JWT简介JWT,全称是Json Web Token, 是JSON风格轻量级的授权和身份认证规范,可实现无状态、分布式的Web应用授权;官网:https://jwt.io数据格式JWT包含三部分数据:Header:头部,通常头部有两部分信息:声明类型,这里是JWT签名算法,自定义我们会对头部进行base64编码,得到第一部分数据如图所示:头部是不具备安全性的。Payload:载荷,就是有效数据,一般包含下面信息:用户身份信息(注意,这里因为采用base64加密,可解密,因

2020-05-15 23:36:16 468

原创 NOSQL非关系型数据库之Redis持久化机制(二)

Redis的持久化把客户端和服务端都关闭了,再重新开启服务器和客户端,数据会不会丢失?可以会全部丢失,可能部分丢失Redis有两种数据持久化方法RDB(Redis Database)持久化:也称快照持久化 snap shotting:对全量数据进行备份,默认开启AOF持久化:对增量数据进行备份,默认关闭RDB持久化RDB持久化机制的配置在 redis 的配置文件...

2020-02-23 22:28:37 147

原创 NOSQL非关系型数据库之Redis介绍与数据类型(一)

NOSQL概述什么是NOSQL概念:  NOSQL:Not Only SQL 不仅仅是SQL,通常指的是非关系型的数据库。MySQL和Oracle都是属性关系型数据库。特点关系型数据库非关系型数据库存储介质以文件的方式保存在硬盘中通常只存储在内存中,服务器关闭数据会部分或全部丢失优点数据库可以永久保存存取速度非常快缺点...

2020-02-22 20:31:00 311

空空如也

空空如也

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

TA关注的人

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