摘要: SpringCloud OAuth2实现单点登录以及OAuth2源码原理解析 意识流丶关注 42019.05.22 14:39:50字数 2,594阅读 9,647 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中, 阅读全文
posted @ 2020-01-08 14:32 Mr_ChenZheng 阅读(3725) 评论(0) 推荐(0) 编辑
摘要: 数据是怎样分布在多个Redis实例上的 分区是将你的数据分布在多个Redis实例上,以至于每个实例只包含一部分数据。 为什么分区是有用的呢 Redis分区有两个主要目标: 它允许更大的数据库,用许多计算机的内存总和。如果不进行分区,你将会受限于单台计算机的内存。 它允许将计算能力扩展到多核和多台计算 阅读全文
posted @ 2020-01-08 14:24 Mr_ChenZheng 阅读(479) 评论(0) 推荐(2) 编辑
摘要: Redis提供了不同的持久化选项: RDB持久化,数据集的时间点快照 AOF持久化,服务器收到的每一个写操作 可以同时使用AOF和RDB。在这种情况下,当Redis重启的以后,AOF将用于重新构建原始数据集,因为它保证是最完整的数据。 RDB的优点: RDB是数据的时间点快照。对于备份而言,RDB文 阅读全文
posted @ 2020-01-08 14:21 Mr_ChenZheng 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 如何合理地估算线程池大小? 这个问题虽然看起来很小,却并不那么容易回答。大家如果有更好的方法欢迎赐教,先来一个天真的估算方法:假设要求一个系统的TPS(Transaction Per Second或者Task Per Second)至少为20,然后假设每个Transaction由一个线程完成,继续假 阅读全文
posted @ 2020-01-08 14:15 Mr_ChenZheng 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 秒杀的场景有很多,比如:抢购、抢票、抢红包等等。总之,就是在极短时间内有大量的请求。 我们都知道,这种系统设计的大方向就是限流,即通过层层过滤,最终只让相对较少的请求进入到核心业务处理层。 这里不谈秒杀设计,不谈使用队列等使请求串行化,就谈下怎么用锁来保证数据正确,就是已经到减库存那一步了,在这一步 阅读全文
posted @ 2020-01-08 14:13 Mr_ChenZheng 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 前言 众所周知,导Excel分为两步: 抓取数据(查数据) 写数据到Excel文件 这两步都比较耗时间,一般我们从数据库查数据,然后组装数据,最后写数据。 查数据不是本节的重点,主要是SQL,索引这一块,此处不讨论。本节重点是写数据。 问题 当数据量小(比如,几千几万条)的时候可以采用同步的方式,不 阅读全文
posted @ 2020-01-08 14:12 Mr_ChenZheng 阅读(1080) 评论(0) 推荐(0) 编辑
摘要: 电商促销后台逻辑 电商所谓营销,归根结底都是订单金额的变化;如果我们清楚的知道订单金额的计算流程是怎样的,那么我们只需要顺着系统的计算流程做促销,就不用担心各种促销类型之间产生重叠或者冲突的情况了。当我们知道这个关系后,就可以将营销活动区分为三种类型:改商品价格、改商品小计价格、改订单价格,因为无论 阅读全文
posted @ 2020-01-08 14:10 Mr_ChenZheng 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 1. Java虚拟机运行时数据区 在JDK1.8之前,JVM运行时数据区分为堆、虚拟机栈、本地方法栈、方法区、程序计数器。如下图所示: 虚拟机栈:线程私有,随线程创建而创建。栈里面是一个一个“栈帧”,每个栈帧对应一次方法调用。栈帧中存放了局部变量表(基本数据类型变量和对象引用)、操作数栈、方法出口等 阅读全文
posted @ 2020-01-08 14:04 Mr_ChenZheng 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 1. 概念理解 1.1. 并行(Parallel)与并发(Concurrent) 并行:指多个垃圾收集线程并行工作,但此时用户线程仍然处于等待状态 并发:指用户线程与垃圾收集线程同时执行 1.2. Minor GC 与 Major GC Minor GC:指发生在新生代的垃圾收集动作,因为Java对 阅读全文
posted @ 2020-01-08 14:03 Mr_ChenZheng 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 参考Spring Cloud官方文档第12章12.3、12.5、12.6小节 12.3 High Availability, Zones and Regions 默认情况下,每一个Eureka服务器同时也是一个Eureka客户端,并且至少需要一个和它对等的服务URL。如果你没有提供这样的对等的服务, 阅读全文
posted @ 2020-01-08 13:59 Mr_ChenZheng 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 参考Spring Cloud官方文档第4~10章 官网文档中所有示例中的配置都在git上 https://github.com/spring-cloud-samples/config-repo Part II. Spring Cloud Config 4. Quick Start 查找属性资源的位置 阅读全文
posted @ 2020-01-08 13:57 Mr_ChenZheng 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 参考Spring Cloud官方文档第19章 19. Router and Filter: Zuul 路由是微服务架构的一部分。例如,"/"可能映射到你的web应用,"/api/users"可能映射到你的user服务,"/api/shop"可能映射到你的shop服务。Zuul是一个基于JVM的路由器 阅读全文
posted @ 2020-01-08 13:55 Mr_ChenZheng 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 参考Spring Cloud官方文档第13、14、15章 13. Circuit Breaker: Hystrix Clients Netflix提供了一个叫Hystrix的类库,它实现了断路器模式。在微服务架构中,通常一个微服务会调用多个其他的微服务。一个相对低层级的服务失败可能造成上层应用的级联 阅读全文
posted @ 2020-01-08 13:53 Mr_ChenZheng 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 参考SpringCloud官网第16、17章 16. Client Side Load Balancer: Ribbon Ribbon是一个客户端的负载均衡器,它提供对大量的HTTP和TCP客户端的访问控制。Feign也是用的Ribbon,所以在这一章你也可以用@FeignClient Ribbon 阅读全文
posted @ 2020-01-08 13:49 Mr_ChenZheng 阅读(120) 评论(0) 推荐(0) 编辑
摘要: Spring Cloud Spring Cloud为开发者快速构建通用的分布式系统(例如:配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性的Token、全局锁、领导者选举、分布式会话、集群状态)提供工具。 这里用的是最新版本Edgware 操作步骤 1、新建一个工程作为Eureka S 阅读全文
posted @ 2020-01-08 13:48 Mr_ChenZheng 阅读(119) 评论(0) 推荐(0) 编辑
摘要: SpringCloud学习笔记(6)——Eureka高可用 参考Spring Cloud官方文档第12章12.3、12.5、12.6小节 12.3 High Availability, Zones and Regions 默认情况下,每一个Eureka服务器同时也是一个Eureka客户端,并且至少需 阅读全文
posted @ 2020-01-08 13:46 Mr_ChenZheng 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 1. Eureka是什么 Eureka是一个基于REST的服务,主要用于AWS云中的定位服务,以实现中间层服务器的负载平衡和故障转移 在 Spring Cloud 微服务架构中通常用作注册中心 我们称这个服务为 Eureka Server,还有一个与之交互的客户端称之为 Eureka Client 阅读全文
posted @ 2020-01-08 11:54 Mr_ChenZheng 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 1. 为什么是Spring Cloud Gateway 一句话,Spring Cloud已经放弃Netflix Zuul了。现在Spring Cloud中引用的还是Zuul 1.x版本,而这个版本是基于过滤器的,是阻塞IO,不支持长连接。Zuul 2.x版本跟1.x的架构大一样,性能也有所提升。既然 阅读全文
posted @ 2020-01-08 11:48 Mr_ChenZheng 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 1、背景介绍 开发过程中,后台的参数校验是必不可少的,所以经常会看到类似下面这样的代码 这样写并没有什么错,还挺工整的,只是看起来不是很优雅而已。 接下来,用Validation来改写这段 2、Spring Boot文档中的Validation 在Spring Boot的官网中,关于Validati 阅读全文
posted @ 2020-01-08 11:44 Mr_ChenZheng 阅读(1012) 评论(0) 推荐(0) 编辑
摘要: 1、创建集群 http://kafka.apache.org/documentation/#quickstart 有一句我觉得特别重要: For Kafka, a single broker is just a cluster of size one. 1.1、命令行操作 #解压文件 tar -zx 阅读全文
posted @ 2020-01-08 11:40 Mr_ChenZheng 阅读(169) 评论(0) 推荐(0) 编辑