Kaka Blog

追求自我价值的实现

Spring Boot(六):JWT实现用户认证

前言 随着技术的发展,分布式Web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做身份校验。 传统的Session认证 在服务端生成用户相关的 session 数据,而发给客户端 sesssion_id 存放到 cookie 中,这样用客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户认证...

Spring Boot(五):登录认证和权限管理Apache Shiro

前言 我们在编写Web应用时,经常需要对页面做一些安全控制,要实现访问控制的方法多种多样,可以通过AOP、拦截器实现,也可以通过框架实现(如:Apache Shiro、Spring Security),但由于Spring Security过于庞大和复杂,大多数公司会选择Apache Shiro来使用,本文将具体介绍在Spring Boot中如何使用Apache Shiro来进行登录认证和权...

Spring Cloud(九):分布式链路跟踪Sleuth和Zipkin

前言 随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药。于是就有了分布式系统调用跟踪的诞生。 Spring Cloud Sleuth Spring Cloud Sleuth为服务之间调用提供链路追踪。通过Sleut...

Spring Cloud(八):Hystrix熔断器

前言 在微服务架构中,通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用。熔断器的作用就是实现快速失败,熔断器的原理很简单,就像电力过载保护器,当它侦测到错误时,会强制其以后的调用快速失败,不再访问远程服务。同时熔断器也会侦测错误是否已经修正,如果已经修正,应用程序会再次尝试调用远程服务。 Hystrix 断路器机制 断路器很好理解, 当Hystrix ...

你应该知道的volatile关键字

前言 由于 Java 内存模型(JMM)规定,所有的变量都存放在主内存中,而每个线程都有着自己的工作内存(高速缓存)。 线程在工作时,需要将主内存中的数据拷贝到工作内存中。这样对数据的任何操作都是基于工作内存(效率提高),并且不能直接操作主内存以及其他线程工作内存中的数据,之后再将更新之后的数据刷新到主内存中。 所以在并发运行时可能会出现线程 B 所读取到的数据是线程 A 更新之前的数...

Java动态代理:Spring AOP的实现

什么是动态代理 调用Proxy返回一个代理对象,使用这个代理对象执行你的方法时,它会先执行代理对象里的方法再执行你的业务方法。 作用 业务层代码专注业务处理,添加新功能时,如日志,事务等,不影响业务代码。 实践 1、添加一个接口: public interface UserManager { public void add(String username, String ...

人月神话

《人月神话》——Frederick P. Brooks, Jr. (小弗雷德里克·布鲁克斯) 用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。 向进度落后的项目增加人手,只会使进度更加落后。 需要协作沟通的人员数量影响着开发成本。

【计算】HBase查询引擎-Phoenix(十二)

前言 使用HBase已有一段时间,期间发现HBase不支持SQL查询和二级索引,导致业务在使用时无法更好的利用现有的经验来查询HBase。虽然HBase本身不支持SQL,但业界还是有现成的方案来支持,如Hive、Impala、Phoenix等。众多方案各有各的优势,本文主要对Phoenix作一个大概的介绍。 什么是Phoenix Phoenix中文翻译为凤凰, 其最早是Salesfor...

Spring Cloud(七):配置中心和消息总线Spring Cloud Bus

前言 前面讲到通过执行refresh使客户端获得最新的配置信息,当客户端越来越多时,就需要每个客户端都执行一遍,这种方案就不合适。所以使用Spring Cloud Bus来解决这个问题。本节我们讨论使用Spring Cloud Bus实现配置的自动更新。 Spring Cloud Bus Spring Cloud Bus提供了批量刷新配置的机制,它使用轻量级的消息代理(例如Rabbit...

计算机网络

TCP/IP协议族 DHCP协议:局域网动态IP地址划分。 DNS协议:域名解析协议。有递归查询和迭代查询两种查询方式。 网络规划与设计 需求分析 功能需求 通信需求 性能需求 可靠性需求 安全需求 运行与维护需求 管理需求 规划与设计 规划原则: 实用 开放 先进 ...