分布式专题-9、容器技术-Docker
1. 是什么Docker 是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行 Linux 或 Windows 等系统的服务器上。相较于传统虚拟机,Docker 容器提供轻量化的虚拟化方式、安装便捷、启停速度快。Docker 是基于 Go 语言实现的云开源项目。Docker 的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的 APP(可以是一个 WEB 应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。 2. 运行原理 (解决问题)2.1. 大型项目众多应用组件间依赖和配置不兼容Docker 为了解决依赖的兼容问题的,采用了两个手段: - 将应用的 Libs(函数库)、Deps(依赖)、配置与应用一起打包,形成可移植镜像- 将每个应用放到一个隔离 容器 去运行,使用沙箱机制进行隔离,避免互相干扰 这样打包好的应用包中,既包含应用本身,也保护应用所需要的 Libs、Deps,无 ...
分布式专题-6、服务注册与发现-Nacos
1. 注解原理https://www.cnblogs.com/lm970585581/p/13066729.html 从 Edgware 版本开始,可以不加@EnableDiscoveryClient 注解 2. 注册中心服务注册: 当服务启动通过 Rest 请求的方式向 Nacos Server 注册自己的服务服务心跳:Nacos Client 会维护一个定时心跳持续通知 Nacos Server , 默认 5s 一次,如果 Nacos Server超过了 15 秒没有接收心跳,会将服务健康状态设置 false(拉取的时候会忽略),如果超过了 30 秒没有接收心跳剔除服务。服务发现:Nacos Client 会有一个定时任务,实时去 Nacos Server 拉取健康服务,并缓存在本地一份。如果有变更,Nacos Server 也会主动推送。服务停止:Nacos Client 会主动通过 Rest 请求 Nacos Server 发送一个注销的请求 2.1. 注册流程 2.2. 有拉有推3. 配置中心3.1. 优点集中管理服务的配置、提高维护性、时效性、安全性 3.2. 配置内 ...
经验专题-分布式微服务-1、重构
1. 领域模型内功心法-领域驱动建模-DDD 2. 微服务划分 3. 业务场景 4. 实战经验5. 参考与感谢5.1. 服务拆分1/Users/Enterprise/0003-Architecture/000-微服务/服务拆分 5.2. 黑马程序员 AA面试专题-6、分布式组件 5.3. 慕课https://www.bilibili.com/video/BV1LJ41187ZH?p=56&spm_id_from=pageDriver&vd_source=c5b2d0d7bc377c0c35dbc251d95cf204
性能调优专题-基础-12、GC-三色标记算法
https://www.bilibili.com/video/BV1fi4y1U76z?p=21&vd_source=c5b2d0d7bc377c0c35dbc251d95cf204 https://abcgao.com/archives/%E4%B8%89%E8%89%B2%E6%A0%87%E8%AE%B0%E6%B3%95 1. 概念定位垃圾回收算法主要有有两种,可达性分析算法(追踪式垃圾回收算法) 和 引用计数法( Reference counting )。**三色标记法 与复制、标清、标整一样,也属于追踪式垃圾回收算法**。三色标记法用来帮助完成并发场景下的垃圾标记判断工作。如果不需要并发能力,则没必要使用三色标记算法。三色标记算法解决了标记清除算法不能并发执行的问题 标记 - 整理算法是并行垃圾回收算法,主打高吞吐,不涉及并发。而标记 - 清除算法追求低延迟,所以有并发需求。所以要引入三色标记法来完成并发的目标。CMS 和 G1 都引入了三色标记法。 追踪式算法的核心思想是判断一个对象是否可触达,因为一旦对象不可触达就应该被 GC 回收了。那么如何得知一个对象是否 ...
性能调优专题-基础-11、7大垃圾回收器
1. 默认回收器● 1999 年随 JDK1.3.1 一起来的是串行方式的 serialGc,它是第一款 GC。ParNew 垃圾收集器是 Serial 收集器的多线程版本● 2002 年 2 月 26 日,Parallel GC 和 Concurrent Mark Sweep GC 跟随 JDK1.4.2 一起发布·● Parallel GC 在 JDK6 之后成为 HotSpot 默认 GC。● 2012 年,在 JDK1.7u4 版本中,G1 可用。● 2017 年,JDK9 中 G1 变成默认的垃圾收集器,以替代 CMS。● 2018 年 3 月,JDK10 中 G1 垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。● 2018 年 9 月,JDK11 发布。引入 Epsilon 垃圾回收器,又被称为 “No-Op(无操作)“ 回收器。同时,引入 ZGC:可伸缩的低延迟垃圾回收器(Experimental)● 2019 年 3 月,JDK12 发布。增强 G1,自动返回未用堆内存给操作系统。同时,引入 Shenandoah GC:低停顿时间的 GC(Expe ...
架构实战专题-基础-1、架构演进
实战经验参考与感谢https://cloud.fynote.com/share/d/3035#4-%E5%8E%8B%E6%B5%8B%E5%9B%BE----_69
性能调优专题-JVM监控及调优-1、内存泄露
1. 什么是内存泄露可达性分析算法来判断对象是否是不再使用的对象,本质都是判断一个对象是否还被引用。那么对于这种情况下,由于代码的实现不同就会出现很多种内存泄漏问题 > 是否还被使用?是> 是否还被需要?否 1.1. 内存泄露 (memory leak)%%▶3.🏡⭐️◼️【🌈费曼无敌🌈⭐️♨️♨️♨️⭐️】◼️⭐️-point-20230309-0722%%❕ ^gvkdgy 严格来说,只有对象不会再被程序用到了,但是 GC 又不能回收他们的情况,才叫内存泄漏。但实际情况很多时候一些不太好的实践(或疏忽)会导致对象的生命周期变得很长甚至导致 00M,也可以叫做宽泛意义上的“内存泄漏”。 如下图,当 Y 生命周期结束的时候,X 依然引用着 Y,这时候,垃圾回收期是不会回收对象 Y 的;如果对象 X 还引用着生命周期比较短的 A、B、C,对象 A 又引用着对象 a、b、c,这样就可能造成大量无用的对象不能被回收,进而占据了内存资源,造成内存泄漏,直到内存溢出。 1.2. 内存溢出 2. 内存泄露的 8 种情况%%▶1.🏡⭐️◼️【🌈费曼无敌🌈⭐️第一步⭐️】◼️⭐️-p ...
性能调优专题-JVM监控及诊断工具-1、Arthas
常用功能 常用命令%%▶41.🏡⭐️◼️【🌈费曼无敌🌈⭐️♨️♨️♨️⭐️】◼️⭐️-point-20230310-2242%%❕ ^vdhxtb jad watch trace stack monitor 请求回放 手动请求,抓取请求 tt -i xxxx 实战经验参考与感谢https://www.bilibili.com/video/BV16B4y1V7hv/?spm_id_from=..search-card.all.click&vd_source=c5b2d0d7bc377c0c35dbc251d95cf204
框架源码专题-RabbitMQ-1、基本原理
1. 消息可靠性 1.1. 生产者消息确认 1.1.1. 修改配置首先,修改 publisher 服务中的 application.yml 文件,添加下面的内容: 123456spring: rabbitmq: publisher-confirm-type: correlated publisher-returns: true template: mandatory: true 说明: publish-confirm-type:开启 publisher-confirm,这里支持两种类型: simple:同步等待 confirm 结果,直到超时 correlated:异步回调,定义 ConfirmCallback,MQ 返回结果时会回调这个 ConfirmCallback publish-returns:开启 publish-return 功能,同样是基于 callback 机制,不过是定义 ReturnCallback template.mandatory:定义消息路由失败时的策略。true,则调用 ReturnCallback;false:则 ...
性能调优专题-JVM监控及诊断工具-2、GUI篇
实战经验参考与感谢性能调优专题-基础-4、JVM-堆和GC理论 https://www.yuque.com/u21195183/jvm/nkq31c

