自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 微服务中的重试二

文章目录重试治理动态配置退避策略防止retry storm书接上文。上文提到了spring-retry和guava-retry,但针对重试的风险问题,并没有很好的解决。重试治理动态配置采用中间件的方式实现重试功能,在其内进行RPC的重复调用,重试的配置信息存储在分布式配置中心。配置的维度按照RPC调用特点选定 [调用方服务,调用方集群,被调用服务, 被调用方法] 为一个元组,按照元组来进行配置。退避策略上文中提到了重试时间间隔,决定这个间隔的方法叫退避策略,包括:线性退避:每次等待固定时间

2021-03-21 12:25:13 277

原创 微服务中的重试一

文章目录分析重试使用风险重试实现spring-retryGuava Retry微服务之间的调用会因为一方的不稳定或其他原因,导致失败,从而导致系统也陷入不稳定。因此有了重试这个机制。参考文章:重试的实现优雅的重试分析重试使用重试次数:具体业务具体分析,一般三次。重试间隔:要根据被调用的系统平均恢复时间去正确估量,通常而言这个平均恢复时间很难统计到,所以一般的经验值是3至5分钟。重试完依旧失败:错误报警机制;手动重试开关。风险重试能很好的避开网络抖动或其他关联应用暂时down机维护带来

2021-03-15 17:41:01 468

原创 MongoDb ChangeStream实践

文章目录前言实现ReactiveMongoMessageListener前言需求:Mongodb监控库的变更,同时根据变更类型,通过kafka将变更信息发送到某个topic。实现ReactiveMongo流式处理。public class ChangeStream implements CommandLineRunner{ @Autowired ReactiveMongoTemplate reactiveMongoTemplate; @Autowired KafkaSendServ

2021-03-07 21:11:31 669

原创 [学习笔记]kafka再探

文章目录基本流程机制存储机制书接上文基本流程机制存储机制

2021-02-06 10:55:15 92

原创 [学习笔记]kafka初识

文章目录基本概念基本流程机制基本概念kafka: 分布式的基于发布/订阅模式的消息队列消息队列:Message Queue。解耦、异步通信、缓冲和峰值处理能力。发布/订阅模式:一对多,生产者将消息发布到 Topic 中,有多个消费者订阅该主题,发布到 Topic 的消息会被所有订阅者消费,被消费的数据不会立即从 Topic 清除。消息生产者:Producer,向 Kafka Broker 发消息的客户端。消息消费者:Consumer,从 Kafka Broker 取消息的客户端。Consum

2021-01-31 12:22:26 80

原创 [学习笔记]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 145 1

原创 [学习笔记]Nginx初识

文章目录反向代理Nginx是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。使用基于事件驱动的架构能够并发处理百万级别的TCP连接,并高度的模块化。反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端。此时代理服务器对外就表现为一个反向代理服务器。HTTP反向代理实现参考链接:主要配置nginx配置:

2021-01-16 12:38:45 100

原创 [学习笔记]垃圾回收算法(二)

文章目录增量式垃圾回收三色标记算法书接上文垃圾回收算法(一)增量式垃圾回收增量式垃圾回收(Incremental GC)是一种通过逐渐推进垃圾回收来控制mutator最大暂停时间的方法。三色标记算法该方法是G1(Garbage-First)垃圾收集器使用的方法。将对象按照情况分为三种:白色:还未搜索过的对象灰色:正在搜索的对象黑色:搜索完的对象GC开始前,所有对象都是白色的,能从根部发现的对象被标记,堆到栈里,但还没有搜索完,因此这些对象被标记为灰色。灰色对象从栈中取出,子对象被标记

2021-01-11 14:52:55 231

原创 [学习笔记]垃圾回收算法(一)

文章目录新生代与老年代Ungar的分代垃圾回收算法本文参考垃圾回收的算法与实现。本篇目前说的是分代垃圾回收算法。基于编程经验,很多对象在在生成后不久就成了垃圾,因此引入了年龄的概念,经过一次GC,年龄加一。新生代与老年代分代垃圾回收算法将对象根据年龄分为新生代与老年代。新生代的GC称为minor GC,新生代对象存活一定的次数后上升为老年代对象成为晋升(promotion)。老年代的GC频率较低,成为major GC。分代垃圾回收算法是与复制算法、清除算法和压缩算法结合使用的。Ungar的分代

2021-01-02 20:49:33 95

原创 [杂记]springboot插件开发

文章目录java插件maven依赖本文说的插件不是常说的那种,就是maven工程,通过自动化配置实现。java插件通过动态加载jar文件来实现。主程序中编写接口,插件为接口的实现类。主程序通过URLClassLoader来加载插件。主程序可以通过配置来实现动态的加载,有两种方法:xml、数据库。参考博文xml主程序通过xml配置文件动态配置。<plugins> <plugin> <name></name> <jar>j

2020-12-27 11:38:32 913 1

原创 [杂记]jvm相关问题

本文目前是收集有关于JVM的调优经验、问题解决。promotion failed: 转向Full GC,网站停顿时间较长原因一:​ 救助空间不够(from+to),救助空间的对象还不应该移动到老年代,但年轻代有很多对象需要放入救助空间。​ 解决方法:​ 加大救助空间,六十四位系统下: 设置-XX:SurvivorRatio=1 ,并把MaxTenuringThreshold去掉​ 原因二:​ 年老代没有足够的空间接纳来自年轻代的对象。解决方法:​ 设置CMSInitiatingOccup

2020-12-19 14:07:22 132 2

原创 [杂记]培训杂记(三)

文章目录Docker开发中的坑DockerDocker是开源的容器引擎,用于开发,交付和运行应用程序,因其将应用程序与基础架构分开,从而可以快速交付软件。可以大大减少编写代码和在生产环境中运行代码之间的延迟。开发中的坑前端进行标签页的开发时:需求:每个标签页对应一个自定义的组件,从外部不同入口进入页面,显示不同的标签页。标签页中的组件在切换标签页时,进行重置。从不同入口进入,入口方法中传递参数。定义组件时,如果是需要参数传递则,将要传递的参数放在props中 ,而若子组件需要更改属性的值,需将

2020-12-13 17:50:59 68

原创 [学习笔记]java虚拟机(六)

书接上文虚拟机(四)文章目录访问标记当前类、父类和接口Class文件的字段Class文件的方法基本结构接着说Class文件结构,前文说完了常量池的结构,紧跟着是访问标记。访问标记2字节表示,用于表明该类的访问信息,如public、final、abstract等。每种类型的表示都是通过设置访问标记32位中的特定位来实现。标记名称数值描述ACC_PUBLIC0x0001表示publicACC_FINAL0x0010是否为final类ACC_SUPER0x0

2020-12-06 10:33:37 51

原创 [杂记]培训杂记(二)

又是一周的996,身心俱疲,距离辞职又近了一步。文章目录JWT基本概念基本应用JWT基本概念JSON WEB TOKEN微服务的兴起,Restful API的普及,服务的无状态性使基于session的认证有许多痛点。因此基于Token的认证更合适:支持跨域,不依赖服务端,服务端无状态,性能较好。JWT就是一种Token的规范,该Token由三部分组成:头信息(header)、载荷(payload)、签名(signature)。头信息主要包括token的类型、签名加密的算法,然后对其进行base

2020-11-29 13:31:27 2307

原创 [杂记]培训杂记(一)

文章目录springboot前端springcloud技术培训两周了,先是3天的大数据基础培训。对数据工程、大数据有了基础、宏观的了解。之后开始了专业技术培训。专业技术培训的安排首先进行springboot的项目开发,与mybatis、mybatisPlus、vue、ElementUI整合,实现前后端分离,在行内平台进行开发。然后是spring cloud的内容,最后是一组人完成一个完整项目的开发。springboot仍有较深印象的由Oracle的sequence,采用sequence生成id,S

2020-11-21 16:38:38 160

原创 [学习笔记]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 72

原创 [学习笔记]java虚拟机(四)

书接上文,虚拟机(二)。文章目录无锁java内存模型无锁非阻塞同步有许多方法:如ThreadLocal,每个线程拥有各自独立的变量副本。基于CAS的无锁并发控制。java内存模型

2020-11-06 10:15:17 95

原创 [学习笔记]java虚拟机(三)

书接上文,虚拟机(二)。文章目录锁在虚拟机的实现优化基本概念偏向锁轻量级锁锁膨胀自旋锁锁消除锁在应用层的优化减少锁持有时间减少锁粒度锁分离锁粗化锁在虚拟机的实现优化基本概念java的对象中都有一个对象头,用于保存对象的系统信息。对象头中有一个成为Mark Word的部分,是一个数据区,存放对象的哈希值、对象的年龄、锁的指针等信息。偏向锁某个锁被线程获取后,就会进入偏向模式,线程再次请求这个锁时,无需再进行相关的同步操作。偏向锁在竞争不激烈的系统中能够很好地提升性能,但激烈的场合没有太强的优化

2020-10-31 16:30:37 81

原创 [杂记]方舟编译器初识

Java 程序的执行依赖于Java虚拟机。虚拟机中自带了两个:解释器、编译器。解释器就像现场翻译,听一句翻译一句给编译器;编译器结合上下文对整段话进行翻译。方舟编译器跨过了VM这道坎,将高级语言直接编译成机器码,消除了动态编译的开销。另一方面,安卓在内存回收上采用集中回收机制,发声全局回收时更需要暂停应用,这也是随机卡顿的根因之一。而方舟编译器提供了更高效的内存回收机制,回收时无需暂停应用,随时用随时回收,大大提高运行速度。方舟编译器由于是在应用开发阶段进行编译,所以可以允许不同应用灵活采用不同的编译

2020-10-24 23:19:53 3063

原创 [学习笔记]java虚拟机(二)

文章目录垃圾回收器CMSG1书接上文,虚拟机(一)。垃圾回收器CMSG1

2020-10-16 16:27:07 92

原创 [学习笔记]java虚拟机(一)

文章目录垃圾回收算法引用先从《实战java虚拟机》开始。各种配置Xms、Xmx等暂时搁置垃圾回收算法主要有引用计数、标记清除、复制、标记压缩、分代算法、分区算法。各类的面试博客或是书籍都已说的很清楚,不再赘述。主要说下分代算法中的叫做卡表(Card Table)的数据结构,为一个比特位集合,每个比特位对应老年代的一块地址,比特位为1表示这片老年代中的对象持有新生代对象的引用,在这种情况下新生代GC时只需要遍历这一块老年代。引用分为强引用、软引用、弱引用、虚引用。后三个引用均在java.lang

2020-10-11 16:45:06 85

原创 [学习笔记]Spring Cloud实战至投降(六)

六次出击FeignRibbon使用方法配置Hystrix禁用配置指定命令配置服务降级配置其它配置开始学习Feign~~Feign主要整合了Ribbon和Hystrix,并提供了一种声明式的Web服务客户端定义方式。使熟悉SpringMVC的能更习惯。因此本文主要是关于Feign中Ribbon、Hystrix的配置使用。FeignRibbon在Ribbon中会利用其对RestTemplate的请求拦截实现对依赖服务的接口调用,RestTemplate也实现了对HTTP请求的封装,形成了一套模板化的

2020-09-26 16:41:43 78

原创 [学习笔记]Spring Cloud实战至投降(五)

五次出击开始Hystrix的学习~~首先Hystrix是为了提供更强大的容错能力而设计的,通过控制那些访问远程服务、系统或第三方库的节点来应对延迟或故障。微服务架构中各节点间的访问和请求是频繁的,Hystrix具备了服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等功能。...

2020-09-19 16:36:20 108

原创 [学习笔记]Spring Cloud实战至投降(四)

四次出击Ribbon源码分析上次出击还未能将Ribbon攻克,这次继续。Ribbon源码分析上章中源码分析,从@LoadBalanced到LoadBalancerClient,再到LoadBalancerAutoConfiguration。现在分析LoadBalancerAutoConfiguration中涉及到的LoadBalancerInterceptor。看这个拦截器是怎么把RestTemplate变成客户端负载均衡的。public class LoadBalancerIntercepto

2020-09-12 08:42:59 79

原创 [学习笔记]Spring Cloud实战至投降(三)

三次出击RibbonRibbon

2020-09-02 21:56:21 79

原创 [杂记]让高并发下的系统更快

高并发的优化应用和静态资源分离页面缓存集群与分布式反向代理CDN仍然是韩路彪老师写的《看透Spring MVC:源代码分析与实践》中提到的高并发下的解决方案。主要包括:应用和静态资源分离页面缓存集群与分布式反向代理CDN应用和静态资源分离将静态资源放在单独的服务器,静态资源主要包括:图片、视频、css、js等文件,使用专门的域名去访问,这样浏览器去访问资源时,访问资源服务器,而不去访问应用服务器。页面缓存这个方法在上一篇杂记《海量数据下的优化》中提过。这里再讨论下当一个页面,很多

2020-08-29 11:02:12 122 1

原创 [杂记]轮岗实习的总结与记录

一周没有电脑下的博客优势成果问题记录系统不便自身问题这周笔记本坏了,一直没有修好,修电脑的都不确定能不能修好····难受。那么在一周都没有电脑可用的情况下,如何写好一篇博客呢。就把这篇博客作为一个这快一个月的总结吧~优势成果首先在分行最大的体验就是规矩,规矩高于一切,而且有各种的措施保证规矩的正确完整执行和维护。在严苛的规矩下,会有不适应的地方,但在几天的观察、相处、适应之后,越发体会到合规的重要性,合规一方面能让客户感受到专业性,更加放心;另一方面也提高了工作的效率以及安全性。毕竟银行中对风险

2020-08-22 20:50:06 280

原创 [学习笔记]Spring Cloud实战至投降(二)

二次出击ActuatorActuator

2020-08-15 11:18:11 110

原创 [杂记]海量数据下如何提升系统速度

海量数据解决方案看韩路彪老师写的《看透Spring MVC:源代码分析与实践》,提到了海量数据问题解决的知识,在此记录总结下。系统运行速度问题主要集中在海量数据操作问题和高并发问题。海量数据操作问题上,解决方法有:缓存、页面静态化数据库优化分离活跃数据批量读取、延迟修改读写分离分布式数据库NoSQL...

2020-08-08 11:32:58 318 2

原创 [学习笔记]Spring Cloud实战至投降(一)

开始作战微服务微服务

2020-07-30 15:57:29 156

空空如也

空空如也

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

TA关注的人

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