自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

你今天真好看

不积跬步无以至千里

  • 博客(796)
  • 论坛 (1)
  • 收藏
  • 关注

原创 SpringCloud Alibaba - Seata

文章目录SpringCloud Alibaba - Seata0. 概述1. Seata下载与安装2. 搭建环境3. 新建订单Order-Module模块4. 新建库存Storage-Module模块5. 新建余额Account-Module模块6. Seata测试SpringCloud Alibaba - Seata0. 概述Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式

2020-11-30 17:21:54 36

原创 SpringCloud Alibaba - Sentinel

文章目录SpringCloud Alibaba - Sentinel1. Sentinel环境搭建2. Sentinel流控规则3. Sentinel降级规则3.1 RT(平均响应时间,秒级)3.2 异常比例(秒级)3.3 异常数(分钟级)4. Sentinel热点规则5. Sentinel系统规则6. @SentinelResource注解配置6.1 定义限流处理逻辑6.2 不定义限流处理逻辑6.3 自定义限流处理逻辑6.4 服务熔断(sentinel+ribbon/openfeign)6.4.1 新

2020-11-29 22:01:49 64

原创 SpringCloud Alibaba - Nacos

文章目录SpringCloud Alibaba - Nacos0. 概述1. Nacos替代Eureka作为服务注册中心1.1 基于Nacos的服务提供者9001,90021.2 基于Nacos的服务消费者832. Nacos替代Config作为服务配置中心2.1 Nacos作为配置中心-基础配置2.2 Nacos作为配置中心-分类配置2.2.1 配置不同的DataID2.2.2 配置不同的GroupId2.2.3 配置不同的namespaceSpringCloud Alibaba - Nacos0.

2020-11-27 16:38:01 25

原创 每日leetcode - CodeTop

文章目录leetcode-25. K 个一组翻转链表leetcode-146. LRU 缓存机制leetcode - 15. 三数之和leetcode - 1. 两数之和leetcode - 102. 二叉树的层序遍历leetcode - 94. 二叉树的中序遍历leetcode - 141. 环形链表leetcode - 142. 环形链表 IIleetcode-25. K 个一组翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果

2020-11-26 21:48:58

原创 SpringCloud Netflix - Sleuth链路追踪

Spring Cloud - Sleuth链路追踪0. 概述① sleuth要解决的问题:在微服务框架中,一个客户端的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一个复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最终的失败。SpringCloud Sleuth提供了一套完整的服务追踪的解决方案。② sleuth的配置:下载jar包:https://dl.bintray.com/openzipkin/maven/io/zip

2020-11-26 14:00:27 19

原创 SpringCloud Netflix - Stream消息驱动

文章目录SpringCloud - Stream消息驱动0. 概述1. SpringCloudStream案例1.1 创建provider8801消息生产者1.2 创建consumer8802消息消费者1.3 消息重复消费问题1.4 消息丢失问题SpringCloud - Stream消息驱动0. 概述① 为什么需要SpringCloud Stream:而后端开发使用消息中间件,可能会使用RabbitMq、ActiveMQ、Kafka等,对程序员来说不友好,学的太多。而Spring Cloud St

2020-11-26 13:11:57 35

原创 每日leetcode - CodeTop

文章目录leetcode-215. 数组中的第K个最大元素leetcode-206. 反转链表leetcode-3. 无重复字符的最长子串leetcode-25. K 个一组翻转链表leetcode-146. LRU 缓存机制leetcode-215. 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。方法1:小顶堆class Solution { public int findKthLarges

2020-11-25 22:13:05 21

原创 SpringCloud Netflix - Bus服务总线

文章目录SpringCloud - Bus服务总线0. 概述1. Bus实例1.1 配置RabbitMQ环境1.2 使用Bus实现全局广播1.3 使用bus实现定点通知SpringCloud - Bus服务总线0. 概述① SpringCloud Bus结合SpringCloud Config可以实现配置的动态刷新② Bus的两种广播方式:一是Bus直接通知给其中一个客户端,由这个客户端开始蔓延,传播给其他所有客户端二是通知给配置中心的服务端,有服务端广播给所有客户端③ 什么是总线:在微

2020-11-25 20:07:40 22

原创 SpringCloud Netflix - Config分布式配置中心

文章目录SpringCloud - Config分布式配置中心0. 概述1. 使用github作为配置中心的仓库2. SpringCloud Config服务端33443. SpringCloud Config客户端33554. 实现动态刷新(3355不需要重启服务)SpringCloud - Config分布式配置中心0. 概述① 为什么需要Config:每个微服务都需要一个配置文件,并且如果有几个微服务都需要连接数据库,那么就需要配4次数据库相关配置,并且当数据库发生改动,那么需要同时修改4个

2020-11-25 16:35:51 20

原创 SpringCloud Netflix - Gateway服务网关

文章目录SpringCloud - Gateway服务网关0. 概述1. Gateway 案例1.1 Gateway通过yml配置路由1.2 Gateway 配置动态路由1.3 断言1.4 过滤器SpringCloud - Gateway服务网关0. 概述① Gateway简介:外部请求------》负载均衡(nginx)------》网关(Gateway)-----》微服务Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Zuul 1,在Spring

2020-11-25 12:03:07 39

原创 SpringCloud Netflix - Hystrix服务降级

文章目录SpringCloud - Hystrix服务降级0. 概述1. 服务降级案例1.1 创建pay生产者模块 (8007)1.2 创建order消费者模块 (80)1.3 配置服务降级(提供者和消费者)1.3.1 服务提供者(8007)进行降级保护1.3.2 服务消费者(80)进行降级保护1.3.3 全局服务降级1.4 Hystrix服务熔断1.5 Hystrix服务监控SpringCloud - Hystrix服务降级0. 概述① 分布式系统面临的问题:在复杂的分布式架构系统里,应用程序有

2020-11-24 21:16:08 83

原创 每日leetcode - CodeTop

文章目录leetcode - 215. 数组中的第K个最大元素leetcode - 206. 反转链表leetcode - 3. 无重复字符的最长子串leetcode - 15. 三数之和leetcode - 94. 二叉树的中序遍历leetcode - 144. 二叉树的前序遍历leetcode - 141. 环形链表leetcode - 142. 环形链表 IIleetcode - 199. 二叉树的右视图leetcode - 160. 相交链表leetcode - 92. 反转链表 IIleetcod

2020-11-19 19:57:23 41

原创 每日leetcode - 剑指 offer

文章目录剑指 Offer 03. 数组中重复的数字剑指 Offer 05. 替换空格剑指 Offer 06. 从尾到头打印链表剑指 Offer 07. 重建二叉树剑指 Offer 09. 用两个栈实现队列剑指 Offer 10- I. 斐波那契数列剑指 Offer 10- II. 青蛙跳台阶问题剑指 Offer 11. 旋转数组的最小数字剑指 Offer 15. 二进制中1的个数剑指 Offer 18. 删除链表的节点剑指 Offer 21. 调整数组顺序使奇数位于偶数前面剑指 Offer 22. 链表中倒

2020-11-18 18:54:01 42

原创 每日leetcode - 数组 easy

文章目录88. 合并两个有序数组118. 杨辉三角121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II167. 两数之和 II - 输入有序数组169. 多数元素217. 存在重复元素219. 存在重复元素 II268. 丢失的数字88. 合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空

2020-11-15 22:07:12 25

原创 SpringCloud Netflix - OpenFeign服务调用

文章目录SpringCloud - OpenFeign服务调用0. OpenFeign概述1. OpenFeign服务调用2. OpenFeign超时机制3. OpenFeign日志打印功能SpringCloud - OpenFeign服务调用0. OpenFeign概述在Spring Cloud 中服务之间通过restful方式调用有两种方式 - RestTemplate+Ribbon 和 Feign回想上一个博客我们在使用Eureka 和 Ribbon的时候是怎么调用注册在Eureka Ser

2020-11-15 17:12:18 28

原创 每日leetcode - 数组 easy

文章目录1. 两数之和26. 删除排序数组中的重复项27. 移除元素35. 搜索插入位置53. 最大子序和66. 加一1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。方法1:暴力法,超出时间限制class Solution { public int[] twoSum(int[] nums, int target) { //[2,7,11,15] target=15 for

2020-11-14 22:01:39 34

原创 SpringCloud Netflix - Ribbon服务调用

文章目录SpringCloud - Ribbon负载均衡0. Ribbon概述1. Ribbon的使用2. 替换Ribbon的负载均衡算法3. 手写轮询算法SpringCloud - Ribbon负载均衡0. Ribbon概述① LB负载均衡(Load Balance)是什么?负载均衡的表现就是将用户的请求分摊到多个服务器上,从而达到高可用的目的。常见的负载均衡软件有:Nginx、LVS、硬件F5等。② 目前主流的负载方案分为以下两种:集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式

2020-11-14 19:54:50 34

原创 SpringCloud Netflix - Consul服务注册中心

文章目录SpringCloud - Consul服务注册与发现0. Consul 概述1. Consul 安装2. 服务提供者payment8006注册进consul3. 服务消费者orderconsul80注册进consul4. CAP理论SpringCloud - Consul服务注册与发现0. Consul 概述1 服务发现以及注册:当服务Producer 启动时,会将自己的Ip/host等信息通过发送请求告知 Consul,Consul 接收到 Producer 的注册信息后,每隔一段时间会

2020-11-14 11:20:43 32

原创 SpringCloud Netflix - Eureka服务注册中心

文章目录SpringCloud - Eureka服务注册与发现0. Eureka概述1. 单机版Eureka环境搭建1.1 创建Eureka Server服务注册中心(7001)1.2 将payment8001注册进Euraka Server(7001)成为服务提供方1.3 将order80注册进Euraka Server(7001)成为服务消费方2. 集群版Eureka环境搭建2.1 构建Eureka服务注册中心集群2.2 将payment8001注册到Eureka集群中(7001和7002)2.3 将

2020-11-13 21:55:56 108

原创 SpringCloud Netflix - 服务提供者和服务消费者

SpringCloud - 服务提供者和服务消费者0. 概述服务提供者: 服务的被调用方,为其他服务提供服务的服务服务消费者: 服务的调用方,即依赖其他服务的服务1. 建立父工程建立maven工程,然后将src文件夹删除:更改pom文件:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww

2020-11-13 15:23:45 40

原创 LeetCode刷题记录(数组和双指针)

文章目录数组专题88. 合并两个有序数组90. 子集 II105. 从前序与中序遍历序列构造二叉树106. 从中序与后序遍历序列构造二叉树118. 杨辉三角 (no)119. 杨辉三角 II120. 三角形最小路径和 (no)121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III152. 乘积最大子数组(no)153. 寻找旋转排序数组中的最小值169. 多数元素189. 旋转数组209. 长度最小的子数组216. 组合总和 III0. 有赞笔试217. 存在重复

2020-09-18 08:43:54 63 1

原创 MySQL事务的实现原理

文章目录MySQL事务的实现原理1. redo log 实现持久性2. bin log3. undo log 实现原子性4. MVCC实现隔离性4.1 事务的隔离级别4.2 read view (快照)4.3 隔离级别5. MVCC是如何解决幻读的?6. MySQL InnoDB的锁6.1 共享锁和独占锁6.2 意向锁6.3 三种锁算法MySQL事务的实现原理事务的原子性是通过 undo log 来实现的事务的持久性性是通过 redo log 来实现的事务的隔离性是通过 (读写锁+MVCC)来实现

2020-09-14 10:00:19 293 1

原创 LeetCode刷题记录(百度)

文章目录leetcode-215.数组中的第K个最大元素leetcode-206.反转链表leetcode-142.环形链表IIleetcode-94. 二叉树的中序遍历leetcode-104. 二叉树的最大深度leetcode-102. 二叉树的层序遍历leetcode-69. x 的平方根leetcode-5. 最长回文子串leetcode-62. 不同路径leetcode-53. 最大子序和leetcode-1143. 最长公共子序列leetcode-72. 编辑距离leetcode-300. 最长

2020-09-01 17:20:17 160

原创 动态规化刷题

文章目录[1143. 最长公共子序列][5. 最长回文子串][647. 回文子串][300. 最长上升子序列][72. 编辑距离]Acwing-02-01背包问题[416. 分割等和子集][121. 买卖股票的最佳时机][122. 买卖股票的最佳时机 II][123. 买卖股票的最佳时机 III ][309. 最佳买卖股票时机含冷冻期][714. 买卖股票的最佳时机含手续费]Acwing-03-完全背包问题[322. 零钱兑换][518. 零钱兑换 II][1143. 最长公共子序列]https://l

2020-08-26 18:34:36 96

原创 LeetCode刷题记录(快手)

文章目录leetcode-206-反转链表leetcode-215-数组中的第K个最大元素leetcode-3-无重复字符的最长字串leetcode-92-反转链表leetcode-136-只出现一次的数字leetcode-20-有效的括号leetcode-151-翻转字符串里的单词leetcode-103-二叉树的锯齿形层序遍历leetcode-21. 合并两个有序链表leetcode-88-合并两个有序数组offer-55-二叉树深度(Yes)leetcode-1-两数之和leetcode-15-三数之

2020-08-23 11:22:11 207

原创 快速排序算法

快速排序:1、选取基准数(这里以序列的第一个元素为基准数)。分配 左、右指针(左指针一开始指向序列的最左端,即 left = 0,右指针一开始指向序列的最右端,即 right = nums.Length - 1)2、右指针先往左走,当右指针指向元素比基准数小时,将该元素放到左指针指向的位置(这么做是为了把该数放到基准数的左边)3、右指针把元素放到左指针位置后,左指针开始向右走。当左指针指向元素比基准数大时,把该元素放到右指针的位置。4、填了右边的空缺后,右指针继续向左移动,开始填左边的空缺,填了左边

2020-08-20 15:23:45 68

原创 《计算机网络》--TCP/UDP协议

推荐大家去看这本谢仁希老师的计算机网络,内容讲的很清楚很好,细细的看可以收获很多。文章目录1. 传输层1. 传输层作用2. TCP和UDP协议3. UDP协议的特点4. UDP协议的首部格式5. TCP协议的特点6. TCP可靠传输的原理6.1 停止等待协议6.2 连续ARQ协议7. TCP报文段的首部格式8. TCP可靠传输的实现9. 流量控制10. TCP的拥塞控制11. TCP连接建立12. TCP连接的释放2. 应用层1. 超文本传输协议HTTP2. HTTP的报文结构1. 传输层1. 传输层

2020-08-20 00:08:20 126

原创 《图解HTTP》-- HTTP协议

文章目录图解HTTP1. TCP/IP四层结构和各层功能2. 各协议与HTTP协议的关系3. HTTP请求报文和响应报文格式4. URI和URL5. HTTP方法5.1 常用的HTTP方法5.2 GET和POST的区别6. HTTP 1.0的特点5.1 持久连接5.2 管线化7. HTTP状态码8. HTTPS8.1 HTTP请求存在的问题8.2 HTTPS = HTTP+加密+认证+完整性保护8.2.1 共享秘钥加密(对称秘钥加密)8.2.2 公开秘钥加密(非对称秘钥加密)8.2.3 HTTPS采用共享秘

2020-08-20 00:07:42 159

原创 《MySQL实战45讲》

说明:这个是极客时间丁奇老师的课程,有兴趣的可以看一下,讲的确实不错。文章目录MYSQL实战45讲 -- 基础篇8讲1. 基础架构:一条SQL查询语句是如何执行的?2. 日志系统:一条SQL更新语句是如何执行的?3. 事务隔离:为什么你改了我还看不见?4. 深入浅出索引(上)5. 深入浅出索引(下)6. 全局锁和表锁 :给表加个字段怎么有这么多阻碍?7. 行锁功过:怎么减少行锁对性能的影响?8. 事务到底是隔离的还是不隔离的?MYSQL实战45讲 – 基础篇8讲1. 基础架构:一条SQL查询语句是如何

2020-08-20 00:05:21 178

原创 《操作系统》

文章目录操作系统1. 操作系统的特征2. 中断和异常3. 系统调用4. 进程4.1 进程的基本概念4.2 进程的状态4.3 进程通信4.4 线程4.5 进程调度4.6 进程同步5. 死锁6. 内存6.1 逻辑地址和物理地址6.2 分页存储6.3 分段存储6.4 分页和分段的区别6.5 虚拟内存操作系统1. 操作系统的特征① 并发并发: 指两个或多个事件在同一时间间隔内发生。 这些事件宏观上是同时发生的, 但微观上是交替发生的。常考易混概念——并行: 指两个或多个事件在同一时刻同时发生。单核CP

2020-08-20 00:04:22 164

原创 ConcurrentHashMap底层源码分析

文章目录ConcurrentHashMap底层源码分析1. 成员变量2. 构造方法2.1 不指定初始容量2.2 指定初始容量3. put方法添加节点3.1 spread()方法3.2 initTable()方法3.3 tabAt( )方法3.4 casTabAt( ) 方法4. get 方法ConcurrentHashMap底层源码分析1. 成员变量public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> im

2020-08-19 22:31:26 102

原创 Leetcode刷题记录(50题)

文章目录5. 用两个栈实现队列(栈)14. 链表中倒数第K个节点(快慢指针)29. 最小的K个数(优先队列-大顶堆)38. 二叉树的深度(dfs)39. 平衡二叉树(dfs)63. 数据流的中位数(优先队列-大小顶堆)64. 滑动窗口的最大值(双端队列)===============================================3. 无重复字符的最长字串(双指针)5. 最长回文子串(动态规划)20. 有效的括号(栈)21. 合并两个有序链表92. 反转链表121. 买卖股票的最佳时机I(贪

2020-08-12 09:47:52 162

原创 MySQL 数据库索引数据结构的选择

文章目录1. MySQL 数据库索引的数据结构选择1.1 Hash索引1.2 二叉搜索树 & 平衡二叉树1.3 B 树(多路平衡搜索树)1.4 B + 树2. 聚簇索引和非聚簇索引2.1 利用聚集索引查找数据2.2 利用非聚集索引查找数据3. 主键索引和非主键索引4. MySQl存储引擎1. MySQL 数据库索引的数据结构选择1.1 Hash索引哈希索引就是采用一定的哈希算法,将键值通过hash(key)算法转化为数组的桶下标(比如John Smith转换为152,LisaSmith转化为

2020-08-11 14:45:14 117

原创 Spring 事务失效的场景

文章目录1. 数据库事务1.1 事务的ACID特性1.2 多事务的并发进行造成的问题1.3 MySQL事务的隔离级别1.4 Spring事务的传播特性1.5 Spring事务的失效场景1.5.1 本类中没有事务的方法调用含有事务的方法1.5.2 rollbackFor属性使用错误1.5.3 出现异常后被捕获处理了1. 数据库事务1.1 事务的ACID特性事务的概念:事务是由N步数据库的操作序列组成的逻辑单元,这系列操作要么全部执行,要么全部放弃;① 原子性:事务开始执行,要么全部执行成功,要么全部执

2020-08-11 14:38:25 340

原创 HashMap底层源码分析

文章目录HashMap底层源码解析1. HashMap的基本特性2. HashMap简介3. 成员变量和构造函数3.1 为什么初始化容量必须是2的n次方?3.2 如果数组容量不是2的n次方?4. HashMap的put()方法流程4.1 hash()方法实现4.2 resize()方法实现4.3 treeifyBin()方法实现5. HashMap的get()方法流程HashMap底层源码解析1. HashMap的基本特性HashMap存储键值对实现快速存取,允许为null。key值不可重复,若

2020-08-11 14:03:03 83

原创 利用redis分布式锁解决秒杀场景下的订单超卖问题

文章目录1. 秒杀场景2. Redis分布式锁解决订单超卖2.1 两个命令介绍2.2 RedisLock2.3 将redis分布式锁应用于秒杀业务2.4 分析RedisLock1. 秒杀场景Controller层:@RestController@RequestMapping("/skill")@Slf4jpublic class SecKillController { @Autowired private SecKillService secKillService;

2020-08-05 23:06:23 364 1

原创 微信开放平台:微信扫码登录功能

文章目录微信开放平台:微信扫码登录功能1. 授权流程说明2. 授权流程代码3. 用户登录和登出微信开放平台:微信扫码登录功能官方文档:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html1. 授权流程说明微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(a

2020-08-05 19:33:49 679

原创 微信公众平台:微信网页授权和微信支付

文章目录微信公众平台开发:微信网页授权和微信支付1. 微信网页授权1.1 微信网页授权和微信支付有什么关系?1.2 微信授权流程1.2.1 手工实现微信网页授权1.2.2 利用第三方SDK开发2. 微信支付2.1 微信支付场景2.2 JSAPI支付2.3 微信支付业务流程2.4 代码实现2.4.1 统一下单接口2.4.2 微信内H5调起支付2.4.3 异步通知商户支付结果微信公众平台开发:微信网页授权和微信支付问题1:微信公众平台网页授权和微信开放平台网页授权什么关系?① 微信公众平台微信公众平台是

2020-08-05 19:13:28 291

原创 微信支付与退款

文章目录1. 微信支付1.1 调用统一下单接口--生成预付单1.1.1 配置信息的封装1.1.2 PayService调用统一下单接口1.1.3 PayController1.1.4 测试生成预付单并返回支付参数1.2 统一下单接口---微信内H5调起支付1.3 用户下单到支付总流程1.4 异步通知商户支付结果1.4.1 PayController调用异步通知接口1.4.2 PayServiceImpl1.4.3 解决订单支付状态不正确2. 微信退款1. 微信支付商户系统和微信支付系统主要交互:1、商

2020-08-04 16:09:19 329 1

原创 微信公众号OAuth 2.0 网页授权

文章目录微信公众号OAuth 2.0 网页授权1. 修改授权回调域名2. 网页授权2.1 为什么需要用户网页授权?2.2 引导用户进入授权页面同意授权,获取code2.3 通过code换取网页授权access_token2.4 拉取用户信息(需scope为 snsapi_userinfo)3. 补充用到的工具类微信公众号OAuth 2.0 网页授权微信公众号官方文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Ove

2020-08-03 12:57:33 174

空空如也

茶花女-的留言板

发表于 2020-01-02 最后回复 2020-03-20

空空如也

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

TA关注的人 TA的粉丝

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