12 2021 档案
摘要:prometheus安装 官网地址:https://prometheus.io/docs/prometheus/latest/installation/ 配置文件: global: scrape_interval: 15s scrape_timeout: 10s evaluation_interva
阅读全文
摘要:活跃性: 线程代码无法执行完成. 分为3种情况:死锁、活锁、饥饿 死锁 一个线程需要同时获取多把锁,这时就容易发生死锁 死锁案例和查看方法:https://www.cnblogs.com/mpyidudu/p/15628517.html 活锁 活锁出现在两个线程互相改变对方的结束条件,最后谁也无法结
阅读全文
摘要:基本使用 它们是 LockSupport 类中的方法, 可以先unpark 再park // 暂停当前线程 LockSupport.park(); // 恢复某个线程的运行 LockSupport.unpark(暂停线程对象) 与 Object 的 wait & notify 相比 wait,not
阅读全文
摘要:定义 与前面的保护性暂停中的 GuardObject 不同,不需要产生结果和消费结果的线程一一对应 消费队列可以用来平衡生产和消费的线程资源 生产者仅负责产生结果数据,不关心数据该如何处理,而消费者专心处理结果数据 消息队列是有容量限制的,满时不会再加入数据,空时不会再消耗数据 JDK 中各种阻塞队
阅读全文
摘要:定义 即 Guarded Suspension,用在一个线程等待另一个线程的执行结果 要点 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject 如果有结果不断从一个线程到另一个线程那么可以使用消息队列(见生产者/消费者) JDK 中,join 的实现、Future
阅读全文
摘要:原理 Owner 线程发现条件不满足,调用 wait 方法,即可进入 WaitSet 变为 WAITING 状态 BLOCKED 和 WAITING 的线程都处于阻塞状态,不占用 CPU 时间片 BLOCKED 线程会在 Owner 线程释放锁时唤醒 WAITING 线程会在 Owner 线程调用
阅读全文
摘要:Java 对象头 普通对象:占8个字节 数组对象:占12个字节 Mark Word结构 32位虚拟机下:MarkWord有4个字节 最后2个bit位表示状态 64位虚拟机下:MarkWord有8个字节 最后2个bit位表示状态 状态 说明 01 无锁 00 轻量级锁 10 重量级锁 11 标记为GC
阅读全文
摘要:在不同层面上解读线程状态就可以得到不同的结果 操作系统层面:五种状态 Java API层面: 六种状态 五种状态 【初始状态】 仅是在语言层面创建了线程对象,还未与操作系统线程关联 【可运行状态】 (就绪状态)指该线程已经被创建(与操作系统线程关联),可以由 CPU 调度执行 【运行状态】 指获取了
阅读全文
摘要:进程和线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。 进程就可以视为程序的
阅读全文
摘要:组价介绍 导航栏工具: 请求栏: 代理设置 mac电脑代理设置 查看charles代理服务器的IP和端口 IP地址: 端口: mac电脑设置代理服务器:打开系统偏好设置 --》 高级 charles软件弹出窗口 选择同意即可。 如果charles在对应的mac电脑上, 可以直接选择 macOS Pr
阅读全文
摘要:缓存的概念 缓存就是数据交换的缓冲区(称作:Cache),当用户要获取数据的时候,会先从缓存中去查询获取数据,如果缓存中有就会直接返回给用户,如果缓存中没有,则会发请求从服务器重新查询数据,将数据返回给用户的同时将数据放入缓存,下次用户就会直接从缓存中获取数据。 缓存其实在很多场景中都有用到,比如:
阅读全文
摘要:早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。那么如何将不同用户的请求流量分发到不同的服务器上呢? 负载均衡的作
阅读全文
摘要:正向代理和反向代理区别 正向代理代理的对象是客户端,反向代理代理的是服务端,这是两者之间最大的区别。 Nginx即可以实现正向代理,也可以实现反向代理。 Nginx正向代理 服务端的设置: http { log_format main 'client send request=>clientIp=$
阅读全文
摘要:Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能。主要的作用是用来实现URL的重写 注意:Nginx服务器的Rewrite功能的实现依赖于PCRE的支持,因此在编译安装Nginx服务器之前,需要安装PCRE库。Nginx使用的是ngx_http_rewrit
阅读全文
摘要:配置指令 listen指令 listen: 用来配置监听端口。 listen 127.0.0.1:8000; # listen localhost:8000 监听指定的IP和端口 listen 127.0.0.1; # 监听指定IP的所有端口 listen 8000; # 监听指定端口上的连接 li
阅读全文
摘要:默认配置 #全局块,主要设置Nginx服务器整体运行的配置指令 worker_processes 1; #events块,主要设置,Nginx服务器与用户的网络连接,这一部分对 Nginx服务器的性能影响较大 events { worker_connections 1024; } #http块,是N
阅读全文
摘要:问题 如果想对Nginx的版本进行更新,或者要应用一些新的模块,最简单的做法就是停止当前的Nginx服务,然后开启新的Nginx服务。但是这样会导致在一段时间内,用户是无法访问服务器。为了解决这个问题,我们就需要用到Nginx服务器提供的平滑升级功能。这个也是Nginx的一大特点,使用这种方式,就可
阅读全文
摘要:官网:http://nginx.org/en/download.html 下载最新的稳定版本 环境准备 gcc Nginx是使用C语言编写的程序,因此想要运行Nginx就需要安装一个编译工具。GCC就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了C语言。 # 查看gcc版本 gcc -
阅读全文
摘要:brew install erlang brew install rabbitmq # 启动 sh /opt/homebrew/opt/rabbitmq/sbin/rabbitmq-server 访问:http://localhost:15672/ 账号信息: guest guest
阅读全文
摘要:官方地址:https://github.com/apache/rocketmq-dashboard git clone https://github.com/apache/rocketmq-dashboard.git mvn spring-boot:run 修改配置文件 指定NameSrv地址 ro
阅读全文
摘要:参考:https://lilu.org.cn/2021/08/03/javaee/tomcat/idea-run-tomcat9/ 使用tomcat8.5.x版本 和 jdk1.8 导入pom.xml <?xml version="1.0" encoding="UTF-8"?> <project x
阅读全文
摘要:找不到或无法加载主类 java.lang.ClassNotFoundException 配置JAVA_HOME系统参数 修改启动脚本 与zulu jdk 兼容性问题 no suitable image found. Did find: /private/var/folders/g0/cmvkzm9x
阅读全文
摘要:原文出处:https://www.open-open.com/lib/view/open1420814127390.html 引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下: Java服务的JVM堆大小设置为6g, 一个监控进程占用大约 600m, Linux自身使
阅读全文
摘要:总结 类型 命令 整机 top CPU vmstat 内存 free CPU vmstat 硬盘 df 磁盘IO iostat 网络IO ifstat 整机 具体命令 说明 top 系统整体性能 CPU 具体命令 说明 vmstat -n 2 3 查看CPU信息 每2秒打印1次 打印3次 mpsta
阅读全文
摘要:模式死锁 public class DeadLockDemo { public static void main(String[] args) { String lockA = "lockA"; String lockB = "lockB"; new Thread(new HoldLock(lock
阅读全文

浙公网安备 33010602011771号