zookeeper QuorumPeer 生命周期 main 启动读取配置文件启动 zk 集群服务(quorumPeer 对象)准备选举(此后,zk 服务进入状态机)启动 quorumPeer 对象,进入选举状态机投票选举进入角色阻塞在当前状态…
java 中指令重排序的笔记 当CPU执行到屏障指令时,会暂停当前的执行流程,等待内存操作完成(本质是 cpu 上的加锁,比如总线索这种,这也就保证了 volatile 的可见性),此外会下令禁止指令的重排序,然后再继续执行。对于一些非热点代码,如单例构造器等,由于其执行频率较低,JVM通常会采用解释执行的方式来运行,这样就不需要考虑重排序问题。总之,了解热点代码重排序的原理对于编写高效且正确的Java程序非常重要,我们需要合理地使用volatile关键字来避免重排序问题的出现,并对程序的运行情况进行监控和优化。
服务治理的大概内容 一、序言1.为什么要微服务拆分单体架构下:可扩展性受限服务和模块的可重用性低故障隔离范围低运维复杂度高没有服务治理微服务化之后,这些问题都可以解决。2.为什么要服务治理服务治理是对于服务的管理,以保证:1.避免微服务场景下潜在问题发生服务限流、熔断,都可以避免服务端的瘫痪或者潜在的雪崩风险2.实现服务的方式是最佳实践比如服务路由,流量分配二、服务治理的具体内容1.服务配置(1)服务路由服务路由是通过配置一定的
服务治理的三种服务保护方法:熔断、限流、降级。 最近在看陈皓的一些课,感触很深,这里大概记录一下心得。一、熔断熔断的目的个人理解,熔断大多来源于:有限时间内过多的重试。之所以重试这么多次,可能是服务端或者请求方本身出现了问题。而引入熔断之后,可能避免过多无意义的失败请求。若服务方出现问题,请求方被熔断,从而使得请求方不会继续盲目调用。若请求方本身出现问题,也可以让请求方直接失败,避免自身无意义的等待或阻塞。熔断器的状态熔断器可以使用状态机来实现。闭合(Closed)状态:关闭熔断。我们需要一个调用失败的计数器,如果
docker快速安装 今天自己配置maven私服的时候,用的是nexus来弄,直接安装挺麻烦的,就打算直接用docker来搞,然后发现自己的虚拟机里面没装docker,这里整理一下docker的快速安装。# 查询机器上已安装的dockeryum list installed | grep docker# 把查到的全部卸载yum remove -y xxxx xxxx xxxx# 删除原有的docker数据rm -rf /var/lib/docker# 也可以直接yum remove docker-ce# 最
BASE和CAP理论 一、CAP1.CAP简介C:(强)一致性同一时间所有节点的数据都一致A:可用性任何时候所有节点都可以提供服务,并在正常时间内响应P:分区容错性某些节点出错后,不影响整体提供服务。(分布式架构下,认定P总是成立)2.CAP理论CAP三者不可同时共存,只能以CP、AP、CA的形式满足要求。在分布式场景下,默认P是成立的,所以一般情况下,架构满足的是CP、AP。3.分布式场景下C和A的矛盾在分布式场景下,若要保证C,那么一个节点在更新数据dataX后,立马广..
关于【同步异步】和【阻塞非阻塞】的思考 同步异步着眼于,二者的协同工作时的状态,是否必须互相依赖,一个没立刻完成,另一个就必须等待。阻塞非阻塞着眼于,二者协同工作时,其中一者本身发生等待的状态。同步:一项任务A的完成,必须依赖于另一项任务B。在B没有完成之前,任务A无法完成。A可能会等待任务B完成的过程中,啥也不干,干等着(阻塞);也可以做点别的事情,抽空回来看一下B完成没有(非阻塞)。异步:一项任务A的完成,必须依赖于另一项任务B。但是A和B可以独立完成自己的任务,A不用专门去管B完成的进度,只需要做自己的事情即可。..
测试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 {
内部类、匿名内部类、lambda表达式的使用 写的比较简单,主要是熟悉jse中的一些概念,以及Lambda表达式的使用package com.vecheer;//look// 函数式接口 —— 只有一个方法的接口// 只有函数式接口才可使用Lambda表达式interface Iprovider { void provide(String saler);}//look 1.普通的外部类class Saler1 implements Iprovider { public void provide(String
spring配置service事务不起作用 这里的终极原因是:Spring版本问题,比较新的版本中,藏着一个哈批属性。springmvc.xml中的扫描包的标签:< context:component-scan >有一个贼几把坑的默认属性:use-default-filters="true"。< context:component-scan >这个标签中有一个我们常用到子标签 :< context:in...
Eclipse修改编码方式以及项目编码的方式 用eclipse写项目,尤其是web项目,总是出现编码错误。这里强烈建议把eclipse默认编码改成UTF-8.修改整个eclipse的workspace的方法:单独修改项目编码的方式:...