JAVA
JAVA实战
俞大仙_♂
精通 Ctrl +C 和 Ctrl + V(佛系编程)
展开
-
Spring Cloud — Ribbon 负载均衡
学 无 止 境 ,与 君 共 勉 。版本控制Spring Cloud 基于 Hoxton.RELEASESpring Boot 基于 2.2.5.RELEASE介绍一般来说,为了服务的高可用,在生产环境中,每个微服务通常都会部署多个实例。因此服务消费者需要将请求合理的分摊到多个服务提供者实力上。Spring cloud Ribbon是基于Netflix Ribbon实现的一套客户...原创 2020-03-16 14:02:33 · 214 阅读 · 0 评论 -
Spring Cloud (1) — Eureka 服务注册
学 无 止 境 ,与 君 共 勉 。版本控制Spring Cloud 基于 Hoxton.RELEASESpring Boot 基于 2.2.5.RELEASE介绍服务发现是微服务体系结构的核心内容之一。Eureka是NetFlix的一个子模块,用于服务的发现和注册,只需要使用服务的标识,就可以访问服务,它遵循分布式事务的AP原则。功能类似Dubbo的注册中心,比如Zookeep...原创 2020-03-06 16:34:29 · 222 阅读 · 0 评论 -
探索ThreadLocal
学 无 止 境 ,与 君 共 勉 。特点ThreadLocal是一个线程内部的变量,只在本线程中使用,隔离其他线程ThreadLocal内部维护了一个ThreadLocalMapThread内部引用了ThreadLocalMapThreadLocalMap可以保存<k, v>键值对,但是一个ThreadLocal只能保存一个值,并且各个线程数据互不干扰ThreadLo...原创 2020-02-24 15:06:33 · 129 阅读 · 0 评论 -
Redis修行 — 位图实战
学 无 止 境 ,与 君 共 勉 。介绍按照官网的说法,Redis位图Bitmaps不是实际的数据类型,而是在字符串类型上定义的一组面向位的操作。在Redis中字符串限制最大为512MB,所以位图中最大可以设置2^32个不同的位(42.9亿个)。图位的最小单位是比特(bit),每个bit的值只能是0或1。位图的存储大小计算: (maxOffset / 8 / 1024 / 1024)M...原创 2020-01-17 15:41:08 · 250 阅读 · 0 评论 -
SpringBoot 创建自己的 Starter
定制自己的SpringBoot Starter原创 2020-01-14 21:21:09 · 1428 阅读 · 0 评论 -
Redis修行 — 分布式锁
常见的实现方式基于数据库的分布式锁基于缓存的分布式锁(redis,memcached等)基于ZooKeeper的分布式锁(临时有序节点)本文主要介绍通过Redis自己去实现分布式锁以及使用开源框架Redisson去实现分布式锁,基于数据库和Zookeeper方式简要带过。特性互斥性:只能有一个客户端持有锁防死锁:客户端在持有锁期间崩溃,未能解锁,也有其他方式去解锁,不影响其他客...原创 2020-01-14 21:08:44 · 109 阅读 · 0 评论 -
SpringBoot 消息推送之 WebSocket 和 SseEmitter
学 无 止 境 , 与 君 共 勉 。用途实时获取服务端的最新数据查看调度任务的进度和执行状态用户感知:修改数据后,相关用户收到信息提升用户体验:耗时业务异步处理(Excel导入导出,复杂计算)前端轮询这种方式实现简单,前端通过setInterval定时去请求接口来获取最新的数据,当实时性要求不高,更新频率低的情况下可以使用这种方式。但是当实时性很高的时候,我们的请求会很频...原创 2020-01-14 20:55:18 · 2274 阅读 · 0 评论 -
SpringBoot 实现异步事件Event
场景很多时候当我们完成某些业务后需要给用户推送相关消息提醒。对于这种非核心业务功能我们可以拿出来,创建一个事件去异步执行,从而实现核心业务和子业务的解耦。实现定义事件类 Event创建一个类,继承ApplicationEvent,并重写构造函数。ApplicationEvent是Spring提供的所有应用程序事件扩展类。public class NoticeEvent extends A...原创 2020-01-14 20:48:14 · 14300 阅读 · 0 评论 -
关于JAVA泛型那点事
概述Java 泛型(generics)是 JDK 5 中引入的一个新特性, 在面向对象编程及各种设计模式中有非常广泛的应用。泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是**参数化类型**,也就是说所操作的数据类型被指定为一个参数。注意参数的类型只能是引用类型,不能是原始类型(int, char, double 这种),据说是当初设计师偷懒!!!根...原创 2019-12-03 11:19:44 · 146 阅读 · 0 评论