自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (4)
  • 收藏
  • 关注

原创 zookeeper QuorumPeer 生命周期

main 启动读取配置文件启动 zk 集群服务(quorumPeer 对象)准备选举(此后,zk 服务进入状态机)启动 quorumPeer 对象,进入选举状态机投票选举进入角色阻塞在当前状态…

2023-09-05 19:39:36 331

原创 java 中指令重排序的笔记

当CPU执行到屏障指令时,会暂停当前的执行流程,等待内存操作完成(本质是 cpu 上的加锁,比如总线索这种,这也就保证了 volatile 的可见性),此外会下令禁止指令的重排序,然后再继续执行。对于一些非热点代码,如单例构造器等,由于其执行频率较低,JVM通常会采用解释执行的方式来运行,这样就不需要考虑重排序问题。总之,了解热点代码重排序的原理对于编写高效且正确的Java程序非常重要,我们需要合理地使用volatile关键字来避免重排序问题的出现,并对程序的运行情况进行监控和优化。

2023-03-31 16:33:04 308

原创 服务cpu使用飙高排查相关操作

服务cpu使用飙高排查相关操作

2023-02-01 00:10:01 1251

原创 记踩 redis RESP 协议的一次坑

RESP协议的换行符是什么?

2023-01-20 21:21:13 289

原创 为什么源码中喜欢额外声明一个局部变量来使用?

为什么源码中喜欢额外声明一个局部变量来使用

2022-07-02 12:19:34 492

原创 记一次中间件内存泄露问题排查

压测性能不稳定排查

2022-06-29 00:41:40 1284

原创 服务治理的大概内容

一、序言 1.为什么要微服务拆分 单体架构下: 可扩展性受限 服务和模块的可重用性低 故障隔离范围低 运维复杂度高 没有服务治理 微服务化之后,这些问题都可以解决。 2.为什么要服务治理 服务治理是对于服务的管理,以保证: 1.避免微服务场景下潜在问题发生 服务限流、熔断,都可以避免服务端的瘫痪或者潜在的雪崩风险 2.实现服务的方式是最佳实践 比如服务路由,流量分配 二、服务治理的具体内容 1.服务配置 (1)服务路由 服务路由是通过配置一定的

2021-07-13 10:38:53 5476

原创 服务治理的三种服务保护方法:熔断、限流、降级。

最近在看陈皓的一些课,感触很深,这里大概记录一下心得。 一、熔断 熔断的目的 个人理解,熔断大多来源于:有限时间内过多的重试。之所以重试这么多次,可能是服务端或者请求方本身出现了问题。而引入熔断之后,可能避免过多无意义的失败请求。若服务方出现问题,请求方被熔断,从而使得请求方不会继续盲目调用。若请求方本身出现问题,也可以让请求方直接失败,避免自身无意义的等待或阻塞。 熔断器的状态 熔断器可以使用状态机来实现。 闭合(Closed)状态:关闭熔断。我们需要一个调用失败的计数器,如果

2021-07-06 15:07:09 1850

原创 docker快速安装

今天自己配置maven私服的时候,用的是nexus来弄,直接安装挺麻烦的,就打算直接用docker来搞,然后发现自己的虚拟机里面没装docker,这里整理一下docker的快速安装。 # 查询机器上已安装的docker yum list installed | grep docker # 把查到的全部卸载 yum remove -y xxxx xxxx xxxx # 删除原有的docker数据 rm -rf /var/lib/docker # 也可以直接 yum remove docker-ce # 最

2021-07-04 11:08:20 166

原创 BASE和CAP理论

一、CAP 1.CAP简介 C:(强)一致性 同一时间所有节点的数据都一致 A:可用性 任何时候所有节点都可以提供服务,并在正常时间内响应 P:分区容错性 某些节点出错后,不影响整体提供服务。(分布式架构下,认定P总是成立) 2.CAP理论 CAP三者不可同时共存,只能以CP、AP、CA的形式满足要求。在分布式场景下,默认P是成立的,所以一般情况下,架构满足的是CP、AP。 3.分布式场景下C和A的矛盾 在分布式场景下,若要保证C,那么一个节点在更新数据dataX后,立马广..

2021-02-22 14:38:57 506 4

原创 java迭代器操作hasNext()、next()、remove()

2021-01-27 10:05:24 674

原创 关于【同步异步】和【阻塞非阻塞】的思考

同步异步着眼于,二者的协同工作时的状态,是否必须互相依赖,一个没立刻完成,另一个就必须等待。 阻塞非阻塞着眼于,二者协同工作时,其中一者本身发生等待的状态。 同步:一项任务A的完成,必须依赖于另一项任务B。在B没有完成之前,任务A无法完成。 A可能会等待任务B完成的过程中,啥也不干,干等着(阻塞);也可以做点别的事情,抽空回来看一下B完成没有(非阻塞)。 异步:一项任务A的完成,必须依赖于另一项任务B。但是A和B可以独立完成自己的任务,A不用专门去管B完成的进度,只需要做自己的事情即可。..

2020-12-22 09:52:25 176

原创 测试jedis的redis的实用功能

最近在学redis高级特性。练练手。 package com.wyq; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.Pipeline; import java.io.IOException; import java.util.List; public class Test1_Jedis {

2020-09-22 12:01:57 228

原创 内部类、匿名内部类、lambda表达式的使用

写的比较简单,主要是熟悉jse中的一些概念,以及Lambda表达式的使用 package com.vecheer; //look // 函数式接口 —— 只有一个方法的接口 // 只有函数式接口才可使用Lambda表达式 interface Iprovider { void provide(String saler); } //look 1.普通的外部类 class Saler1 implements Iprovider { public void provide(String

2020-06-24 09:56:14 285

原创 spring配置service事务不起作用

这里的终极原因是:Spring版本问题,比较新的版本中,藏着一个哈批属性。 springmvc.xml中的扫描包的标签:< context:component-scan >有一个贼几把坑的默认属性:use-default-filters="true"。 < context:component-scan >这个标签中有一个我们常用到子标签 :< context:in...

2020-05-04 23:38:09 923 1

原创 Eclipse修改编码方式以及项目编码的方式

用eclipse写项目,尤其是web项目,总是出现编码错误。这里强烈建议把eclipse默认编码改成UTF-8. 修改整个eclipse的workspace的方法: 单独修改项目编码的方式: ...

2020-04-10 22:37:13 483

原创 进程同步早期解决方案——软件方法篇

首先说明同步机制遵循的原则: ①空闲让进:无进程处于临界区时,请求进入临界区的进程可立即进入。 ②忙则等待:有进程处于临界区时,请求进入临界区的进程必须等待。 ③有限等待:要访问临界资源的进程,须保证在有限时间内可进入临界区。 ④让权等待:当进程不可进入临界区时,应释放处理机。 接着来看进程同步的早期方案: (一)软件解法1——轮询 (1)基本思想: 设置轮转标志turn,即...

2019-06-01 10:38:27 1711

空空如也

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

TA关注的人

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