- 博客(22)
- 收藏
- 关注
原创 java 面试总结
jdk1.8对concurrentHashMap进行了优化升级,加入了红黑树数据结构,jdk1.8concurrentHashMap在初始话的时候里面的Node[] 数据并不会初始化,而是等第一次put的时候在初始化,当添加元素的时候会判断容器是否为空,当为空的时候使用CAS来保证线程安全,当不为空的时候使用synchronized,然后遍历桶中数据替换或更新。Vector 线程安全,使用synchronized保证线程安全,效率比较低,很少使用,初始容量10,按照原容量2倍扩容。
2023-05-04 15:34:30 183
原创 CentOS7重新安装yum
linux报错failure: repodata/repomd.xml from local_server: [Errno 256] No more mirrors to try服务器yum源更换
2022-08-19 16:16:39 2243
原创 linux网络、tcp、udp、cpu ,网络编程模型 、进程、线程总结
1、网络四层模型(1)、应用层主要有http、ftp、telent、DNS、smtp等等协议应用层包含会话层:用于数据加密、数据编码等等表示层:用户和其他节点建立关联(2)、传输层主要用户数据分组或重组,把报文数据转换成tcp、udp格式(3)、网络层把报文数据包装成ip的数据包,和路由包含ip、icmp等协议(4)、链路层数据链路层:把网络层传输的数据转换成二进制物理层:把数据包发送给物理媒体2、tcp协议(1)三次握手Tcp三次握手后即客户端和服务端连接已经建立(2)四次
2021-05-13 17:51:14 331
原创 mysql事务、索引、优化总结
Mysql事务和优化总结一、mysql事务1、原理:在进行数据的insert、update、delete等复杂的业务处理时,要不业务处理每个环节都成功,要么都失败。在mysql中使用了Innodb数据库引擎的数据库表才支持事务2、事务的特点:(1)、一致性在事务开启之前和事务结束之后,数据库的完整性没有被破坏。(2)、原子性一个事务(transaction)中的所有操作,要么全部成功,要么全部失败。(3)、隔离性数据库允许多个并发操作同时对其数据进行读写和修改的能力,隔离性可以防止多个事
2021-05-13 11:23:06 302
原创 RSA加密、解密 JAVA版 lua版 js版
安全加密总结一、近代密码学恩尼格玛密码机:(被人工智能之父图灵破解)核心使用了位移和替换算法,(这种方式的密码可以采用频度分析法进行破解)二、现代密码学1、加密方式(1)流加密对信息流中的每个元素(一个字母或一个bit)作为基本的处理单元进行加密最后拼接成密文(2)块加密先对信息流进行分块,再对每个块进行加密(3)举例例如原文为abcd、流加密先对a加密、再对b加密、再对c加密、再对d加密,最后吧加密后的数据拼接组成密文。块加密先对原文分块比如abc 作为第一块、然后d+xx+xx为第
2021-04-26 14:47:55 2940 3
原创 redis集群、数据结构、底层、算法等总结
Redis使用文档一、redis集群模式说明1、主从复制模式、哨兵模式、cluster高可用集群模式主从复制模式(1)工作原理Slave从节点服务启动并连接到Master之后,它将主动发送一个SYNC命令。Master服务主节点收到同步命令后将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave从节点服务在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master主节点继续将所有已
2021-04-20 16:25:11 324
原创 redis (cluster)集群搭建
集群搭建一、高可用集群(cluster)(一)、安装1、下载地址:http://redis.io/download2、安装#安装 gccyum install gcc把下载好的redis-5.0.2.tar.gz放在/usr/local文件夹下,并解压tar -zxvf redis-5.0.2.tar.gz进入到解压好的redis-5.0.2目录下,进行编译#make进入到redis-5.0.2/src目录下进行安装,安装完成验证src目录是否已经生成了redis-server和red
2021-04-12 16:34:34 130
原创 sar 查看 CPU 、内存、磁盘、网络
1.安装 # yum install sysstat2.使用 #sar -d -p 1 23.说明其中, “-d”参数代表查看磁盘性能,“-p”参数代表将 dev 设备按照 sda,sdb……名称显示,“1”代表每隔1s采取一次数值,“2”代表总共采取2次数值。await:平均每次设备 I/O 操作的等待时间(以毫秒为单位)。svctm:平均每次设备 I/O 操作的服务时间(以毫秒为单位)。%util:一秒中有百分之几的时间用于 I/O 操作。正常情况下 svctm 应该是小于 await 值
2021-04-08 14:34:28 2225
原创 linux网络流量查看
1.安装# yum install iftop2.查询网卡命令# ifconfig3.监控命令 iftop -i eth0 -Piftop使用参数说明:4.iftop 参数说明-i 设定监测的网卡,如:# iftop -i eth0-B 以bytes为单位显示流量(默认是bits),如:# iftop -B-n 使host信息默认直接都显示IP,如:# iftop -n-N 使端口信息默认直接都显示端口号,如: # iftop -N-F 显示特定网段的进出流量,如# ift
2021-04-08 14:27:34 192
原创 openresty集成kafka文档
Openresty集成kafka客户端1、参考网站 https://github.com/xiaoenai/lua-resty-kafka2、说明:lua-resty-kafka是Openresty集成kafka的一个客户端一、lua-resty-kafka集成到Openresty1、下载https://github.com/xiaoenai/lua-resty-kafka到本地2、复制kafka目录3、打开Openresty的如下目录粘贴kafka二、kafka客户端使用1、打..
2021-04-08 14:10:09 621
原创 Zookeeper总结
Zookeeper总结一、Zookeeper说明zookeeper是一个分布式协调事物框架,主要用来解决分布式集群服务系统中数据一致性问题、分布式集群环境中高并发(分布式锁)问题等。Zookeeper本身是一个分布式的小型文件系统,提供类似于linux目录树的存储结构,数据在每个节点是通过日志的形式最终持久化到磁盘和内存中的DataTree中,提高查询效率。Zookeeper保证的是CAP中的cp,最终一致性,C(一致性),A(可用性),P(分区容错性)Zookeeper集群节点类型:leaderr(
2021-03-29 18:21:22 115
原创 Openresty lua集成etcd客户端
Openresty集成etcd客户端1、参考网站 luarocks https://blog.csdn.net/hp_cpp/article/details/106985342 linux2、参考网站luarocks https://blog.csdn.net/weixin_34236497/article/details/94065935 Windows 103、luarocks 依赖 MinGW4、lua-resty-etcd git地址 https://github.com/feng..
2021-03-25 16:59:43 952
原创 quartz集群使用遇到问题解决
quartz集群部署 s still active but was recovered by another instance in the cluster问题源码分析解决问题如下在集群启动的时候包如下错误2021-03-21 14:49:22.984 WARN 12516 — [_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore [3334] : This scheduler instance (scsp-1.novalocal1616
2021-03-23 14:19:58 4052 2
原创 spring、Ioc和Aop两大核心源码分析
Spring总结一、SpringIOC1、IOCSpring ioc即控制反转,ioc容器负责实例化、定位、配置应用程序中的对象及建立这些对象的依赖,交给spring容器统一进行管理,从而达到解耦的目的2、IOC实现原理及源码分析(1)、整体流程图(2)、源码分析首先进行源码搭建,搭建过程在上一篇博客请查看:https://blog.csdn.net/weixin_37601506/article/details/114878397?spm=1001.2014.3001.5501在源码工程
2021-03-20 16:07:46 660
原创 spring5.0.x源码搭建
spring5.0.x源码搭建1.下载源码 https://codeload.github.com/spring-projects/spring-framework/zip/5.0.x2.下载源码对应的gradle https://services.gradle.org/distributions/gradle-4.4.1-bin.zip配置gradle解压 gradle-4.4.1-bin.zip配置环境变量配置Path解压spring源码到不含中文路径的目录配置阿里云 下载包地址
2021-03-16 17:20:42 346
原创 JAVA 常见集合总结
Java常用集合一、数据结构1、数组时间负载度为o(1),空间复杂度为哦o(n) ,所以查询比较快,删除,插入、更新比较慢2、链表时间复杂度为o(n)因为要一条一条去比较,空间复杂度为o(1),所以查询比较慢,删除,插入、更新比较快3、Hash表所有复杂度都为o(1),唯一不好有hash冲突,但它不是有序的,无法进行范围查询4、二叉树对一棵相对平衡的有序二叉树,对其进行插入,查找,删除等操作,平均复杂度均为O(logn)5、红黑树(平衡树)平衡树虽然也很好,但它每一次的插入和删除都可能
2021-03-12 17:55:12 711
原创 Mybatis 总结源码分析
Mybatis总结一、mybatis简介1、说明Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高2、使用场景由于MyBatis专注于SQL本身,灵活度高,所以比较适合对性能的要求很高,或者需求变化较多的项目,如互联网项目3、优缺点1、优点(1)基于SQL语句编程,灵活度高、可重用性强(2)支持多种数据库(3)与传统jdbc相比较,减
2021-03-10 18:48:46 163 2
原创 Java-JVM总结
Java-JVM总结一、jvm说明部分1、jvm内存结构图2、内存结构说明(1)程序计数器用于存储程序在执行时当前线程所执行的字节码的行号指示器。字节码解释器工作是就通过改变这个计数器的值来选取下一条需要执行的字节码指令、分支,循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。在任何一个确定的时刻,一个处理器只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,这个区域属于线程私有。如
2021-03-05 18:12:06 191
原创 常见的各种锁总结
常见的各种锁一、常见锁简单说明1、悲观锁悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,在获取数据的时候先加锁,确保数据的安全性。锁实现:关键字synchronized、Lock接口的实现使用场景:写操作比较多,先加锁可以保证写操作时数据正确2、乐观锁乐观锁认为自己在使用数据的时候不会被别的线程修改,所以不会添加锁,只是在更新的时候去判断之前有没有别的线程更改过这个数据锁实现:CAS算法,例如AtomicInteger类的原子自增底层是通过CAS实现的使用场景:读多,不加锁的特点能
2021-03-03 16:17:08 5315 5
原创 一次企业级日志中心ELK搭建
企业级日志中心ELK部署清单一、版本说明Jdk1.8、Elasticsearch6.5.4、Logstash6.5.4、Kibana6.5.4、kafka2.11.1、Filebeat6.5.4相应的版本最好下载对应插件二、搭建架构相关地址:官网地址:https://www.elastic.co官网搭建:https://www.elastic.co/guide/index.html三、实施部署下载并上传软件包到对应机器上1、Elasticsearch集群部署系统类型:Centos7.5
2021-03-01 09:43:53 854
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人