自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林木森的博客

极致源于热爱

  • 博客(193)
  • 收藏
  • 关注

原创 方法论(二)如何学习一个中间件或者框架

如何学习一个中间件或者框架。

2023-01-24 11:52:06 266

原创 方法论(一):如何快速学习一门编程语言

编程语言是一种工具,是我们与机器对话的一座桥梁,也是我们实现我们业务的核心,不同的编程语言都有自己独自的特色,我们不应该局限于自己的小天地里,我们多学习几种语言,学习其中的思想,这样我们才能有更加宽阔的视野,对编程的才会有更深入的理解。编程语言千万种,学习方法则大同小异,这里我们先列出学习的方法,后续我们会通过这个方法论完成几门语言的学习1.python快速学习(待更新)2.kotlin快速学习(待更新)3.scala快速学习(待更新)4.go语言快速学习(待更新)每种语言都有自己的优势,这也是语言

2022-06-07 19:07:14 266

原创 【质量管理】“从计划到部署:软件开发的全周期质量保证手册

在软件开发中,质量保证(QA)是一个贯穿整个开发生命周期的过程,而不仅仅是在开发结束后的一个阶段。

2024-04-15 22:01:28 696

原创 代码审查:不只是找Bug,更是团队合作的桥梁

​ 每个团队都有自己的代码规范,有自己的基于架构设计的开发规范,然而时间一长,就会发现代码中出现很多不遵 守代码规范的情况,有很多绕过架构设计的代码。对于代码质量来说,很多问题通过测试是测试不出来的,只能通过代码审查。比如说代码的可读性可维护性,比如代码的结构,比如一些特定条件才触发的死循环、逻辑算法错误,还有一些安全上的漏洞也更容易通过代码审查发现和预防。代码审查,就是一个很好的知识共享的方式。通过代码审查,高手可以直接指出新手代码中的问题,新手可以马上从高手的反馈中学习到好的实践,得到更快的成长。

2024-04-15 21:53:35 1099

原创 【HBase】HBase高性能架构:如何保证大规模数据的高可用性

Master 随后将失败的 Region Server 上的数据 Region 分配给其他的 Region Server,从而恢复服务。这些日志文件存储在 HDFS 上,确保了即使在 Region Server 崩溃的情况下,数据也不会丢失,因为可以从 WAL 中重新构造数据。HBase 的高可用性是通过一系列设计和配置策略来实现的,目的是确保即使在面临硬件故障、网络问题或是软件错误时,系统仍能继续提供服务。虽然这不直接影响到系统的实时可用性,但通过定期创建数据的快照和备份可以提高数据的总体安全性。

2024-04-14 19:35:34 553

原创 【HBase】HBase深度解析:特性、实战应用及核心流程全景

HBase 是一个开源的、非关系型的分布式数据库(NoSQL),它建立在 Hadoop 文件系统(HDFS)之上。HBase 旨在存储海量的稀疏数据集,这种数据集通常是由用户界面事件、消息系统、传感器设备等产生的时间序列数据。它是 Google BigTable 的开源实现,由 Apache 软件基金会管理。HBase 能够提供实时读写访问大规模数据集的能力,并能够确保数据的可伸缩性和弹性。

2024-04-14 19:32:17 971

原创 深入理解Doris 的高性能和高可用原理

Doris 和 ClickHouse 都是现代的列式数据库系统,设计用于高速数据分析和实时查询处理。虽然它们在多个方面具有相似的功能,但也存在一些关键的区别,使它们在特定应用场景下的表现各有优势。Doris 的高可用性是通过一系列的设计和机制来实现的,确保即使在硬件故障或网络问题等异常情况下,系统仍能维持正常运行并保证数据的一致性和可访问性。Doris 的高性能特性主要源于其设计原理和实现方式,这些设计使其非常适合处理大规模数据仓库和实时分析任务。

2024-04-12 21:48:30 666

原创 Doris 深度解析:打造高效、可扩展的数据分析平台

Doris” 是一个用于商业智能(BI)的开源MPP(大规模并行处理)数据库系统,原名 Apache Doris,用于构建数据仓库和进行数据分析。它是一个高性能、易扩展的分析数据库解决方案,支持实时查询和多维数据分析。

2024-04-12 21:46:04 1055

原创 深入理解ClickHouse 的高性能与高可用原理

列式存储方式使得 ClickHouse 特别适合执行分析查询,因为它可以仅读取查询所需的列,从而大大减少数据的读取量。ClickHouse 可以在多个节点上并行处理查询,这不仅提高了查询的处理速度,也增加了系统的容错能力。这些设计和优化措施结合起来,使得 ClickHouse 特别适合处理大规模数据集上的复杂分析查询,提供了出色的性能和高效的数据处理能力。在一个集群中,数据可以被复制到多个节点,确保即使在某个节点失败的情况下,数据也不会丢失,并且服务仍然可用。ClickHouse 的。

2024-04-11 22:24:33 1144

原创 ClickHouse入门篇:一文带你学习ClickHouse

ClickHouse 是一个用于联机分析处理(OLAP)的列式数据库管理系统(DBMS)。由于其独特的数据存储和处理架构,ClickHouse 能够提供高速数据插入和实时查询性能。

2024-04-11 22:17:42 795

原创 【大数据篇】Flink全面入门指南

Apache Flink 是一个开源的流处理框架,用于在高吞吐量和低延迟的条件下处理无界和有界数据流。Flink 设计用于运行在所有常见的集群环境,如 Hadoop YARN、Apache Mesos 和 Kubernetes 上,并以“流式计算”为核心思想,同时也支持批处理和流批一体化的数据处理模式。

2024-04-10 22:25:46 717

原创 【大数据篇】Spark转换算子(Transformations)和行动算子(Actions)详解

Apache Spark 提供了大量的算子(操作),这些算子大致可以分为两类:转换算子(Transformations)和行动算子(Actions)。转换算子用于创建一个新的RDD,而行动算子则对RDD进行操作并产生结果。

2024-04-10 22:24:15 949

原创 【大数据篇】一文带你入门Spark

Apache Spark是一个开源的分布式计算系统,被广泛应用于大数据处理和分析领域。由于其出色的性能,易用性和广泛的功能集,Spark已经成为了大数据技术生态系统中的一个关键组成部分。下面我们详细介绍Spark的特点、核心功能、应用场景以及核心组件。

2024-04-09 14:30:00 614

原创 【大数据篇】Spark运行时架构详解

Apache Spark的运行时架构是设计来高效处理大规模数据的。它包含多个组件,每个组件各司其职,共同协作完成数据处理任务。

2024-04-09 14:00:00 374

原创 【云原生篇】深入理解K8S CNI、CRI 和 CSI

在 Kubernetes (K8s) 生态系统中,CNI、CRI 和 CSI 是三个关键的接口,它们分别代表 Container Network Interface、Container Runtime Interface 和 Container Storage Interface。这些接口定义了 Kubernetes 如何与网络、容器运行时和存储系统进行交互,使得 Kubernetes 能够与各种技术栈兼容,增加了其灵活性和可扩展性。

2024-04-08 10:00:00 813

原创 【大数据篇】深入理解Hadoop原理

Hadoop是一个开源框架,由Apache软件基金会维护,用于在大规模数据集上进行分布式存储和分布式处理。它设计用来从单台服务器扩展到数千台机器,每台机器提供局部计算和存储。而且,Hadoop通过检测和处理应用层的故障来提供高可用性。

2024-04-08 10:00:00 571

原创 【云原生篇】深入K8S网络原理

Kubernetes (K8s) 网络解决方案是指在 Kubernetes 集群中实现容器网络通信的各种技术和工具。这些网络解决方案遵循 CNI(Container Network Interface)规范,提供插件以集成不同的网络技术。

2024-04-07 10:00:00 1262

原创 【云原生篇】K8S部署全面指南

对于有特定需求和高度定制化环境的组织,可能需要从头开始手动部署Kubernetes集群。从零开始:通过阅读Kubernetes官方文档,了解各个组件和它们之间的交互,手动在虚拟机或物理机上配置和启动各个组件。这种方式最为复杂,但提供了最高程度的定制性。

2024-04-07 10:00:00 998

原创 【云原生篇】k8s之Service详解

Service 是通过 YAML(或 JSON)文件定义的,其中指定了 Service 的类型、选择器(Selector)、端口等信息。选择器用于确定哪些 Pod 属于这个 Service。

2024-04-06 20:26:18 471

原创 【云原生篇】K8S配置管理之ConfigMap 和 Secret

在 Kubernetes (K8s) 中,ConfigMap 和 Secret 是用于存储配置数据的资源对象,它们允许你将配置与容器镜像分离,从而增加了应用的灵活性和可移植性。这两种资源的主要区别在于它们存储的数据类型和用途:ConfigMap 用于存储非敏感的配置数据,而 Secret 用于存储敏感数据。

2024-04-06 16:00:00 427

原创 【云原生篇】数据持久化之PV和PVC

PV 和 PVC 之间的关系通过提供一个层次化和抽象化的接口来管理存储资源,使得用户可以灵活地请求所需的存储资源,而不必关心底层的存储细节。这种模型提高了 Kubernetes 应用的可移植性和灵活性,允许存储资源按需供给和回收,从而提高资源的利用率和管理效率。

2024-04-06 16:00:00 909

原创 【云原生篇】K8S之Job 和 CronJob

在 Kubernetes (K8s) 中,Job 和 CronJob 是两种管理批处理任务的资源对象,它们用于控制短暂的一次性任务(Job)或定时执行的周期性任务(CronJob)。

2024-04-05 11:05:39 364

原创 【云原生篇】K8S之DaemonSet 详解

Kubernetes 的 DaemonSet 是一种特殊的工作负载控制器,它确保所有(或某些特定的)节点上都运行一个 Pod 的副本。当有新节点加入集群时,DaemonSet 会自动在新节点上添加相应的 Pod,当节点从集群中移除时,这些 Pod 也会被垃圾回收。DaemonSet 通常用于运行集群范围内的关键服务,例如日志收集器、监控代理或其他守护进程。

2024-04-05 11:04:53 719

原创 【云原生篇】K8S之StatefulSet 详解

在 Kubernetes (K8s) 中,StatefulSet 是一种用于管理有状态应用的工作负载 API 对象。与 Deployment 管理无状态应用不同,StatefulSet 为每个 Pod 副本提供了持久性标识符(如名称和网络标识),并且可以保证部署和扩展顺序、以及网络标识和存储的稳定性。

2024-04-04 09:46:39 415

原创 【云原生篇】k8s之Deployment详解

Kubernetes 的 Deployment 是一种管理声明式更新的资源对象,它允许你描述应用的期望状态,并由 Deployment 控制器自动将当前状态改变为期望状态。Deployment 主要用于无状态应用的部署和扩展,但也可以用于有状态应用。

2024-04-04 09:45:15 1564

原创 【云原生篇】Kubernetes 入门指南,开启云原生之旅

Kubernetes(K8s)是一个开源系统,用于自动化部署、扩展和管理容器化应用程序。它起源于Google的内部容器编排系统Borg,现在由Cloud Native Computing Foundation(CNCF)维护。

2024-04-03 10:00:00 660

原创 【云原生篇】微服务革命:解锁Istio与Service Mesh

Service Mesh是一种用于处理服务间通信的基础设施层,它以轻量级的网络代理的形式实现,这些代理与应用程序的微服务一同部署。Service Mesh的核心目的是将网络通信的复杂性从应用程序代码中抽象出来,从而使开发人员可以专注于业务逻辑的开发,而不是通信的细节和问题。Istio 是一个开源的Service Mesh框架,它提供了一种连接、管理和保护微服务的方式。Istio通过提供一系列网络功能来增强微服务的可观测性、控制和安全性,而无需改动微服务本身的代码。

2024-04-03 09:30:00 668

原创 【云原生篇】一文带你了解云原生

云原生(Cloud Native)是一种构建和运行应用程序的方法,它充分利用了云计算的弹性、可扩展性和敏捷性。云原生技术鼓励使用容器、服务网格、微服务、不可变基础设施和声明式API这些技术,以便在现代动态环境中(如公有云、私有云和混合云)高效地构建和运行可扩展的应用程序。云原生的核心是使开发者能够快速构建应用,并且能够在任何环境中无缝部署和运行这些应用,从而实现真正的云端可移植性和灵活性。这不仅包括应用的开发和部署,还包括整个应用生命周期管理过程,如监控、维护和更新。

2024-04-02 09:45:00 701 1

原创 【分布式核心技术篇】从零到极限:揭秘全链路压测的全过程

全链路压测是指在真实的业务场景下,模拟用户真实请求,对整个系统或业务流程进行的一种压力测试。这种测试可以覆盖整个系统的各个环节,包括前端应用、后端服务、数据库、中间件、网络等,目的是发现系统在高负载情况下的瓶颈和潜在问题。全链路压测有助于确保系统在面临高并发、大流量等极端情况时的稳定性和可靠性。

2024-04-02 09:30:00 772

原创 【云原生篇】掌握 Docker:从基础到性能优化的全面指南

Docker 是一个开放源代码的容器化技术,允许开发者将应用及其运行环境打包在一个轻量级、可移植的容器中。这个容器可以在任何支持 Docker 的系统上运行,确保应用在不同环境间的一致性和可移植性。Docker 使用 Linux 容器(LXC)的技术,但提供了更高级的抽象和自动化,使容器的创建、部署和管理更加简单高效。

2024-04-01 12:30:42 848

原创 【微服务篇】从零开始构建DevOps体系

DevOps是一种组合了“Development(开发)”和“Operations(运维)”的术语,它不仅是一套流程和方法,更是一种文化和哲学。DevOps旨在通过自动化软件开发和信息技术操作,以及增强这两个领域之间的协作和通信,来提高软件交付的速度和质量。其核心目标是缩短系统开发生命周期,同时提供高质量的软件和更频繁的版本更新。

2024-04-01 12:25:57 709

原创 【架构篇】看完这篇,不要再说你不会性能调优了

系统调优是一个复杂且多方面的任务,主要目标是提高系统的性能和效率。它可以针对不同的层面和组件进行,包括硬件、操作系统、网络、软件应用程序等。系统调优遵循一系列基本原则,这些原则有助于确保调优过程既高效又有效。

2024-03-31 14:47:18 732

原创 【架构篇】代码重构,避免代码腐化的艺术

避免代码腐化是软件开发中的一个重要方面,特别是在长期项目和大型团队中。代码腐化指的是代码随着时间的推移逐渐变得难以理解、难以维护和扩展。系统代码重构是一个复杂的过程,旨在改善现有代码的结构和可读性,同时不改变其外部行为。这个过程可以提高代码的维护性、可扩展性和性能。

2024-03-31 14:46:08 551

原创 【微服务篇】深入理解RPC(远程调用)原理

RPC是一种通信机制,它使得在网络中的不同计算机之间可以像本地调用一样简单地进行函数或过程调用。RPC隐藏了底层的网络通信细节,使得开发者可以专注于业务逻辑,而不是处理网络通信的复杂性。RPC框架通常负责打包调用的参数,通过网络传输,然后在远端解包参数,执行函数调用,再将结果返回给调用方。定义:选择或设计一种接口定义语言(IDL)来精确描述服务接口。IDL定义了服务中的方法、参数和返回类型。跨语言支持:确保IDL支持多种编程语言,以便不同语言编写的服务可以相互通信。版本控制和兼容性。

2024-03-30 16:54:06 2008

原创 【微服务篇】深入理解分布式消息队列系统

分布式消息队列是一种在多个服务器、应用或服务之间进行消息传递的技术。它使得各个独立的组件可以通过异步消息进行通信,提高了系统的可扩展性、解耦性和可靠性。

2024-03-30 16:53:15 1065

原创 【微服务篇】深入理解微服务可观测性原理(Log,Metric,Trace)

可观测性通过收集各种性能指标(如响应时间、吞吐量、资源利用率等)提供了实时的系统状态视图,帮助开发者监控服务性能,及时发现和解决潜在的性能问题。可观测性通过分布式追踪和服务依赖图提供了请求在服务间流转的可视化表示,帮助开发者理解服务间的依赖关系和交互模式,优化服务调用链路。通过分析服务的性能指标和用户请求的追踪数据,可观测性不仅能够帮助优化系统性能,还能够提供关于用户行为和业务流程的洞察,支持业务决策和用户体验改进。通过分析日志和追踪数据,可以及时发现潜在的安全威胁和漏洞,确保系统的安全性和合规性。

2024-03-28 22:37:43 1196

原创 【微服务篇】分布式事务方案以及原理详解

分布式事务是指事务参与者、资源服务器、事务管理器分布在不同的分布式系统的多个节点之上的事务。在微服务架构、大型分布式系统和云计算等环境中,由于系统间调用和资源访问的复杂性,分布式事务变得尤为重要。

2024-03-28 22:27:10 1179

原创 【微服务篇】深入理解资源隔离,限流,熔断原理(Hystrix、Resilience4j和Sentinel)

Hystrix:重点在于服务隔离和熔断,提供全面的容错机制,但在限流方面不是特别强大。由于Netflix已经不再积极维护Hystrix,其使用趋于下降。:作为Hystrix的一种替代,使用更现代的Java函数式编程风格,专注于轻量级的容错处理,提供了更灵活的限流和熔断配置。Sentinel:特别适合流量控制和动态规则调整,强大的限流和灵活的熔断策略使其在高流量的应用场景中表现出色。它支持丰富的限流规则和控制台集成,方便在运行时动态调整策略。

2024-03-27 20:59:26 930 1

原创 【微服务篇】深入理解微服务网关原理以及Spring Gateway

Spring Cloud Gateway 是基于 Spring Framework 5、Project Reactor 和 Spring Boot 2 构建的,旨在提供一种简单而有效的方式来路由 API 请求到微服务。它是Spring生态系统中的一个API网关框架,利用非阻塞API和异步编程模型,为微服务架构提供了一个强大的网关。微服务网关在微服务架构中扮演着至关重要的角色,它主要负责请求的路由、组成服务间的通信桥梁、聚合不同服务的数据以及提供跨服务的统一认证机制。

2024-03-27 20:42:43 1286

原创 【微服务篇】深入理解微服务注册中心与配置中心

设计一个注册中心时,需要关注多个关键方面,以确保其稳定性、可靠性、性能和可扩展性。设计一个配置中心时,需要考虑确保配置管理的可靠性、灵活性、安全性和可用性。

2024-03-26 22:17:20 1169

空空如也

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

TA关注的人

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