自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 问答 (1)
  • 收藏
  • 关注

原创 GIT回滚

命令可以更改当前 HEAD 的位置,并可能更改索引和工作目录。这有几种模式,其中最常见的可能是。命令会创建一个新的提交,这个提交会撤销指定提交的更改。这通常用于公共分支(如。git revert HEAD # 撤销最近的提交。选项时要特别小心,因为它会丢弃索引和工作目录中的更改。# 或者指定一个特定的提交哈希值。),因为它不会重写历史。

2024-06-18 16:33:42 324

原创 微服务面试

1/REST:REST是一种基于HTTP协议的通信方式,它使用HTTP的GET、POST、PUT、DELETE等方法来对资源进行操作。2、RPC:RPC是一种远程调用的通信方式,它允许一个程序在远程计算机上调用另一个程序的服务,就像调用本地服务一样。3、设计思想:REST将应用程序的功能抽象成资源的概念,并通过HTTP方法来操作资源,RPC则隐藏底层通信细节,让远程调用看起来像是本地调用。2、调用方式:REST使用URL和HTTP方法来对资源进行操作,RPC使用方法调用的方式来调用远程服务。

2024-04-18 13:34:56 213

原创 列存储学习

显而易见,两种存储格式都有各自的优缺点:1)行存储的写入是一次性完成,消耗的时间比列存储少,并且能够保证数据的完整性,缺点是数据读取过程中会产生冗余数据,如果只有少量数据,此影响可以忽略;数量大可能会影响到数据的处理效率。2)列存储在写入效率、保证数据完整性上都不如行存储,它的优势是在读取过程,不会产生冗余数据,这对数据完整性要求不高的大数据处理领域,比如互联网,犹为重要。1、数据是按行存储的。2、没有索引的查询使用大量I/O。比如一般的数据库表都会建立索引,通过索引加快查询效率。

2024-04-18 13:34:43 893

原创 日常经典语录

塞私道以穷其志,启一门以致其欲,使民必先行其所要,然后致其所欲,故力多。力多而不用,则志穷;故能生力,不能杀力,曰自攻之国,必削。故曰:王者,国不蓄力,家不积粟。

2024-04-17 10:56:39 114

原创 每日英语2024-04-16

我们的承诺为我们的每一位利益相关者提供了最佳的公司框架。对于我们的合作伙伴来说,我们是通往更美好未来的桥梁。对于客户,我们每一天都在提升,对于农场主,我们保证了将来的所有的咖啡。尽管员工参与度得分最高,自然减员率最低,以及行业领先的福利,但我们知道我们的一些合作伙伴一直不满意。尽管员工参与度得分最高,自然减员率最低,以及行业领先的福利,但我们知道我们的一些合作伙伴一直不满意。在我们门店关闭期间,我们进我们最大的努力去尽可能保证我们伙伴的工资和福利;我们我们活动的结果,直达我们的伟大目标;

2024-04-16 11:59:31 426

原创 你猜这个是干嘛的

public static void main(String[] args) { double today = 900 * 10000d; double percent = 0.00008d; double cost = 2000; int day = 0; while (today > 0) { today = today + today * percent - cost; System.err.println("day:"

2024-03-26 18:07:39 118 1

原创 MAC电脑安装java开发工具

安装 java。

2023-12-29 16:16:03 883

原创 算法题学习

解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。解释:4 不能被 3 整除,所以无法选出数字,返回 0。输入:nums = [3,6,5,1,8]输入:nums = [4]

2023-11-03 14:03:23 152

原创 进程、线程、协程

通过上文的分析,我们已经了解到操作系统通过空间隔离,隔离用户的程序和操作系统的程序,这就使得它们之间互不影响。从而建立操作系统程序的健壮性。但是,这种空间隔离也带来了运行程序额外的开销,即空间切换。进程运行在内核空间就处于内核态,运行在用户空间则属于用户态,任何一个进程,有两个堆栈,在(内核态和用户各有一个堆栈),这就使得用户在发起一个系统调用或者系统中断的时候必须要暂停当前的应用程序,并且保存当前程序的上下文,并且将程序切换到内核堆栈中执行。这个切换的过程,也就是我们所说的性能开销。

2023-10-20 21:13:34 187

原创 设计模式学习

而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。(性能,安全,可靠)

2023-10-12 14:09:19 289

原创 在两个有序数组中找整体第k小的数

给定两个已经排序的数组(假设按照),然后找出第K小的数。比如数组A = {1, 8, 10, 20}, B = {5, 9, 22, 110}, 第 3 小的数是 8.。要求时间复杂度O(logN),空间复杂度O(1)。

2023-10-10 22:05:32 395

原创 JVM的内存模型

内存模型是用来。它定义了JVM在运行Java程序时所需要的各种内存区域,以及每个内存区域的作用和特点。

2023-10-09 18:46:02 667

原创 MPP和hadoop

Hadoop架构是将不同的资源管理与功能进行分层抽象设计,每层形成一类组件,实现一定程度的解耦,包括存储资源管理、计算资源管理、通用并行计算框架、各类分析功能等,在每层内进行跨节点的资源统一管理或功能并行执行,层与层之间通过接口调用,相互透明,节点内不同层的组件间的相互调用需要由控制节点掌握或通过控制节点协调,即控制节点了解每个节点内不同层组件间的互动过程。两类系统运行的硬件架构是相同的,都是普通服务器组成的集群,但从资源管理角度来说,它们并行化软件实现的设计思路却是相反的。

2023-10-09 01:56:06 796

原创 CLICKHOUSE

综合来说,我们希望在头条内部把 ClickHouse 打造成为支持数据中台的查询引擎,3.1、满足交互式行为的需求分析,3.2、能够支持多种数据源,3.3、整个数据链路对业务做到透明。

2023-10-09 00:16:29 294

原创 levelDB引擎

主要受限于磁盘的寻道时间,优化磁盘数据访问的方法是尽量减少磁盘的IO次数。磁盘数据访问效率取决于磁盘IO次数,而磁盘IO次数又取决于数据在磁盘上的组织方式。磁盘数据存储大多采用B+树类型数据结构,这种数据结构针对磁盘数据的存储和访问进行了优化,减少访问数据时磁盘IO次数。

2023-10-02 19:19:29 248

原创 Redis面试题

缓存击穿的概念就是单个key并发访问过高,过期时导致所有请求直接打到db上,这个和热key的问题比较类似,只是说的点在于过期导致请求全部打到DB上而已。解决方案:1、加锁更新,比如请求查询A,发现缓存中没有,对A这个key加锁,同时去数据库查询数据,写入缓存,再返回给用户,这样后面的请求就可以从缓存中拿到数据了。2、将过期时间组合写在value中,通过异步的方式不断的刷新过期时间,防止此类现象。

2023-10-01 23:04:10 410

原创 分布式共识算法

不同于Paxos算法直接从分布式一致性问题出发推导出来,Raft算法则是从多副本状态机的角度提出,用于管理多副本状态机的日志复制。Raft实现了和Paxos相同的功能,它将一致性分解为多个子问题:Leader选举(Leader election)、日志同步(Log replication)、安全性(Safety)、日志压缩(Log compaction)、成员变更(Membership change)等。同时,Raft算法使用了更强的假设来减少了需要考虑的状态,使之变的易于理解和实现。

2023-09-21 11:09:50 348

原创 云原生的简单理解

Docker是应用最为广泛的容器引擎,在思科谷歌等公司的基础设施中大量使用,是基于LXC技术搞的,容器化为微服务提供实施保障,起到应用隔离作用,K8S是容器编排系统,用于容器管理,容器间的负载均衡,谷歌搞的,Docker和K8S都采用Go编写,都是好东西。几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用,微服务有理论基础,那就是康威定律,指导服务怎么切分,很玄乎,凡是能称为理论定律的都简单明白不了,不然就忒没b格,大概意思是组织架构决定产品形态,不知道跟马克思的生产关系影响生产力有无关系。

2023-09-20 16:21:24 1308

原创 微服务引擎

微服务引擎MSE(Microservices Engine)是一个面向业界主流开源微服务生态的一站式微服务平台,提供注册配置中心(原生支持Nacos/ZooKeeper/Eureka)、云原生网关(原生支持Ingress/Envoy)、微服务治理(原生支持Spring Cloud/Dubbo/Sentinel,遵循OpenSergo服务治理规范)的能力。

2023-09-19 21:40:10 374

原创 Docker演变

网上关于Docker的基础知识比较多,但是感觉比较散,也比较杂,且有些重点知识没有突出。本文主要将Docker基础知识重新进行整理,不涉及任何Docker命令、示例和原理部分,因为想让这篇文章更加纯粹一些,通过这篇文章,你应该会对Docker有一个整体的了解,下一篇文章会结合具体的实例,讲解Docker的常用命令。

2023-09-19 20:54:02 70

原创 淘宝高并发分布式架构演进之路

本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程单机架构第一次演进:Tomcat与数据库分开部署第二次演进:引入本地缓存和分布式缓存第三次演进:引入反向代理实现负载均衡第四次演进:数据库读写分离第五次演进:数据库按业务分库第六次演进:把大表拆分为小表第七次演进:使用LVS或F5来使多个Nginx负载均衡第八次演进:通过DNS轮询实现机房间的负载均衡第九次演进:引入NoSQL数据库和搜索引擎等技术第十次演进:大应用拆分为小应用。

2023-09-19 20:18:15 175

原创 配置中心学习

传统的静态配置方式要想修改某个配置只能修改之后重新发布应用,要实现动态性,可以选择使用数据库,通过定时轮询访问数据库来感知配置的变化。轮询频率低感知配置变化的延时就长,轮询频率高,感知配置变化的延时就短,但比较损耗性能,需要在实时性和性能之间做折中。随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,需要引用配置中心治理。

2023-09-19 20:17:53 212

原创 Nacos注册中心

服务发现是指使用一个注册中心来记录分布式系统中的全部服务的信息,以便其他服务能够快速的找到这些已注册的服务。在单体应用中,DNS+Nginx 可以满足服务发现的要求,此时服务的IP列表配置在 nginx 上。在微服务架构中,由于服务粒度变的更细,服务的上下线更加频繁,我们需要一款注册中心来动态感知服务的上下线,并且推送IP列表变化给服务消费者,架构如下图。

2023-09-19 19:45:52 308

原创 RPC框架学习

gRPC是一个高性能、通用的开源RPC框架,其由Google 2015年主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf序列化协议开发,且支持众多开发语言。由于是开源框架,通信的双方可以进行二次开发,所以客户端和服务器端之间的通信会更加专注于业务层面的内容,减少了对由gRPC框架实现的底层通信的关注。如下图,DATA部分即业务层面内容,下面所有的信息都由gRPC进行封装。

2023-09-19 17:41:03 417

原创 微服务面试题

熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败就会启动熔断机制。熔断机制的注解是@HystrixCommand。Hystrix服务降级。

2023-09-12 23:47:36 422

原创 如何实现微服务

原来的Monolithic方式开发,所有的服务都是本地的,UI可以直接调用;现在按功能拆分成独立的服务,跑在独立的虚拟机上的Java进程了。客户端UI如何访问他的?后台有N个服务,前台就需要记住管理N个服务,一个服务下线/更新/升级,前台就要重新部署,这明显不符合我们拆分的理念,特别当前台是移动应用的时候,通常业务变化的节奏更快。另外,N个小服务的调用也是一个不小的网络开销。还有一般微服务在系统内部,通常是无状态的,用户登录信息和权限管理最好有一个统一的地方维护管理(OAuth)。

2023-09-12 22:59:05 517

原创 微服务框架

微服务框架通过组件化的方式提供微服务的开发部署、服务注册发现、服务治理与服务运维等能力。主流的微服务框架有开源的Spring Cloud、Dubbo与Service Mesh等,各大云厂商也基于开源的微服务框架,集成相关的云服务,实现企业级的微服务框架,如阿里云EDAS、腾讯云TSF、华为云CSE等。

2023-09-12 15:38:22 192

原创 面试(数据库的索引结构)

数据库索引是为了方便检索数据;提升查询效率;我们通过数据结构的设计,减少遍历磁盘的次数;不同的索引结构适用于不同的场景。

2023-09-10 23:08:34 317

原创 锁相关学习

乐观锁(Optimistic Locking)和悲观锁(Pessimistic Locking)是在并发编程中常用的两种锁机制,用于解决多线程并发访问共享资源时的数据一致性问题。

2023-09-10 23:00:05 340

原创 面试(类加载器)

类加载器(ClassLoader)是Java虚拟机(JVM)的一部分,用于加载Java类文件到内存中,并生成对应的Class对象。类加载器负责在运行时查找和加载类文件,为Java程序提供动态加载和运行时扩展的功能。

2023-09-10 22:47:30 321

原创 联通面试题

GC的主要作用是自动识别和释放不再使用的对象,回收其所占用的内存,以防止内存泄漏和内存溢出的问题。

2023-09-10 22:32:28 423

原创 Springboot

Spring Boot致力于简化应用程序的配置过程。通过自动配置和约定大于配置的原则,开发人员可以快速配置一个可用的应用程序,并且可以通过简单的配置进行定制。Spring Boot还提供了一种统一的配置方式,可以集中管理应用程序的配置信息。

2023-09-09 14:47:58 236

原创 GOOGLE SRE 运维模式解读

3、事后思考如何让该事件的问题撤底修复,如果不能,SRE是否可以开发一些自动化的工具系统能够代替人工在最短的时间解决问题。4、最终:SRE可以有更多的时间享受生活,而非像传统软件工程师疲于奔命…2、出现问题能够通过事先编制的自动化处置策略,最短时间自愈。1、思考如何让系统能够更健壮地运行。

2023-09-06 20:55:18 178

原创 K8s和Docker

Kubernetes(简称为K8s)和Docker是两个相关但又不同的技术。

2023-09-06 00:36:50 745

原创 DOCKER学习

容器一词的英文是container,其实container还有集装箱的意思,集装箱绝对是商业史上了不起的一项发明,大大降低了海洋贸易运输成本。让我们来看看集装箱的好处:集装箱之间相互隔离长期反复使用快速装载和卸载规格标准,在港口和船上都可以摆放回到软件中的容器,其实容器和集装箱在概念上是很相似的。现代软件开发的一大目的就是隔离,应用程序在运行时相互独立互不干扰,这种隔离实现起来是很不容易的,其中一种解决方案就是上面提到的虚拟机技术,通过将应用程序部署在不同的虚拟机中从而实现隔离。

2023-09-05 23:45:13 602

原创 REDOLOG

一致性和持久性:为了性能,innoDB会将数据缓存在内存中,所以对磁盘数据的修改会落后于内存,这时如果进程或机器崩溃,会导致内存数据丢失;为了保证数据的一致性和持久性,修改Page之前需要先将修改的内容记录到REDO中,并保证REDO LOG早于对应的Page落盘。

2023-09-05 17:36:18 82

原创 垃圾回收算法

标记:一次性清理,优点:简单缺点:存活对象少的时候,效率低,内存的碎片,

2023-09-04 17:45:06 62

原创 分布式锁实现

文章到这里,在分布式锁互斥性上,我们是不是做到完美了?并非如此,还是存在一种情况下业务基于分布式锁服务的访问互斥会被破坏。我们来看下面的例子:如图七所示,客户端在时间点 S0 尝试去抢锁,在时间点 S1 在后端抢锁成功,因此也产生了一个分布式锁的有效期窗口。

2023-09-03 21:17:04 70

原创 进程和线程的区别

第一阶段:计算机只有一个进程,单进程时代、一切都只能串行问题:如果堵塞,CPU极大的浪费第二阶段:多进程的并发时代,一个进程堵塞了,可以执行另外一个进程;充分利用CPU的计算能力第三阶段:多进程、多线程问题:进程拥有太多的资源,进程的创建、切换、销毁,都会占用很长的时间;进程的数量限制2、CPU 虽然利用起来了,但如果进程过多,CPU 有很大的一部分都被用来进行进程调度了。

2023-08-30 16:49:03 80

原创 CLICKHOUSE

的(DBMS:Database Management System),能够使用 SQL 查询实时生成分析数据报告。ClickHouse的全称是Click Stream,Data WareHouse。ClickHouse的全称由两部分组成,第一个是Click Stream点击流,第二个是数据仓库Data Ware Houseclickhouse可以做用户行为分析,流批一体线性扩展和可靠性保障能够原生支持 shard + replication。

2023-08-29 15:02:43 351

空空如也

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

TA关注的人

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