自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码上代码的博客

微信搜索【码上代码】亿级流量分布式系统源码及教程,更有1000道互联网架构师面试题,30本技术书籍pdf和一线大厂简历模板等你

  • 博客(45)
  • 资源 (3)
  • 收藏
  • 关注

原创 微服务架构诞生的今世前生

史上最详细微服务介绍,不可错过。。。

2020-12-20 20:48:40 9340 27

原创 五分钟学会 Spring Cloud Sleuth:分布式请求链路跟踪(小白必看,一看就会教程)

Spring Cloud Sleuth:分布式请求链路跟踪Spring Cloud Sleuth 简介给服务添加请求链路跟踪整合Zipkin获取及分析日志使用Elasticsearch存储跟踪信息安装Elasticsearch修改启动参数将信息存储到Elasticsearch更多启动参数参考福利Spring Cloud Sleuth 是分布式系统中跟踪服务间调用的工具,它可以直观地展示出一次请求的调用过程,本文将对其用法进行详细介绍。Spring Cloud Sleuth 简介随着

2020-12-14 10:50:12 18084 16

原创 五分钟学会 Spring Cloud Zuul:API网关服务(小白必看,一看就会教程)

Spring Cloud Zuul:API网关服务Zuul简介常用功能启动相关服务配置路由规则默认路由规则负载均衡功能配置访问前缀Header过滤及重定向添加Host查看路由信息过滤器过滤器类型过滤器的生命周期自定义过滤器核心过滤器禁用过滤器Ribbon和Hystrix的支持常用配置Spring Cloud Zuul 是Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的API网关使用,支持动态路由与过滤功能,本文将对其用法进行详细介

2020-12-12 09:13:32 2832 27

原创 一文带你搞懂java8新特性,熟记于心

java8Java 8 Tutorial接口的默认方法(Default Methods for Interfaces)Lambda表达式(Lambda expressions)函数式接口(Functional Interfaces)方法和构造函数引用(Method and Constructor References)Lamda 表达式作用域(Lambda Scopes)访问局部变量访问字段和静态变量访问默认接口方法内置函数式接口(Built-in Functional Interfa

2020-12-10 11:26:04 8555 10

原创 springboot如何实现自动装配bean源码赏析

大家好,我是码弟

2020-12-04 10:55:11 18165 22

原创 SpringBoot 启动方法run()源码赏析

入口通常一个简单的SpringBoot基础项目我们会有如下代码@SpringBootApplication@RestController@RequestMapping("/")public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}值得关注的有SpringApplication.run以及注解@Spri

2020-12-02 21:12:06 24369 12

原创 五分钟让你的SQL查询速度飞起来

查询性能优化使用 Explain 进行分析Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句。比较重要的字段有:select_type : 查询类型,有简单查询、联合查询、子查询等key : 使用的索引rows : 扫描的行数优化数据访问减少请求的数据量只返回必要的列:最好不要使用 SELECT * 语句。只返回必要的行:使用 LIMIT 语句来限制返回的数据。缓存重复查询的数据:使用缓存可以避免在数据库中进行查询,特别在要

2020-12-31 13:27:54 597 1

原创 Mysql索引原理详解

Mysql索引原理详解B+ Tree 原理](#b-tree-原理)MySQL 索引索引优化索引的优点[索引的使用条件]B+ Tree 原理B Tree 指的是 Balance Tree,也就是平衡树。平衡树是一颗查找树,并且所有叶子节点位于同一层。B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具有 B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。在 B+ Tree 中,一个节点中的 key 从左到右非递减排列,如果某个指针的左右相邻 key

2020-12-30 13:41:09 452 1

原创 SpringCloud Hystrix进阶应用(三)

SpringCloud Hystrix源码解析(三)看这篇之前请看SpringCloud Hystrix源码解析(一)SpringCloud Hystrix源码解析(二)异步与异步回调执行命令Hystrix 除了同步执行命令,还可以异步以及异步回调执行命令。异步执行命令需要定义函数的返回方式为Future ,如下面的例子所示:@HystrixCommand(fallbackMethod =”instanceinfoGetFailAsync ” )public Future<Instanc

2020-12-30 10:29:15 10511 7

原创 hystrix与sentinel的区别以及选型对比

hystrix具有的功能线程池隔离/信号量隔离 Sentinel 不支持线程池隔离;信号量隔离对应 Sentinel 中的线程数限流。熔断器 Sentinel 支持按平均响应时间、异常比率、异常数来进行熔断降级。Command 创建 直接使用 Sentinel SphU API 定义资源即可,资源定义与规则配置分离。规则配置 在 Sentinel 中可通过 API 硬编码配置规则,也支持多种动态规则源注解支持 Sentinel 也提供注解支持开源框架支持 Sentinel 提供 Servlet.

2020-12-29 16:51:42 1550 1

原创 Java CompletableFuture 详解

Java CompletableFuture 详解Java 8 强大的函数式异步编程辅助类目录 [−]主动完成计算创建CompletableFuture对象。计算结果完成时的处理转换纯消费(执行Action)组合Either辅助方法 allOf 和 anyOf更进一步Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行。publi

2020-12-29 13:35:45 1299 2

原创 SpringCloud Hystrix源码解析(二)

SpringCloud Hystrix源码解析看这篇之前请看SpringCloud Hystrix源码解析(一)异步执行命令和同步执行命令了解了HystrixObservable 中的两个关键接口在AbstractCommand 中的实现后, 接下来我们需要到HystrixCommand 中了解execute 同步执行命令和queue 异步执行命令的相关实现。HystrixCommand#queue代码如下所示:public Future <R> queue ( ) {final

2020-12-29 10:44:36 585 5

原创 SpringCloud Hystrix源码解析(一)

SpringCloud Hystrix源码解析看本篇之前请看五分钟学会 Spring Cloud Hystrix:服务容错保护(小白必看,一看就会系列教程)使用Hystrix 后的远程调用流程如下:1 )构建HystrixCommand 或者Hys trixObservableCommand 对象。2 )执行命令。3 )检查是否有相同命令执行的缓存。4 )检查断路器是否打开。5 )检查线程池或者信号量是否被消耗完。6 )调用Hystri xOb servabl eCommand#const

2020-12-28 10:35:19 1172 7

原创 五分钟学会 Spring Cloud Sleuth:分布式请求链路跟踪(小白必看,一看就会教程...

SpringBoot 2.0以上版本已经不需要自行搭建zipkin-server,我们可以从该地址下载zipkin-server:https://repo1.maven.org/maven2/io/zipkin/java/zipkin-server/2.12.9/zipkin-server-2.12.9-exec.jar下载完成后使用以下命令运行zipkin-server:java -j...

2020-12-26 11:30:11 24

转载 什么是Service Mesh(服务网格)

Service Mesh 又译作 “服务网格”,作为服务间通信的基础设施层。Buoyant 公司的 CEO Willian Morgan 在他的这篇文章 WHAT’S A Service Mesh? AND WHY DO I NEED ONE? 中解释了什么是 Service Mesh,为什么云原生应用需要 Service Mesh。下面是 Willian Morgan 对 Service Mesh 的解释。A Service Mesh is a dedicated infrastructure lay

2020-12-25 11:34:56 905 2

原创 SpringCloud OpenFeign 源码解析

SpringCloud OpenFeign 源码解析核心组件与概念动态注册BeanDefiniation实例初始化函数调用和网络请求阅读OpenFeign 源码时,可以沿着两条路线进行, 一是FeignServiceClient 这样的被@FeignClient注解修饰的接口类(后续简称为F eignClient 接口类)如何创建, 也就是其Bean 实例是如何被创建的;二是调用FeignServiceClient 对象的网络请求相关的函数时,OpenFeign 是如何发送网络请求的。而

2020-12-25 09:53:16 2402 13

原创 SpringCloud Eureka 进阶应用

SpringCloud Eureka 进阶应用Eureka Instance 和Client 的元数据状态页和健康检查页端口设置区域与可用区高可用性服务注册中心总结看这篇之前请看:五分钟学会 Spring Cloud Eureka:服务注册与发现(小白必看,一看就会教程)SpringCloud Eureka Client 源码解析SpringCloud Eureka Server 源码解析Eureka Instance 和Client 的元数据在EurekalnstanceConf

2020-12-24 15:03:25 731 3

原创 Elasticsearch如何是如何实现分布式增删改查,一文搞懂

分布式文档存储路由文档到分片主分片和复制分片如何交互新建、索引和删除文档检索文档局部更新文档多文档模式福利路由文档到分片当你索引一个文档,它被存储在单独一个主分片上。Elasticsearch是如何知道文档属于哪个分片的呢?当你创建一个新文档,它是如何知道是应该存储在分片1还是分片2上的呢?进程不能是随机的,因为我们将来要检索文档。事实上,它根据一个简单的算法决定:shard = hash(routing) % number_of_primary_shardsrouting 值是

2020-12-23 16:24:43 10769 1

原创 SpringCloud Eureka Server 源码解析

SpringCloud Eureka Server 源码解析Eureka Server 作为一个开箱即用的服务注册中心,提供了以下的功能,用以满足与Eureka Client 交互的需求:服务注册接受服务心跳服务剔除服务下线集群同步获取注册表中服务实例信息需要注意的是, Eureka Server 同时也是一个Eureka C l ient ,在不禁止Eureka Server 的客户端行为时,它会向它配置文件中的其他Eureka Server 进行拉取注册表、服务注册和发送心跳等操作。

2020-12-23 13:33:56 7918

原创 SpringCloud Eureka Client 源码解析

Eureka Client 源码解析读取应用自身配置信息服务发现客户端拉取注册表信息服务注册初始化定时任务服务下线看本篇之前请先看五分钟学会 Spring Cloud Eureka:服务注册与发现(小白必看,一看就会教程)Eureka Client 为了简化开发人员的开发工作,将很多与Eureka Server 交互的工作隐藏起来,自主完成为了跟踪Eureka 的运行机制,读者可以通过打开Spring Boot 的Debug 模式来查看更多的输出日志, 如下所示:loggi

2020-12-21 14:10:39 2705 2

原创 微服务架构诞生的今世前生大揭秘

微服务架构介绍微服务架构出现微服务架构流派云原生与微服务总结福利 近年来,微服务架构一直是互联网技术圈的热点之一,越来越多的互联网应用都采用了微服务架构作为系统构建的基础,很多新技术和理念如 Docker 、Kubernetes 、DevOps 、持续交付、Service Mesh 等也都在关注、支持和跟随微服务架构的发展 。 本章将会概要性地介绍微服务架构:包...

2020-12-20 21:37:34 22

原创 五分钟学会 Spring Cloud Bus:消息总线(小白必看,一看就会教程)

Spring Cloud Bus:消息总线Spring Cloud Bus使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如配置中心配置更改)或其他管理指令,本文将对其用法进行详细介绍。Spring Cloud Bus 简介我们通常会使用消息代理来构建一个主题,然后把微服务架构中的所有服务都连接到这个主题上去,当我们向该主题发送消息时,所有订阅该主题的服务都会收到消息并进行消费。使用 Spring Cloud Bus 可以方便地构建起这套机制,所以 Spring C

2020-12-19 09:57:10 1681 3

原创 一文讲懂Elasticsearch概念和使用方法

Java APIElasticsearch为Java用户提供了两种内置客户端:节点客户端(node client):节点客户端以无数据节点(none data node)身份加入集群,换言之,它自己不存储任何数据,但是它知道数据在集群中的具体位置,并且能够直接转发请求到对应的节点上。传输客户端(Transport client):这个更轻量的传输客户端能够发送请求到远程集群。它自己不加入集群,只是简单转发请求给集群中的节点。两个Java客户端都通过9300端口与集群交互,使用Elasticsea

2020-12-18 16:35:42 5928 3

原创 五分钟学会 Spring Cloud Alibaba:Sentinel实现熔断与限流(小白必看,一看就会教程)

Spring Cloud Alibaba:Sentinel实现熔断与限流Sentinel简介限流功能根据资源名称限流根据URL限流自定义限流处理逻辑熔断功能与Feign结合使用使用Nacos存储规则福利Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Sentinel作为其核心组件之一,具有熔断与限流等一系列服务保护功能,本文将对其用法进行详细介绍。Sentinel简介随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel

2020-12-18 13:32:58 1503

转载 微服务架构技术选型推荐

微服务架构技术选型推荐本文介绍一下微服务架构常用技术组件选型!开发语言JAVA主流编程语言,适合构建大型后台服务GolangGo语言是谷歌2009发布的第二款开源编程语言。专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。Google对Go寄予厚望。其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。目前作为云计算领域的不二之选!开发工具IntelliJ IDEAjetbrains公司旗下

2020-12-17 10:55:45 950 4

原创 五分钟学会 Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用(小白必看,一看就会教程)

Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用Nacos简介负载均衡功能使用Nacos作为配置中心在Nacos中添加配置Nacos的动态刷新配置文末福利Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Nacos作为其核心组件之一,可以作为注册中心和配置中心使用,本文将对其用法进行详细介绍。Nacos简介Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现

2020-12-17 10:05:49 1087 1

原创 五分钟学会 Spring Boot Admin:微服务应用监控(小白必看,一看就会教程)

Spring Boot Admin:微服务应用监控Spring Boot Admin 简介监控信息演示结合注册中心使用功能演示添加登录认证文末福利Spring Boot Admin可以对SpringBoot应用的各项指标进行监控,可以作为微服务架构中的监控中心来使用,本文将对其用法进行详细介绍。Spring Boot Admin 简介SpringBoot应用可以通过Actuator来暴露应用运行过程中的各项指标,Spring Boot Admin通过这些指标来监控SpringBo

2020-12-16 09:23:33 2414 4

原创 五分钟明白Elasticsearch是如何实现分布式搜索

分布式搜索的执行方式查询阶段取回阶段搜索阶段扫描和滚屏粉丝福利在继续之前,我们将绕道讲一下搜索是如何在分布式环境中执行的。 它比我们之前讲的基础的增删改查(create-read-update-delete ,CRUD)请求要复杂一些。一个CRUD操作只处理一个单独的文档。文档的唯一性由 _index , _type 和 routingvalue(通常默认是该文档的 _id )的组合来确定。这意味着我们可以准确知道集群中的哪个分片持有这个文档。由于不知道哪个文档会匹配查询(文档可能存放在

2020-12-15 16:13:23 7917 1

原创 五分钟学会 Spring Cloud Consul:服务治理与配置中心(小白必看,你看就会教程)

Spring Cloud Consul:服务治理与配置中心Consul 简介使用Consul作为注册中心安装并运行Consul创建应用注册到Consul负载均衡功能使用Consul作为配置中心在Consul中添加配置Consul的动态刷新配置福利Spring Cloud Consul 为 SpringBoot 应用提供了 Consul的支持,Consul既可以作为注册中心使用,也可以作为配置中心使用,本文将对其用法进行详细介绍。Consul 简介Consul是HashiCorp公

2020-12-15 10:18:32 942 2

原创 五分钟带你入门 Elasticsearch,为了搜索,你懂的

为了搜索,你懂的文末有福利…Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目

2020-12-14 14:45:11 1473 4

原创 五分钟学会 Spring Cloud Config:外部集中化配置管理

大家好,我是码弟,Spring Cloud Config:外部集中化配置管理

2020-12-13 20:27:50 10473 1

原创 Elasticsearch集群内部工作方式原理详解

Elasticsearch集群内部工作方式原理详解空集群集群健康添加索引故障转移横向扩展更多扩展应对故障空集群如果我们启动一个单独的节点,它还没有数据和索引,这个集群看起来就像图1一个节点(node)就是一个Elasticsearch实例,而一个集群(cluster)由一个或多个节点组成,它们具有相同的 cluster.name ,它们协同工作,分享数据和负载。当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据。集群中一个节点会被选举为主节点(master),它将临时管理集

2020-12-11 14:12:26 3594 2

原创 HotSpot虚拟机对象探秘,让你new出最优秀的对象

HotSpot虚拟机对象探秘,让你new出最优秀的对象1.对象的创建2.对象的内存布局3.对象的访问4.总结介绍完Java虚拟机的运行时数据区之后,我们大致知道了虚拟机内存的概况,读者了解了内存中放了些什么后,也许就会想更进一步了解这些虚拟机内存中的数据的其他细节,譬如它们是如何创建、如何布局以及如何访问的。对于这样涉及细节的问题,必须把讨论范围限定在具体的虚拟机和集中在某一个内存区域上才有意义。基于实用优先的原则,笔者以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨Hot

2020-12-11 09:52:07 344 2

转载 被弃用的 Docker 会被 Podman 取代吗?

Kubernetes 团队近日宣布将在最新版本中弃用 Docker 支持的功能,后续版本会陆续删除这些功能。近日,Kubernetes 团队发布了最新的 1.20 版本,新版本更新了许多内容:存储卷快照功能趋于稳定;Kubectl Debug 进入 Beta;Beta:API 优先级和公平性;IPV4/IPV6 Alpha 功能更新;GA:限制进程 PID;Dockershim 弃用;Exec 探针超时处理等等(详情可查看:https://kubernetes.io/blog/2020/12/08/ku

2020-12-10 20:58:16 521 1

原创 五分钟学会 Spring Cloud Hystrix:服务容错保护(小白必看,一看就会系列教程)

Spring Cloud Hystrix:服务容错保护Hystrix 简介@HystrixCommand详解@HystrixCommand中的常用参数设置命令、分组及线程池名称使用ignoreExceptions忽略某些异常降级Hystrix的请求缓存请求合并@HystrixCollapser的常用属性Hystrix的常用配置全局配置实例配置Spring Cloud Hystrix 是Spring Cloud Netflix 子项目的核心组件之一,具有服务容错及线程隔离等一系列服

2020-12-10 13:53:53 883 1

原创 一条sql在mysql中是怎么执行的,一文给你整的明明白白

一 MySQL 基础架构分析1.1 MySQL 基本架构概览1.2 Server 层基本组件介绍连接器查询缓存(MySQL 8.0 版本后移除)分析器优化器执行器二 语句分析2.1 查询语句2.2 更新语句三 总结四 参考本篇文章会分析下一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成已经这些组件的作用是什么

2020-12-09 20:59:46 14278 1

原创 面试官再问你,mysql索引什么时候失效,你偷偷的笑了

索引失效原因总结复合索引使用左前缀建立了一个索引分别字段为 a b cwhere a … and b … order by c,这种使用顺序就符合最佳做前缀,从左向右依次使用了索引where b … and a … order by c,这样很明显顺序不对,并不满足最佳左前缀,从而导致了索引失效复合索引尽量使用全索引匹配建立了一个复合索引 a b c,在查询的时候,尽量把这些索引字段都用上不要在索引上进行任何操作(计算(+,-,*,/)、函数、(自动或手动)类型转换)如果你在索引上进行任

2020-12-09 11:10:17 30586 11

原创 面试官问:为什么Redis单线程架构还那么快

1 单线程模型Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返回结果三个过程。其中执行命令阶段,由于Redis是单线程来处理命令的,所有每一条到达服务端的命令不会立刻执行,所有的命令都会进入一个队列中,然后逐个被执行。并且多个客户端发送的命令的执行顺序是不确定的。但是可以确定的是不会有两条命令被同时执行,不会产生并发问题,这就是Redis的单线程基本模型。2 单线程模型每秒万级别处理能力的原因(1)纯内存访问。数据存放在内存中,内存的响应时间大约是100纳秒,这是Redis每秒万亿级别

2020-12-09 09:31:15 10139 2

原创 redis的回收策略,你懂了吗

redis的回收策略 使用Redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2) 支持丰富数据类型,支持string,list,set,sorted set,hash(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除redis相比memcac...

2020-12-08 16:50:01 327

原创 五分钟学会 Spring Cloud Ribbon:负载均衡的服务调用(小白必看,一看就会教程)

Spring Cloud Ribbon 是Spring Cloud Netflix 子项目的核心组件之一,主要给服务间调用及API网关转发提供负载均衡的功能,本文将对其用法进行详细介绍。Ribbon简介在微服务架构中,很多服务都会部署多个,其他服务去调用该服务的时候,如何保证负载均衡是个不得不去考虑的问题。负载均衡可以增加系统的可用性和扩展性,当我们使用RestTemplate来调用其他服务时,Ribbon可以很方便的实现负载均衡功能。RestTemplate的使用RestTemplate是一个HT

2020-12-08 13:54:25 2523 4

JVM垃圾回收,为大家整理了JVM原理以及各种调优策略

JVM垃圾回收,为大家整理了JVM原理以及各种调优策略

2022-02-23

javaweb项目实战.docx

2019年互联网企业在Java开发中有哪些主流、热门的IT技术呢,下面让我们来看一下 微服务架构主要有:Spring Cloud、 Dubbo、 Dubbox等,以 Dubbo占比最高,可达26%

2020-12-03

2019年java技术大盘点.docx

2019年java技术大盘点:2019年互联网企业在Java开发中有哪些主流、热门的IT技术呢,下面让我们来看一下。

2020-05-19

空空如也

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

TA关注的人

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