学习笔记
文章平均质量分 69
各类学习笔记。主攻Java后端。
pjhCoding
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
微服务中的重试二
文章目录重试治理动态配置退避策略防止retry storm书接上文。上文提到了spring-retry和guava-retry,但针对重试的风险问题,并没有很好的解决。重试治理动态配置采用中间件的方式实现重试功能,在其内进行RPC的重复调用,重试的配置信息存储在分布式配置中心。配置的维度按照RPC调用特点选定 [调用方服务,调用方集群,被调用服务, 被调用方法] 为一个元组,按照元组来进行配置。退避策略上文中提到了重试时间间隔,决定这个间隔的方法叫退避策略,包括:线性退避:每次等待固定时间原创 2021-03-21 12:25:13 · 431 阅读 · 0 评论 -
微服务中的重试一
文章目录分析重试使用风险重试实现spring-retryGuava Retry微服务之间的调用会因为一方的不稳定或其他原因,导致失败,从而导致系统也陷入不稳定。因此有了重试这个机制。参考文章:重试的实现优雅的重试分析重试使用重试次数:具体业务具体分析,一般三次。重试间隔:要根据被调用的系统平均恢复时间去正确估量,通常而言这个平均恢复时间很难统计到,所以一般的经验值是3至5分钟。重试完依旧失败:错误报警机制;手动重试开关。风险重试能很好的避开网络抖动或其他关联应用暂时down机维护带来原创 2021-03-15 17:41:01 · 714 阅读 · 0 评论 -
[学习笔记]kafka再探
文章目录基本流程机制存储机制书接上文基本流程机制存储机制原创 2021-02-06 10:55:15 · 152 阅读 · 0 评论 -
[学习笔记]kafka初识
文章目录基本概念基本流程机制基本概念kafka: 分布式的基于发布/订阅模式的消息队列消息队列:Message Queue。解耦、异步通信、缓冲和峰值处理能力。发布/订阅模式:一对多,生产者将消息发布到 Topic 中,有多个消费者订阅该主题,发布到 Topic 的消息会被所有订阅者消费,被消费的数据不会立即从 Topic 清除。消息生产者:Producer,向 Kafka Broker 发消息的客户端。消息消费者:Consumer,从 Kafka Broker 取消息的客户端。Consum原创 2021-01-31 12:22:26 · 132 阅读 · 0 评论 -
[学习笔记]nginx再探
文章目录HTTPS反向代理搭建文件服务器上篇说了nginx配置http反向代理,本篇先说https的反向代理,以及利用nginx搭建文件服务器。HTTPS反向代理https使用了ssl通信标准,需要引入安全证书,且其端口号与http也不相同。其他基本一样。server { #监听 443 端口。443 为知名端口号,主要用于 HTTPS 协议 listen 443 ssl; #定义使用 www.xx.com 访问 server_name原创 2021-01-23 19:49:19 · 272 阅读 · 1 评论 -
[学习笔记]Nginx初识
文章目录反向代理Nginx是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。使用基于事件驱动的架构能够并发处理百万级别的TCP连接,并高度的模块化。反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端。此时代理服务器对外就表现为一个反向代理服务器。HTTP反向代理实现参考链接:主要配置nginx配置:原创 2021-01-16 12:38:45 · 160 阅读 · 0 评论 -
[学习笔记]垃圾回收算法(二)
文章目录增量式垃圾回收三色标记算法书接上文垃圾回收算法(一)增量式垃圾回收增量式垃圾回收(Incremental GC)是一种通过逐渐推进垃圾回收来控制mutator最大暂停时间的方法。三色标记算法该方法是G1(Garbage-First)垃圾收集器使用的方法。将对象按照情况分为三种:白色:还未搜索过的对象灰色:正在搜索的对象黑色:搜索完的对象GC开始前,所有对象都是白色的,能从根部发现的对象被标记,堆到栈里,但还没有搜索完,因此这些对象被标记为灰色。灰色对象从栈中取出,子对象被标记原创 2021-01-11 14:52:55 · 458 阅读 · 0 评论 -
[学习笔记]垃圾回收算法(一)
文章目录新生代与老年代Ungar的分代垃圾回收算法本文参考垃圾回收的算法与实现。本篇目前说的是分代垃圾回收算法。基于编程经验,很多对象在在生成后不久就成了垃圾,因此引入了年龄的概念,经过一次GC,年龄加一。新生代与老年代分代垃圾回收算法将对象根据年龄分为新生代与老年代。新生代的GC称为minor GC,新生代对象存活一定的次数后上升为老年代对象成为晋升(promotion)。老年代的GC频率较低,成为major GC。分代垃圾回收算法是与复制算法、清除算法和压缩算法结合使用的。Ungar的分代原创 2021-01-02 20:49:33 · 198 阅读 · 0 评论 -
[学习笔记]java虚拟机(六)
书接上文虚拟机(四)文章目录访问标记当前类、父类和接口Class文件的字段Class文件的方法基本结构接着说Class文件结构,前文说完了常量池的结构,紧跟着是访问标记。访问标记2字节表示,用于表明该类的访问信息,如public、final、abstract等。每种类型的表示都是通过设置访问标记32位中的特定位来实现。标记名称数值描述ACC_PUBLIC0x0001表示publicACC_FINAL0x0010是否为final类ACC_SUPER0x0原创 2020-12-06 10:33:37 · 99 阅读 · 0 评论 -
[学习笔记]java虚拟机(五)
书接上文:java虚拟机(四)。文章目录Class文件魔数版本常量池java虚拟机屏蔽了系统平台,程序运行在java虚拟机上即可。Class文件是实现的基石,只要能将源文件编译为Class文件,就能在虚拟机上执行。Class文件Class文件使用类似于C语言结构体的方式进行描述,并且统一使用无符号整数作为基本数据类型,u1、u2、u4、u8分别表示无符号单字节、2字节、4字节和8字节整数。字符串使用u1数组进行表示。如下为Class文件描述:ClassFile{ u4 m原创 2020-11-15 12:46:50 · 132 阅读 · 0 评论 -
[学习笔记]java虚拟机(四)
书接上文,虚拟机(二)。文章目录无锁java内存模型无锁非阻塞同步有许多方法:如ThreadLocal,每个线程拥有各自独立的变量副本。基于CAS的无锁并发控制。java内存模型原创 2020-11-06 10:15:17 · 155 阅读 · 0 评论 -
[学习笔记]java虚拟机(三)
书接上文,虚拟机(二)。文章目录锁在虚拟机的实现优化基本概念偏向锁轻量级锁锁膨胀自旋锁锁消除锁在应用层的优化减少锁持有时间减少锁粒度锁分离锁粗化锁在虚拟机的实现优化基本概念java的对象中都有一个对象头,用于保存对象的系统信息。对象头中有一个成为Mark Word的部分,是一个数据区,存放对象的哈希值、对象的年龄、锁的指针等信息。偏向锁某个锁被线程获取后,就会进入偏向模式,线程再次请求这个锁时,无需再进行相关的同步操作。偏向锁在竞争不激烈的系统中能够很好地提升性能,但激烈的场合没有太强的优化原创 2020-10-31 16:30:37 · 166 阅读 · 0 评论 -
[学习笔记]java虚拟机(二)
文章目录垃圾回收器CMSG1书接上文,虚拟机(一)。垃圾回收器CMSG1原创 2020-10-16 16:27:07 · 136 阅读 · 0 评论 -
[学习笔记]java虚拟机(一)
文章目录垃圾回收算法引用先从《实战java虚拟机》开始。各种配置Xms、Xmx等暂时搁置垃圾回收算法主要有引用计数、标记清除、复制、标记压缩、分代算法、分区算法。各类的面试博客或是书籍都已说的很清楚,不再赘述。主要说下分代算法中的叫做卡表(Card Table)的数据结构,为一个比特位集合,每个比特位对应老年代的一块地址,比特位为1表示这片老年代中的对象持有新生代对象的引用,在这种情况下新生代GC时只需要遍历这一块老年代。引用分为强引用、软引用、弱引用、虚引用。后三个引用均在java.lang原创 2020-10-11 16:45:06 · 131 阅读 · 0 评论 -
[学习笔记]Spring Cloud实战至投降(六)
六次出击FeignRibbon使用方法配置Hystrix禁用配置指定命令配置服务降级配置其它配置开始学习Feign~~Feign主要整合了Ribbon和Hystrix,并提供了一种声明式的Web服务客户端定义方式。使熟悉SpringMVC的能更习惯。因此本文主要是关于Feign中Ribbon、Hystrix的配置使用。FeignRibbon在Ribbon中会利用其对RestTemplate的请求拦截实现对依赖服务的接口调用,RestTemplate也实现了对HTTP请求的封装,形成了一套模板化的原创 2020-09-26 16:41:43 · 127 阅读 · 0 评论 -
[学习笔记]Spring Cloud实战至投降(五)
五次出击开始Hystrix的学习~~首先Hystrix是为了提供更强大的容错能力而设计的,通过控制那些访问远程服务、系统或第三方库的节点来应对延迟或故障。微服务架构中各节点间的访问和请求是频繁的,Hystrix具备了服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等功能。...原创 2020-09-19 16:36:20 · 170 阅读 · 0 评论 -
[学习笔记]Spring Cloud实战至投降(四)
四次出击Ribbon源码分析上次出击还未能将Ribbon攻克,这次继续。Ribbon源码分析上章中源码分析,从@LoadBalanced到LoadBalancerClient,再到LoadBalancerAutoConfiguration。现在分析LoadBalancerAutoConfiguration中涉及到的LoadBalancerInterceptor。看这个拦截器是怎么把RestTemplate变成客户端负载均衡的。public class LoadBalancerIntercepto原创 2020-09-12 08:42:59 · 134 阅读 · 0 评论 -
[学习笔记]Spring Cloud实战至投降(三)
三次出击RibbonRibbon原创 2020-09-02 21:56:21 · 137 阅读 · 0 评论 -
[学习笔记]Spring Cloud实战至投降(二)
二次出击ActuatorActuator原创 2020-08-15 11:18:11 · 177 阅读 · 0 评论
分享