上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 19 下一页
摘要: 一、HashMap HashMap 是线程不安全的。 JDK 1.7 HashMap 采用数组 + 链表的数据结构,多线程背景下,在数组扩容的时候,存在 Entry 链死循环和数据丢失问题。 JDK 1.8 HashMap 采用数组 + 链表 + 红黑二叉树的数据结构,优化了 1.7 中数组扩容的方 阅读全文
posted @ 2019-08-28 21:34 JMCui 阅读(11714) 评论(1) 推荐(3)
摘要: 前言:《不止代码》是阿里首部技术经验精选集,涵盖了许多技术大牛对职业发展的看法,文笔简洁大方,通俗易懂,刚看前两章我就被深深吸引住了,是本值得推荐的书籍,适合碎片化时间阅读。书籍只有一百来页,却不建议一口气读完,最好读完每一章能有自己的思考感悟,再往下读。 Do more :做的更多,做的比你主管安 阅读全文
posted @ 2019-08-23 18:43 JMCui 阅读(464) 评论(0) 推荐(0)
摘要: 一、简介 所谓异步调用其实就是实现一个无需等待被调用函数的返回值而让操作继续运行的方法。在 Java 语言中,简单的讲就是另启一个线程来完成调用中的部分计算,使调用继续运行或返回,而不需要等待计算结果。但调用者仍需要取线程的计算结果。 JDK5新增了 Future 接口,用于描述一个异步计算的结果。 阅读全文
posted @ 2019-08-14 10:33 JMCui 阅读(2606) 评论(0) 推荐(2)
摘要: 一、简介 Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。 Spring Cloud Stream 为一些供应商的消息中间件产品(目前集成了 RabbitMQ 和 Kafka)提供了个性化的自动化配置实现,并且引入了发布/订阅、消费组以及消息分区这三个核心概念。 阅读全文
posted @ 2019-08-08 08:39 JMCui 阅读(1263) 评论(0) 推荐(3)
摘要: 一、概念 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理。 常用的限流算法有三种:计数器法、漏桶算法和令牌桶算法: 计数器法是限流算法中最简单的一种算法,我们维护一个时间窗口比如 100s,设定阈值 10 阅读全文
posted @ 2019-08-01 13:13 JMCui 阅读(2347) 评论(0) 推荐(1)
摘要: 一、Gateway 和 Zuul 的区别 Zuul 基于servlet 2.5 (works with 3.x),使用阻塞API。它不支持任何长期的连接,如websocket。 Gateway建立在Spring Framework 5,Project Reactor 和Spring Boot 2 上 阅读全文
posted @ 2019-07-28 22:24 JMCui 阅读(2295) 评论(0) 推荐(1)
摘要: 一、简介 Spring Cloud Confg 是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的 阅读全文
posted @ 2019-07-26 22:38 JMCui 阅读(1854) 评论(0) 推荐(0)
摘要: 一、概述 API 网关是一个更为智能的应用服务器,它的定义类似于面向对象设计模式中的 Facade 模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤。它除了要实现请求路由、负载均衡、校验过滤等功能之外,还需要更多能力,比如与服务治理框架的结合、请求转 阅读全文
posted @ 2019-07-21 09:30 JMCui 阅读(2031) 评论(0) 推荐(0)
摘要: 一、概述 前面的文章中提到,如果我们要调用其它应用的服务,只能够通过 RestTemplate 的方式,这在我们实际的开发中很不方便。那么有没有类似于 Dubbo 中 @Reference 这样的注解直接调用呢?这就是我们今天要讲的 Spring Cloud Feign。 Spring Cloud 阅读全文
posted @ 2019-07-20 22:36 JMCui 阅读(2166) 评论(0) 推荐(1)
摘要: 一、概述 在微服务架构中,我们将系统拆分成了很多服务单元,各单元的应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身间题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不 阅读全文
posted @ 2019-07-15 08:56 JMCui 阅读(1486) 评论(0) 推荐(1)
摘要: 缓存锁 我们常常将缓存作为分布式锁的解决方案,但是却不能单纯的判断某个 key 是否存在 来作为锁的获得依据,因为无论是 exists 和 get 命名都不是线程安全的,都无法保证只有一个线程可以获得锁,存在线程争抢,可能会有多个线程同时拿到锁的情况(经典的 Redis “读后写”的问题)。 inc 阅读全文
posted @ 2019-07-14 22:38 JMCui 阅读(1181) 评论(0) 推荐(2)
摘要: 一、微服务概述 1. 什么是微服务 简单地说, 微服务是系统架构上的一种设计风格, 它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间基于 RPC 进行通信协作。 被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建, 并且每 阅读全文
posted @ 2019-06-27 22:45 JMCui 阅读(1135) 评论(0) 推荐(0)
摘要: 一、Spring 中观察者模式的四个角色 1. 事件(ApplicationEvent) ApplicationEvent 是所有事件对象的父类。ApplicationEvent 继承自 jdk 的 EventObject, 所有的事件都需要继承 ApplicationEvent, 并且通过 sou 阅读全文
posted @ 2019-06-20 20:02 JMCui 阅读(10505) 评论(2) 推荐(1)
摘要: 一、概述 开始阅读这篇文章之前,建议先阅读下 "《SpringBoot 之Actuator》" ,该篇文章提到 Spring Boot Actuator 提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生命周期。但是 阅读全文
posted @ 2019-06-15 08:55 JMCui 阅读(2234) 评论(0) 推荐(2)
摘要: 一、概述 登陆和认证是什么?都是在鉴别用户的身份。如何鉴定识别出这是哪个用户?或者说,有什么方式只有用户自己知道(够安全),又能说出这是他自己?于是就有了"用户名+密码"、"用户名+手机号" 的方式出现。下面主要分析 “用户名+密码”的登陆鉴权方式: 出于安全考虑,我们不可能在所有的请求里都使用“用 阅读全文
posted @ 2019-06-05 12:39 JMCui 阅读(6370) 评论(5) 推荐(8)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 19 下一页