自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手把手带你了解分布式事务

学 无 止 境 ,与 君 共 勉 。相关系列分布式基础redis实现分布式锁数据库事务对于小型的系统而言,我们只需要单体应用的形式去部署,所有的操作都在一个数据库上,我们只需要使用数据库的事务方式就能满足数据一致性,数据库事务主要有以下特点:特性(ACID):原子性、一致性、隔离性、持久性;问题:脏读、不可重复读、幻读;隔离级别:读未提交、读已提交、可重复读、串行化;...

2020-05-07 14:05:23 318

原创 分布式基础

学 无 止 境 ,与 君 共 勉 。分布式系统的特点可扩展性可以通过增加内存来提高单个机器的性能;可以通过增加机器节点来分担压力,提升系统整体性能;避免单点故障在单体系统中如果某个功能出现异常,有可能会导致整个系统服务不可用。在分布式系统中,部分机器宕机不影响整个系统的运行。无状态服务是无状态的,因为只有服务无状态,才能满足部分机器宕机不影响全部,可以随时进行扩展的需求。...

2020-04-28 16:01:58 181

原创 Spring Cloud — Ribbon 负载均衡

学 无 止 境 ,与 君 共 勉 。版本控制Spring Cloud 基于 Hoxton.RELEASESpring Boot 基于 2.2.5.RELEASE介绍一般来说,为了服务的高可用,在生产环境中,每个微服务通常都会部署多个实例。因此服务消费者需要将请求合理的分摊到多个服务提供者实力上。Spring cloud Ribbon是基于Netflix Ribbon实现的一套客户...

2020-03-16 14:02:33 192

原创 Spring Cloud (1) — Eureka 服务注册

学 无 止 境 ,与 君 共 勉 。版本控制Spring Cloud 基于 Hoxton.RELEASESpring Boot 基于 2.2.5.RELEASE介绍服务发现是微服务体系结构的核心内容之一。Eureka是NetFlix的一个子模块,用于服务的发现和注册,只需要使用服务的标识,就可以访问服务,它遵循分布式事务的AP原则。功能类似Dubbo的注册中心,比如Zookeep...

2020-03-06 16:34:29 199

原创 探索ThreadLocal

学 无 止 境 ,与 君 共 勉 。特点ThreadLocal是一个线程内部的变量,只在本线程中使用,隔离其他线程ThreadLocal内部维护了一个ThreadLocalMapThread内部引用了ThreadLocalMapThreadLocalMap可以保存<k, v>键值对,但是一个ThreadLocal只能保存一个值,并且各个线程数据互不干扰ThreadLo...

2020-02-24 15:06:33 119

原创 Redis修行 — 基数统计:HyperLogLog

学 无 止 境 ,与 君 共 勉 。简介HyperLogLog是Redis中的高级数据结构,它主要用于对海量数据(可以统计2^64个数据)做基数统计(去重统计数量)。它的特点是速度快,占用空间小(12KB)。但是计算存会在误差,标准误差为0.81%。HyperLogLog只会根据输入元素来计算基数,而不会储存输入元素本身,所以他并不能判断给定的元素是否已经存在了。基本指令pfadd(k...

2020-02-01 15:30:20 310

原创 Redis修行 — 位图实战

学 无 止 境 ,与 君 共 勉 。介绍按照官网的说法,Redis位图Bitmaps不是实际的数据类型,而是在字符串类型上定义的一组面向位的操作。在Redis中字符串限制最大为512MB,所以位图中最大可以设置2^32个不同的位(42.9亿个)。图位的最小单位是比特(bit),每个bit的值只能是0或1。位图的存储大小计算: (maxOffset / 8 / 1024 / 1024)M...

2020-01-17 15:41:08 233

原创 SpringBoot 创建自己的 Starter

定制自己的SpringBoot Starter

2020-01-14 21:21:09 1404

原创 Redis修行 — 分布式锁

常见的实现方式基于数据库的分布式锁基于缓存的分布式锁(redis,memcached等)基于ZooKeeper的分布式锁(临时有序节点)本文主要介绍通过Redis自己去实现分布式锁以及使用开源框架Redisson去实现分布式锁,基于数据库和Zookeeper方式简要带过。特性互斥性:只能有一个客户端持有锁防死锁:客户端在持有锁期间崩溃,未能解锁,也有其他方式去解锁,不影响其他客...

2020-01-14 21:08:44 95

原创 SpringBoot 消息推送之 WebSocket 和 SseEmitter

学 无 止 境 , 与 君 共 勉 。用途实时获取服务端的最新数据查看调度任务的进度和执行状态用户感知:修改数据后,相关用户收到信息提升用户体验:耗时业务异步处理(Excel导入导出,复杂计算)前端轮询这种方式实现简单,前端通过setInterval定时去请求接口来获取最新的数据,当实时性要求不高,更新频率低的情况下可以使用这种方式。但是当实时性很高的时候,我们的请求会很频...

2020-01-14 20:55:18 2187

原创 SpringBoot 实现异步事件Event

场景很多时候当我们完成某些业务后需要给用户推送相关消息提醒。对于这种非核心业务功能我们可以拿出来,创建一个事件去异步执行,从而实现核心业务和子业务的解耦。实现定义事件类 Event创建一个类,继承ApplicationEvent,并重写构造函数。ApplicationEvent是Spring提供的所有应用程序事件扩展类。public class NoticeEvent extends A...

2020-01-14 20:48:14 14128

原创 关于JAVA泛型那点事

概述Java 泛型(generics)是 JDK 5 中引入的一个新特性, 在面向对象编程及各种设计模式中有非常广泛的应用。泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是**参数化类型**,也就是说所操作的数据类型被指定为一个参数。注意参数的类型只能是引用类型,不能是原始类型(int, char, double 这种),据说是当初设计师偷懒!!!根...

2019-12-03 11:19:44 133

空空如也

空空如也

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

TA关注的人

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