摘要:
1.拉镜像 docker pull mysql:5.7 2.运行容器 docker run --name mysql --restart always --privileged=true -p 3306:3306 -v /usr/local/mysql/conf/:/etc/mysql/mysql. 阅读全文
摘要:
3.1 性能优化简介 不合适的测量方式:1)在错误的时间启动和停止测量;2)测量的是聚合后的信息,而不是目标活动本身; 优化任务的执行时间,最好的办法是测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的效率。 3.1.1 通过性能剖析进行优化性能剖析一般两个 阅读全文
摘要:
1、Mysql逻辑架构 1.1 三层架构 第一层:服务层,连接处理、授权认证、安全认证等;第二层:查询解析、分析、优化、缓存等;第三层:存储引擎,负责数据存储和提取; 1.2 并发控制 1.2.1 读写锁:读锁又叫共享锁,读锁是共享的,相互不阻塞的,多个客户在同一时刻可以同时读取同一个资源,互不干扰 阅读全文
摘要:
一、问题引入 现在有这样一个场景:假设我们想邀请一位明星,那么一般我们不是直接联系明星,而是联系明星的经纪人,通过经纪人建立和明星的合作。在这里,明星就是一个目标对象,他只要负责活动演出就行了,而其他琐碎的事情就交给他的代理人(经纪人)来解决。这就是代理模式在现实中的一个应用场景。 同样地,假如我们 阅读全文
摘要:
一、HTTPS简介 HTTP我们已经很了解了,其实HTTPS,即HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。 SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(S 阅读全文
摘要:
最近项目后台管理系统出现问题,页面刷新没有数据,记录一下排查和解决的过程。 一、现象 1、后台页面没有数据,刷新也不起作用。 2、查看浏览器页面接口返回消息,后台接口报错500。初步定为应该后台接口出了问题。 3、检查后台服务,hystrix报time out,应该相关服务超时。 二、问题分析 1、 阅读全文
摘要:
一、拉镜像 #docker pull nginx 二、创建并启动容器 docker run -p 8443:443 --name nginx8443 \ -v /usr/local/docker/nginx8443/html:/usr/share/nginx/html \ -v /usr/local 阅读全文
摘要:
一、问题引入 在面向对象程序设计中,经常会遇到这种情况:知道了一个过程的关键步骤,且确定了这些步骤的执行顺序,但某些步骤的具体实现未知,或者说某些步骤的实现与具体的环境相关。这种情况下就可以使用模板模式。 例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对工作人员评分等,其中取 阅读全文
摘要:
一、CAS简介 CAS:Compare and Swap, 翻译成比较并交换。java.util.concurrent(JUC)包中借助CAS实现了区别于synchronized同步锁的一种乐观锁,使用这些类在多核CPU的机器上会有比较好的性能。 CAS有3个操作数,内存值V,旧的预期值A,要修改的 阅读全文
摘要:
线程中断 线程中断即线程运行过程中被其他线程给打断了,它与stop最大的区别是:stop是由系统强制终止线程,而线程中断则是给目标线程发送一个中断信号,如果目标线程没有接收线程中断的信号并主动结束线程,线程则不会终止。具体是否退出或执行其他逻辑则由目标线程自行决定。 线程状态 一般地,操作系统线程有 阅读全文
摘要:
前言 最近项目需要对接银行系统,对方提供了一些jar包,这些三方jar是没有上传到中央仓库的,所以无法直接在maven中依赖,因此决定搭建一个Maven私服来处理。 maven仓库的使用结构如下图: 通常,我们开发项目并没有使用到虚线标识的那两部分,基本都是通过本机的Maven直接访问中央仓库,下载 阅读全文
摘要:
一、Sharding-jdbc介绍 1、简介 Sharding-jdbc是当当网开源的一款客户端代理中间件。Sharding-jdbc包含分库分片和读写分离功能。对应用的代码没有侵入型,几乎没有任何改动,兼容主流orm框架,主流数据库连接池。目前属于Apache的孵化项目ShardingSphere 阅读全文
摘要:
一、OAuth2认证 OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该token(令牌)在限定时间、限定范围访问指定资源。 OAuth2相关概念: 资源所有者(resources own 阅读全文
摘要:
一、Http协议无状态 HTTP是一个基于TCP/IP通信协议来传递数据的。它是无连接和无状态的。无连接:限制每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端的应答后,断开连接。采用这种方式可以节省传输时间。无状态:协议对于客户端请求的处理没有记忆能力。也就是说这一次请求和上一次请求是 阅读全文
摘要:
一、线程不安全 当多个线程访问统一资源时,如果没有做线程同步,可能造成线程不安全,导致数据出错。举例: @Slf4j public class ThreadUnsafe { // 用于计数的统计变量 private static int count = 0; // 线程数量 private stat 阅读全文
摘要:
一、原子性、可见性和有序性 Java内存模型主要是围绕着线程并发过程中如何处理原子性、可见性和顺序性这三个特征来设计的。 1、原子性 原子性表示任意时刻只有一个线程可以执行某一段功能代码,以防止多个线程同时访问某些共享数据时,造成错误。 2、可见性 可见性是指一个线程修改了某个共享变量后,其他线程能 阅读全文
摘要:
一、docker部署单个服务 1、Idea安装docker插件 首先给Idea安装docker插件,方式为:File ——> Settings ——> Plugins,安装后重启IDE 2、配置远程docker主机 1)首先登陆远程docker主机,修改配置文件 /usr/lib/systemd/s 阅读全文
摘要:
最近项目中需要判定客户端是否还在线,需要用到心跳检测机制。这里做个笔记总结一下。 心跳检测机制: 网络中接收和发送数据都是通过操作系统的socket实现的。但是如果套接字已经断开,那发送和接收数据就会出问题。但如何判断套接字是否断开了呢?这就需要建立一种机制,能够检测通信对方是否还存活。如果已经断开 阅读全文
摘要:
一、RabbitMQ集群概念 RabbitMQ 有三种模式:单机模式,普通集群模式,镜像集群模式。单机模式即单独运行一个 rabbitmq 实例,而集群模式需要创建多个 rabbitmq实例。 1、普通集群模式 概念:默认的集群模式。需要创建多个 RabbitMQ 节点。但对于 Queue 和消息来 阅读全文
摘要:
一、logback + elk,tcp方式发送 环境搭建参考上一篇博客:https://www.cnblogs.com/alan6/p/11667758.html tcp方式存在的问题:tcp方式在日志量比较大,并发量较高的情况下,可能导致日志丢失。可以考虑采用 kafka 保存日志消息,做一个流量 阅读全文