- 博客(13)
- 收藏
- 关注
原创 AWS中Keepalived+Nginx高可用部署流程
1.需要拥有一个拥有可以管理EC2的IAM账号并配置好访问密钥,如图下所示:2.keepalived组成的主备节点需要在同一个子网下,如图下所示:执行2)配置AWS iam执行配置实例:3)创建一个弹性ip地址执行命令:记下你的AllocationId,后面要用到。执行在里面添加下面的内容:5)安装jq(jq 是一款简单而又强大的 json 解析工具)三.Keepalived主从配置1)注意事项:1.Aws的虚拟交换机(VPC)VRRP 协议的组播被禁止,所以需要配置心跳通
2024-07-15 19:31:30 461
原创 Redis之zset高级玩法
前言最近博主收到了一个排序需求,需要我们按照用户权重、状态、性别和在线离线状态对用户进行排序。按照我们传统的数据库里也不行,因为如果要排序我需要取出所有的数据进行排序。假如说我这时候有很大的数据量该怎么办?我不可能全部取出来然后通过java排序,这样的性能是非常低的。那么有小伙伴肯定就会说,用zset直接排序。那么zset我们都知道是通过score排序的,但是我们怎么办把多权重排序放到zset里呢?核心技术首先按照我的用户权重、状态、性别和在线状态这4个维度的角度我们先按照需求分一下他们的排序优先级。
2022-06-15 14:30:39 1415 3
原创 Rancher+k3s+阿里云流水线详细配置教程
一、前言当我们的项目是集群部署的时候,我们再更新代码部署到机器上的时候是很麻烦的。所以这时候我们需要借助一些工具来帮助我们更便捷的进行更新和发布。首先我准备了两台机器进行一个环境搭建演示。一台用于安装rancher,一台用来跑微服务。二、安装Rancher1.安装dockerapt-get updateapt-get install docker.io2.安装Rancherdocker run -d --restart=unless-stopped \--name=rancher-ser
2021-12-17 18:10:33 5271
原创 Java多线程之ThreadLocal
前言在前面几章Java多线程相关的文章中,相信大家已经对多线程有了一定的基本了解,那么我们今天看一个平时工作中可能不太常用或者没有接触到过的一个工具类ThreadLocal。在前面volatie相关的文章中我有提到过JMM内存模型,那么ThreadLocal其实就是在每个线程内部给我们维护一个变量的副本,这时候我们线程操作的变量就都是每个线程内部独有的副本变量,从而达到线程安全的一个效果。但是ThreadLocal还有另一个作用:隐式传参。接下来我们先了解一下ThreadLocal的用法吧。Thread
2020-10-27 16:18:33 445 1
原创 Spring源码系列之Spring整体简介(一)
Spring框架作为我们java程序员来说都是再熟悉不过的,我们平常所使用的SpringBoot亦或者是SpringCloud都跟我们的Spring息息相关。但是当我们在使用SpringBoot或者SpringCloud的时候,有没有想过他们的核心到底是什么?其实很简单,就是我们的IOC和AOP,也就是我们都知道的Spring的两大核心点。IOC和AOPIOC就是我们所谓的控制反转,AOP也就是我们说的面向切面。我相信大家肯定都用过@Service@Component注解。那么被这两个注解所托管的容器就
2020-10-17 12:18:10 307
原创 Java多线程之ReentrantLock(二)源码解读
其实,在我们Java中也有一个使用了Java语言开发的一把锁,名字叫ReentrantLock。它位于我们的java.uilt.concurrent包下的一个线程安全的工具类。接上一篇讲,上一篇我们介绍了ReentrantLock的基本用法,并且也通过ReentrantLock底层实现的原理自己手写了一把ReentrantLock。那么本期我们就开始深入的来看一看ReentrantLock核心源码到底是什么样的。首先我们来看ReentrantLock的类结构,不知道大家有沒有注意到,我昨天我昨天.
2020-10-08 16:51:36 338
原创 Java多线程之ReentrantLock(一)ReentrantLock介绍及手写ReentrantLock
某一天,李四同学去某一家互联网公司面试。面试官:李同学,你知道Java有哪一个是使用java写的锁并且和sychronized性能差不多?李同学:…面试官:那你知道什么是CAS吗李同学:…面试官:出门右转是电梯自己走吧!什么是ReentrantLock其实,在我们Java中也有一个使用了Java语言开发的一把锁,名字叫ReentrantLock。它位于我们的java.uilt.concurrent包下的一个线程安全的工具类。我们大名鼎鼎的JUC包就是由这位图中的老爷爷写的,Reentr
2020-10-05 22:17:54 417 2
原创 Java多线程之volatile详解(三)
对于JAVA并发编程而言,我们始终要遵守这三种特性的规则。才能使我们的代码不出问题。在上一篇我们通过字节码层面和汇编的层面对volatile进行了一个简单的介绍。那么这一期我们将深入的去给大家介绍一下volatile。代码执行过程首先我们先来了解一下代码的执行过程。我们首先通过JVM的类加载器将类加载到元空间里面,元空间会通过元数据对象在堆内生成一个Class对象。那么CPU是如何执行到我们的代码的呢?首先我们的栈和线程是1:1对应的关系。我们首先会将字节码文件通过字节码执行引擎和JIT将这个字.
2020-08-18 21:31:10 297
原创 Java多线程之volatile详解(二)
首先,java中除了synchronized关键字可以保证线程安全,还有一个关键字volatile也可以保证。你可以理解它是一个轻量级的synchronized,但是它不能保证线程的原子性。至于为什么我们稍后再说。在了解volatile之前,我们需要知道JMM内存模型与CPU和内存
2020-08-15 23:21:03 171
原创 Java多线程之volatile详解(一)
有一天,张三去某互联网公司面试:面试官:你好,张同学,请问你知道java有哪些关键字可以保证线程安全吗?张三:知道!synchronized关键字可以保证!面试官:还有呢?张三:…面试官:是你自己出门还是我送?首先,java中除了synchronized关键字可以保证线程安全,还有一个关键字volatile也可以保证。你可以理解它是一个轻量级的synchronized,但是它不能保证线程的原子性。至于为什么我们稍后再说。在了解volatile之前,我们需要知道JMM内存模型与CPU和内存C
2020-08-11 11:06:34 321
原创 JVM垃圾回收器之CMS三色标记、增量更新与跨代引用
JVM垃圾回收器之CMS三色标记、增量更新与卡表Hello大家好,这里是残月。在上一篇关于JVM的文章中,我有讲到CMS的执行过程和优缺点,那么今天我们来深入了解一下其中一些底层细节方面的东西。1.三色标记什么是三色标记?实际上三色标记中的色并不只是颜色,而是我们对它的一种叫法,但是实际上他不会用red white 这种东西来定义,而是用例如0,1,2这样的东西来定义不同的对象。其实三色标记就是我们CMS在扫描过程中对对象的一种定义。那么具体的定义如下:黑色:表示对象已经被垃圾回收机制访问过或者对
2020-08-01 03:31:40 3570 4
原创 HashMap底层实现原理你都不知道?不是吧不是吧!
HashMap之底层实现机制和原理hello大家好,这里是残月。今天我将给大家讲解一下HashMap底层实现原理和机制。相信大家不管在面试大公司还是小公司也好,都会经常被问道HashMap的实现原理,可能有的小伙伴上来就说:“啊,我知道!HashMap1.7是数组加链表,1.8是数组加链表加红黑树!”。。。然后。。。然后就没了。PS:对不起,出门右转自己下电梯(⁼̴̀д⁼̴́)。其实要想搞懂HaspMap的底层实现原理其实很简单,对于有一定数据结构基础的小伙伴来说我们只需要知道他的扩容机制、hash算法
2020-07-28 18:02:41 1088
原创 JVM垃圾回收器之CMS回收过程及优缺点
JVM垃圾回收器之CMS回收过程及优缺点今天给大家介绍一下CMS垃圾回收器。首先CMS是一款多线程+分段操作的一款垃圾回收器。其最大的优点就是将一次完整的回收过程拆分成多个步骤,并且在执行的某些过程中可以使用户线程可以继续运行。也就是说CMS可以减少STW的时间对我们的用户体验会非常好,所以CMS垃圾回收器也是现在大部分企业所用到的最多的一款垃圾回收器。(CMS只管老年代)接下来我会给大家从浅到深讲解一下CMS垃圾回收器!一.CMS垃圾回收器的使用与执行过程想要使用CMS垃圾回收器非常简单,我们只需
2020-07-12 04:35:00 4560 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人