
程序员
文章平均质量分 93
干货很多的大飞
前美团项目高级研发工程师,北京道隆华尔项目负责人
展开
-
Spring Cloud Alibaba(13)---Sleuth概述
Spring Cloud Alibaba(13)—Sleuth概述Sleuth概述前言在微服务架构中,众多的微服务之间互相调用,如何清晰地记录服务的调用链路是一个需要解决的问题。同时,由于各种原因,跨进程的服务调用失败时,运维人员希望能够通过查看日志和查看服务之间的调用关系来定位问题,而Spring cloud sleuth组件正是为了解决微服务跟踪的组件。一、背景1、微服务的现状?随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。在复杂的微服务架构系统中,几原创 2021-06-16 20:21:53 · 491 阅读 · 0 评论 -
Spring boot项目整合阿里巴巴druid数据库连接池
Druid连接池是阿里巴巴开源的数据库连接池项目,后来贡献给Apache开源;Druid的作用是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;Druid连接池内置强大的监控功能,其中的StatFilter功能,能采集非常完备的连接池执行信息,方便进行监控,而监控特性不影响性能。Druid连接池内置了一个监控页面,提供了非常完备的监控信息,可以快速诊断系统的瓶颈。SpringBoot 1.x版本默认使用的的tomcat的jdbc连接池,由于jdbc性原创 2021-06-16 20:21:02 · 1256 阅读 · 0 评论 -
Spring Boot 中这个默认视图名有点意思,看懂直呼内行内行!
在 Spring Boot 项目中,有的时候我们想返回一段 JSON,结果却忘了写@ResponseBody 注解,像下面这样:@Controllerpublic class HelloController { @GetMapping("/01") public void hello() { System.out.println("01"); }}这个时候当项目跑起来,肯定会报错,具体报什么错,则要看用的什么视图解析器,如果用了 Freemarker,你可能原创 2021-06-16 20:20:12 · 397 阅读 · 0 评论 -
Redis源码阅读:key是怎么过期的
Redis源码阅读:key是怎么过期的我们经常用到Redis的expire这个命令,比如我们设置一个缓存,通常会这样用:SETEX mykey 10 "Hello"如官网文档所说,这个命令相当于:SET mykey valueEXPIRE mykey seconds我们直接翻代码求证:{"setex",setexCommand,4, "write use-memory @string", 0,NULL,1,1,1,0,0,0},void setexCommand(cli原创 2021-06-16 20:19:21 · 213 阅读 · 0 评论 -
Redis持久化锦囊在手,再也不会担心数据丢失了
Redis持久化锦囊在手,再也不会担心数据丢失了Redis 的读写都是在内存中进行的,所以它的性能高。而当我们的服务器断开或者重启的时候,数据就会 消失 ,那么我们该怎么解决这个问题呢?其实 Redis 已经为我们提供了一种持久化的机制,分别是 RDB 和 AOF 两种方式,接下来跟着我一起看看这两个锦囊都是怎么保证数据的持久化的。持久化由于 Redis 是基于 内存 的数据库,所以当服务器出现故障的时候,我们的数据就得不到安全保障。这个时候就需要将内存中的数据存储到 磁盘 中,当我们服务器重启时原创 2021-06-16 20:18:33 · 234 阅读 · 0 评论 -
Redis技术专题系列之帮你完全搞定Sentinel运作机制(原理篇)
Redis技术专题系列之帮你完全搞定Sentinel运作机制(原理篇)Sentinel存在的意义Sentinel出现的前提背景在前面Redis技术系列的章节中,我们介绍了相关Redis持久化机制和Redis主从架构的探究。两者的相辅相成实现了Redis的数据高可用性以及 服务的可扩展性和负载性 ,但是只依靠持久化方案和主从复制能力( 负载和数据的荣誉 ),在出现服务宕机的时候, 故障切换无法自动去实现 ,还需要手工,这对人工成本造成了巨大的损失以及不稳定性。持久化+主从复制后的仍存在的痛点当 主服原创 2021-06-16 20:17:43 · 401 阅读 · 0 评论