结合Jenkins、Gitlab实现代码自动化部署,本质是观察者模式,Gitlab的触发器判断代码提交/合并后发出【部署事件】,回调Jenkins内的URL并携带token,触发Jenkins自动部署项目,需要注意代码最好完成后提交,否则频繁提交有可能造成任务部署堆积和异常。......
redis的getbit、setbit特性可以帮助我们解决很多现实问题,而且因为存储空间小,一位就一个bit,所以能够很好的节省空间、提高性能。在了解该特性之前,没想到它能解决那么多场景问题,如打卡、群聊等,而仔细了解后发现,如此解决真的很巧妙。......
CopyOnWriteArrayList很巧妙的使用了volatile关键词来保证线程读写安全,虽然避免了读写同时加锁性能低下的问题,但是也有占用额外内存,数据无法保证强一致性等缺点,我们需要根据场景谨慎使用,推荐读多写少的场景。 ......
尝试去手写一个简易版的Spring框架,满足一些简单的入门组件和功能。例如BeanPostProcessor、Autowire、ComponentScan等,后续不定时完善,争取加入更多的功能如三级缓存、构造器注入等。源码放到github随缘更新~......
【持续更新】在学习源码时候会经常看到大神用这些方法,总结一下,一是方便自己理解源码,明白使用目的,二是之后工作中拿来就用,不需要重复造轮子。......
简单SpringBoot项目使用Jenkins实现一键部署,解决拉取代码-maven构建-远程连接-传输-包体重启一系列繁琐步骤,还可以在其中加入sonarqube代码审查等。而在微服务项目可以使用对应流水线构建,实现不同项目名称进行不同构建的情况。......
CompletableFuture被设计在Java中进行异步编程。异步编程意味着在主线程之外创建一个独立的线程,与主线程分隔开,并在上面运行一个非阻塞的任务,然后通知主线程进展,成功或者失败。通过这种方式,你的主线程不用为了任务的完成而阻塞/等待,你可以用主线程去并行执行其他的任务。 使用这种并行方式,极大地提升了程序的表现。......
Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 Netflix Ribbon 实现。 通过 Spring Cloud 的封装, 可以让我们轻松地将面向服务的 REST 模板请求自动转换成客户端负载均衡的服务调用。从源码分析负载均衡器是如何实现运行的。......
微服务中说到隔离、熔断、降级,最出名的就是 Netflix 开源的 Hystrix 组件,Hystix官方对它描述为:Hystrix是一个延迟和容错库,旨在隔离远程系统、服务和第三方库,阻止级联故障,在复杂系统中实现恢复能,和他同类的有alibaba的 sentinel。本文了解Hystrix的基本原理,断路器怎么阻止请求进行。......