keepalived配置文件 一、配置文件说明第一部分:全局定义块1、email通知。作用:有故障,发邮件报警。2、Lvs负载均衡器标识(lvs_id)。在一个网络内,它应该是唯一的。3、花括号“{}”。用来分隔定义块,因此必须成对出现。如果写漏了,keepalived运行时,不会得到预期的结果。由于定义块内存在嵌套关系,因此很容易遗漏结尾处的花括号,这点要特别注意。 123456789101112131415global_d 2021-05-05 服务器 > 高可用 #keepalived
rocketmq入门学习 一、概念特性1.1 概念1 消息模型(Message Model) RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broke 2021-04-22 服务器 > mq #rocketmq
aqs之Java8 Unsafe类解析 一、介绍Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,比如 直接访问系统内存资源 自主管理内存资源等 可以使用Unsafe的native方法间接访问底层方法,增强Java语言底层资源操作能力方面起到了很大的作用。通过native使Unsafe有操作内存空间的能力,这也增加了程序发生相关指针问题的风险。在程序中过度、不正确使用Unsafe类会使得程 2020-10-18 后端 > java #并发编程
aqs之Java8 CyclicBarrier源码分析 一、介绍让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障 12345678910111213141516171819202122private static CyclicBarrier c=new CyclicBarrier(); public static void main(String[] args) { new Thread(new Run 2020-10-14 后端 > java #aqs #源码
aqs之Java8 CountDownLatch源码分析 一、介绍一种同步辅助,允许一个或多个线程等待其他线程中执行的一组操作完成。 CountDownLatch使用给定的计数初始化。由于调用了countDown方法,await方法一直阻塞到当前计数为零,在此之后,所有等待线程被释放,await的任何后续调用立即返回。这是一种一次性现象——计数无法重置。如果您需要一个可以重置计数的版本,请考虑使用CyclicBarrier。 例子: 123456789 2020-10-13 后端 > java #aqs #源码
aqs之Java8 ReentrantLock源码分析 一、介绍一个可重入互斥锁,其基本行为和语义与使用同步方法和语句访问的隐式监视锁相同,但具有扩展功能。 ReentrantLock由上次成功锁定但尚未解锁的线程拥有。当锁不属于另一个线程时,调用锁的线程返回成功则获得锁。如果当前线程已经拥有锁,该方法将立即返回。 公平锁: 在争用状态下,锁倾向于将访问权授予等待时间最长的线程。使用公平锁被多个线程访问的程序可能显示较低的总体吞吐量 非公平锁: 此 2020-10-11 后端 > java #aqs #源码
aqs之Java8 Semaphore源码分析 一、介绍Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 Semaphore的构造方法Semaphore(int permits)接受一个整型的数字,表示可用的许可证数量。Semaphore(10)表示允许10个线程获取许可证,也就是最大并发数是10。 Semaphore的acquire()方法获取一个许可证,使用完之后调用relea 2020-10-11 后端 > java #aqs #源码
aqs之Java8 ReadWriteLock源码分析 一、介绍ReentrantReadWriteLock 可重入的读写锁。读写锁的特点读读之间不互斥,读写或写写之间是互斥的。 ReentrantReadWriteLock 中的读取锁是共享锁,写入锁是独占锁。写锁只有一个线程能获取到,而读锁可以多个线程同时获取 ReentrantReadWriteLock 利用一个低16位表示排他(写)锁定计数,高16位表示共享(读)锁计数的锁状态,来控制锁的读写顺 2020-10-11 后端 > java #aqs #源码
aqs之Java8 Condition源码分析 一、介绍Object的监视器方法 在使用synchronized获取到锁的前提下,通过Object的wait、notify、notifyAll可以在多线程场景下做到并发控制 1234567891011121314151617181920212223242526272829303132public void testWaitNotify() throws InterruptedException & 2020-09-30 后端 > java #aqs #源码
ActiveMQ介绍与架构说明 一、介绍Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。 二、ActiveMQ持久化在ActiveMQ 中,持久化是指对消息数据的持久化。在ActiveMQ 中,默认的消息是保存在内存中的。当内存容量不足的时候,或ActiveMQ 正常关闭的时候,会将内存中 2020-09-29 服务器 > mq #activemq