随笔分类 -  【阿肥的架构师之路】

摘要:一、Kafka核心总控制器 定义:kafka集群中的一个负责管理所有分区和副本的状态的broker。 PS:kafka单台机器也叫集群。 职能:选举新的leader副本、ISR变更通知所有broker更新其元数据、让新分区被其他节点感知。 当某个分区的leader副本出现故障时,由控制器负责为该分区 阅读全文
posted @ 2021-11-18 19:21 有梦想的肥宅 阅读(630) 评论(0) 推荐(0) 编辑
摘要:一、搭建一个本地伪集群 前面我们学习了搭建单台kafka实例的步骤,现在为了方便,我们直接在本机windows系统上搭建我们的伪集群来方便我们学习,步骤如下: 1、复制3份kafka实例 2、分别修改3个brocker的配置文件【server.properties】内容 PS:要把多个kafka实例 阅读全文
posted @ 2021-10-29 15:31 有梦想的肥宅 阅读(637) 评论(0) 推荐(0) 编辑
摘要:一、消费模式的选择 kafka常见的消费模式有两种: 单播模式:一条消息只能被某一个消费者消费的模式。 多播模式:一条消息能被多个消费者组中的消费者消费的模式。 PS:记录消费偏移量是以组为单位进行的,增删消费者不影响。【会在下面进行说明】 单播模式 定义:一条消息只能被某一个消费者消费的模式,类似 阅读全文
posted @ 2021-10-28 22:48 有梦想的肥宅 阅读(573) 评论(0) 推荐(0) 编辑
摘要:一、前言 了解SpringBoot内嵌Tomcat的启动原理,我这里先整合了一张流程图,我们对着图来看源码的话可能会更清晰。 二、源码查查查~~~ 阅读全文
posted @ 2021-10-26 21:19 有梦想的肥宅 阅读(101) 评论(0) 推荐(0) 编辑
摘要:一、为啥要自定义starter? 痛点:日常开发中一些独立于业务之外的通用模块,如果多个工程需要复用的时候,需要将代码硬拷贝到另一个工程并重新集成一遍,麻烦至极。 解决方案:把这些功能模块封装成自定义的starter,复用的时候只需要将其在pom中引用依赖即可,再由SpringBoot为我们完成自动 阅读全文
posted @ 2021-10-25 21:20 有梦想的肥宅 阅读(243) 评论(0) 推荐(0) 编辑
摘要:一、前言 前面学习了那么多源码理论层面的知识,这篇我们就以HttpEncodingAutoConfiguration实战分析一下自动配置的原理,话不多说,直接上代码和注释。 二、代码解析 HttpEncodingAutoConfiguration /** * HTTP请求编码自动配置类【有梦想的肥宅 阅读全文
posted @ 2021-10-10 17:31 有梦想的肥宅 阅读(300) 评论(0) 推荐(0) 编辑
摘要:一、前言 上一篇分析了源码,看的相当头大,这一篇写一个小结来加深印象吧。由于自动配置原理中用到了很多条件注解,这里也记录一下常用的条件注解,方便速查。 二、条件注解 功能:按照一定的条件进行判断,如果满足条件则给容器注册bean。 分类: @ConditionalOnBean :仅仅在当前上下文中存 阅读全文
posted @ 2021-09-26 13:35 有梦想的肥宅 阅读(93) 评论(0) 推荐(0) 编辑
摘要:一、抛出问题 在学习Spring Boot自动配置原理前,我们先思考以下问题: 1、什么是自动配置? 2、自动配置是如何实现的?都把哪些组件进行了自动配置呢? 这两个问题我们可能需要针对最核心的一些注解源码的解读,才能找到答案,那就开始记录我的学习过程吧~ 由于源码内容很多,就不直接贴代码了,源码部 阅读全文
posted @ 2021-09-25 16:53 有梦想的肥宅 阅读(511) 评论(0) 推荐(0) 编辑
摘要:一、抛出问题 在学习Spring Boot依赖管理前,我们先思考以下问题: 1、为什么导入dependency时不需要指定version版本? 2、spring-boot-dependencies的主要作用是进行版本统一管理,那么项目运行依赖的JAR包是从何而来的? 二、为什么导入dependenc 阅读全文
posted @ 2021-09-18 17:26 有梦想的肥宅 阅读(242) 评论(0) 推荐(0) 编辑
摘要:一、前言 既然要分析源码,那就直接下载源码来本地运行分析,是最有效的方案,但是在开始看这篇博客之前,希望小伙伴们有个心理准备... 源码编译是比较麻烦的一件事,我大概整了一天才基本整好源码环境,期间可能遇到各种奇奇怪怪的问题上网找答案,这里把流程记录一下,需要的小伙伴可以直接跟着步骤走,还是可以顺利 阅读全文
posted @ 2021-09-18 00:01 有梦想的肥宅 阅读(1302) 评论(1) 推荐(1) 编辑
摘要:一、引言 当我们有很多很多微服务时,每个微服务的配置如果都要在工程中维护的话,会非常难受,比如我改一个数据库的地址,就得把所有工程的配置一个一个修改,是不是很麻烦?那根据抽象思想,我们能不能把这些重复的配置抽象出来呢?Nacos配置中心就帮我们实现了这么一个功能。 PS:Nacos很强大,还可以实现 阅读全文
posted @ 2021-09-12 11:58 有梦想的肥宅 阅读(199) 评论(0) 推荐(0) 编辑
摘要:一、引言 小伙伴们应该都有过双11,双12等电商节的抢购经历吧?那么电商节当天的瞬时并发请求是非常非常巨量了,尽管做了很多性能优化及高可用等优化手段,仍然还是无法保证能马上处理所有的请求的,那么如何在高并发场景提供一项功能来对服务进行限流熔断降级呢?像是老牌的Hystrix,以及阿里开源的Senti 阅读全文
posted @ 2021-09-09 18:10 有梦想的肥宅 阅读(499) 评论(0) 推荐(0) 编辑
摘要:一、引言 写这篇之前,也先介绍一下应用背景吧,大家应该或多或少接触过nginx做反向代理吧?Zuul网关其实也是帮我做了这么一层工作,假设我们的项目有几十个微服务,每个微服务你都记录地址的话,难受不?所以我们需要一个统一的入口,也就是网关来给我们做请求分发,那么对外调用我统一经过网关,还可以做一些身 阅读全文
posted @ 2021-09-09 17:04 有梦想的肥宅 阅读(96) 评论(0) 推荐(0) 编辑
摘要:一、引言 什么是Feign Feign远程调用,核心就是通过一系列的封装和处理,以JAVA注解的方式定义的远程调用API接口,最终转换成HTTP的请求形式。然后将HTTP的请求的响应结果,解析成JAVA Bean,返回给调用方,实现远程接口调用。 Feign个人理解实际上是一种对RPC远程过程调用的 阅读全文
posted @ 2021-09-09 11:44 有梦想的肥宅 阅读(264) 评论(0) 推荐(0) 编辑
摘要:一、引言 写这篇文章时心情还是比较激动的,以前用习惯了Dubbo,一直觉得Spring Cloud这一套组件相当的多,学起来有点慌... 随着技术潮流的递进,Spring Cloud生态已经逐渐成为主流的分布式系统解决方案,包括我们最近的项目终于开始用Spring Cloud了,那么学习势在必行,公 阅读全文
posted @ 2021-09-09 11:07 有梦想的肥宅 阅读(89) 评论(0) 推荐(0) 编辑
摘要:一、前言 单台Elasticsearch服务器提供服务,往往都会有性能瓶颈,所以在我们的大型分布式系统中集群肯定必不可少。 单点服务器也存在一些其他问题: 单台机器存储容量有限 单服务器容易出现单点故障,无法实现高可用 单服务的并发处理能力有限 PS:这也是为什么在前面的文章安装单台ES主机的时候, 阅读全文
posted @ 2021-08-31 19:00 有梦想的肥宅 阅读(471) 评论(0) 推荐(0) 编辑
摘要:一、前言 执行命令行操作es的方式有几种,比如使用postman,或者我们前面安装的kibana客户端,或者JavaApi等等,这篇文章重点介绍用kibana来操作我们的索引库。 DSL语句:领域专用语言,由叶子查询子句和复合查询子句两种子句组成。 Elasticsearch提供了基于JSON的DS 阅读全文
posted @ 2021-08-29 11:36 有梦想的肥宅 阅读(3241) 评论(0) 推荐(0) 编辑
摘要:一、前言 ElasticSearch的安装和配置比较麻烦,我自己捣鼓了个把小时各种报错慢慢解决才启动成功,所以如果小伙伴看我的文章来安装的话,请一定跟着我的步骤去配置,不要跳过配置的部分,以防止出现一些莫名其妙的异常导致ElasticSearch启动不成功,共勉~😀 二、安装ElasticSear 阅读全文
posted @ 2021-08-28 10:41 有梦想的肥宅 阅读(208) 评论(0) 推荐(0) 编辑
摘要:一、简单介绍 什么是ElasticSearch? 定义:用Java开发并且是当前最流行的开源的企业级搜索引擎。 优势:实时搜索,稳定,可靠,快速,安装使用方便。 应用场景? 概念对标 什么是全文检索 全文检索是指: 通过程序扫描文本中的每一个单词,针对单词建立索引,并保存该单词在文本中的位置、以及出 阅读全文
posted @ 2021-08-26 18:13 有梦想的肥宅 阅读(153) 评论(0) 推荐(0) 编辑
摘要:一、前言 这里解释一下为什么我要花好几天的时间手写一个SpringMVC的框架并且做一个总结呢?首先我是希望通过这种方式来了解SpringMVC的启动流程大概做了哪些工作,其次这是一个简易版的实现,还会有一些BUG和功能上的不足。我只实现了主线流程,因为看源码主要还是需要掌握其核心流程做了什么,所以 阅读全文
posted @ 2021-08-25 18:16 有梦想的肥宅 阅读(299) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示