曼哈顿计划
hhcccchh
这个作者很懒,什么都没留下…
展开
-
centos 8 steam docker install rabbitmq
查找镜像带有可视化界面[root@VM-0-15-centos ~]# docker search rabbitmq:managementNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmacintoshplus/rabbitmq-management Based on.转载 2021-03-30 11:32:10 · 183 阅读 · 0 评论 -
centos8 stream install docker
使用DNF添加并启用官方Docker CE存储库。在终端窗口中输入以下命令: 安装containerd.io包手动 安装最新版docer ce 启用docker 添加当前用户加入docker用户组 关闭防火墙 重新登录,可以使用了 sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.reposudo dnf install原创 2021-03-30 10:10:16 · 1178 阅读 · 1 评论 -
20200808 linux搭建zookeeper集群
搭建zookeeper集群(一主两从)zk启动依赖java的JDK,所以要先安装JDK不会安装JDK的可以看这https://www.jianshu.com/p/ea5c72b273d7教程,安装完成JDK后下载zk的tar包并使用winSCP上传到3台linux服务器https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/开始搭建zookeeper集群(一主两从)我启动了3台linux服务器,IP分别是192.168.79.1转载 2020-08-08 14:57:07 · 398 阅读 · 0 评论 -
20200607 spring常见面试
面试题1. Spring中bean的循环依赖怎么解决?(一). 首先说一下什么是Spring的循环依赖:其实就是在进行getBean的时候,A对象中去依赖B对象,而B对象又依赖C对象,但是对象C又去依赖A对象,结果就造成A、B、C三个对象都不能完成实例化,出现了循环依赖。就会出现死循环,最终导致内存溢出的错误。(二).如何去解决Spring的循环依赖呢?1.先知道什么是Spring的“三级缓存”:就是下面的三个大的Map对象,因为Spring中的循环依赖的理论基础其实是基于java中的值传递的,转载 2020-06-07 21:56:24 · 242 阅读 · 0 评论 -
20200607 MYSQL基础面试
事务四大特性(ACID)原子性、一致性、隔离性、持久性? 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 一致性(Consistency) 事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B却没收到。 隔离性(Isolation) 隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开转载 2020-06-07 21:35:42 · 170 阅读 · 0 评论 -
20200512 JVM监控命令详解(转)
JVM监控命令基本就是jps、jstack、jmap、jhat、jstat几个命令的使用就可以了JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lo...转载 2020-05-12 15:05:36 · 230 阅读 · 0 评论 -
20200512 10分钟看懂, Java NIO 底层原理
1.1. JavaIO读写原理无论是Socket的读写还是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。在原理上和处理流程上,都是一致的。区别在于参数的不同。用户程序进行IO的读写,基本上会用到read&write两大系统调用。可能不同操作系统,名称不完全一样,但是功能是一样的。先强调一个基础知识:read系统调用,并不是把数据直接从物理设备,读数据到内存。write系统调用,也不是直接把数据,写入到物理.转载 2020-05-12 10:18:19 · 180 阅读 · 0 评论 -
20200510 redission入门
我们现在看到的就是redission官方网站https://redisson.org首页可以看出来,redisson可以实现很多东西,在redisson的基础上,redisson做了超多的封装,我们看一下,例如说Spring Cache,TomcatSession,Spring Session,可排序的Set,还有呢Sortedsort,下面还有各种队列,包括这种双端队列,还有map,这些是数据结构,下面就是各种锁,读写锁,这里面的锁还包含,可重入锁,还有CountDownLant...转载 2020-05-10 19:35:09 · 219 阅读 · 0 评论 -
20200510 分布式锁的几种实现
分布式锁很久之前有讲过并发编程中的锁并发编程的锁机制:synchronized和lock。在单进程的系统中,当存在多个线程可以同时改变某个变量时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线程结束同步代码块取消标记后再去尝试设置标记。分布式环境下转载 2020-05-10 12:56:12 · 136 阅读 · 0 评论 -
20200510 深入理解SPI机制
一、什么是SPISPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI机制。我们先通过一个很简单的例子来看下它是怎么用的。1、小栗子首先,我们需要定义一个接口,SPIServicepackage com.viewscenes.netsupervisor.sp.转载 2020-05-10 08:40:46 · 204 阅读 · 0 评论 -
20200509 Curator入门
简介Curator是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等等。Patrixck Hunt(Zookeeper)以一句“Guava is to Java that Curator to Zookeeper” 给Curator予高度评价。Curator的maven依赖:一般直接使用curator-recipes就行了,如果需要自己封装一些底层些的功.转载 2020-05-09 17:09:05 · 170 阅读 · 0 评论 -
20191219深入分析分布式系统中互斥性与幂等性问题
随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩、可扩展等目标就显得越发重要。为了解决这一系列问题,系统架构也在不断演进。传统的集中式系统已经逐渐无法满足要求,分布式系统被使用在更多的场景中。分布式系统由独立的服务器通过网络松散耦合组成。在这个系统中每个服务器都是一台独立的主机,服务器之间...转载 2019-12-20 16:31:04 · 107 阅读 · 0 评论 -
20191218JDK和CGLIB动态代理区别
前言Spring代码实例:https://github.com/yihonglei/spring-studyJDK动态代理实现原理(jdk8):https://blog.csdn.net/yhl_jxy/article/details/80586785CGLIB动态代理实现原理:https://blog.csdn.net/yhl_jxy/article/details/80633194...转载 2019-12-18 17:24:59 · 142 阅读 · 0 评论 -
20191212浅析JAVA的垃圾回收机制(GC)
1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身。换言之,垃圾回收只会负责释放那些对象占有的内存。对象是个抽象的词,包括引用和其占据的内存空间。当对象没有任何引用时其占据的内...转载 2019-12-12 16:51:25 · 336 阅读 · 0 评论 -
20191212我以为我对Mysql索引很了解,直到我遇到了阿里的面试官
本文来自一位不愿意透露姓名的粉丝投稿相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。但是,我还是图样图森破,直到我被阿里的面试官虐...转载 2019-12-12 14:51:39 · 81 阅读 · 0 评论 -
20191210双亲委派模型,类的加载机制,搞定大厂高频面试题
文章内容相对较长,所以添加了目录,如果你希望对 Java 的类加载过程有个更深入的了解,同时增加自己的面试技能点,请耐心读完......双亲委派模型在介绍这个Java技术点之前,先试着思考以下几个问题:为什么我们不能定义同名的 String 的 java 文件? 多线程的情况下,类的加载为什么不会出现重复加载的情况? 热部署的原理是什么? 下面代码,虚拟机是怎样初始化注册 Mys...转载 2019-12-10 17:32:39 · 128 阅读 · 0 评论 -
20191210MySQL索引原理及慢查询优化
背景MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最...转载 2019-12-10 14:46:34 · 114 阅读 · 0 评论 -
20191210之MySQL事务隔离的底层实现
回顾在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别。读未提交:一个事务可以读取到另一个事务未提交的修改。这会带来脏读、幻读、不可重复读问题。(基本没用)读已提交:一个事务只能读取另一个事务已经提交的修改。其避免了脏读,但仍然存在不可重复读和幻读问题。可重复读:同一个事务中多次读取相同的数据返回的结果是一样的。其避免...转载 2019-12-10 10:07:53 · 109 阅读 · 0 评论 -
20191209知乎之Java内存模型(JMM)总结
Java内存模型(JMM)我们常说的JVM内存模式指的是JVM的内存分区;而Java内存模式是一种虚拟机规范。Java虚拟机规范中定义了Java内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其...转载 2019-12-09 16:54:18 · 490 阅读 · 0 评论 -
20191206Java内存模型、Java内存模型的作用以及Java中内存模型做了什么事情
Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么要有Jav...转载 2019-12-06 14:30:27 · 89 阅读 · 0 评论 -
20191129说几种实现幂等的方式
什么是幂等性?对于同一笔业务操作,不管调用多少次,得到的结果都是一样的。幂等性设计我们以对接支付宝充值为例,来分析支付回调接口如何设计?如果我们系统中对接过支付宝充值功能的,我们需要给支付宝提供一个回调接口,支付宝回调信息中会携带(out_trade_no【商户订单号】,trade_no【支付宝交易号】),trade_no在支付宝中是唯一的,out_trade_no在商户系统中是唯...转载 2019-11-29 17:03:27 · 300 阅读 · 0 评论 -
20191129HashMap,HashTable,ConcurrentHashMap的实现原理及区别
一.哈希表哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。链式哈希表从根本上说是由一组链表构成。每个链表都可以看做是一个“桶”,我们将所有的元素通过散列的方式放到具体的不同的桶中。插入元素时,首先将其键传入一个哈希函数(该过程称为哈希键),函数通过散列的方式告知元素属于哪个“桶”,然后在相应的链表头插入元素。查找或删...转载 2019-11-29 16:15:06 · 76 阅读 · 0 评论 -
20191118文件共享の网络密码不正确
gpedit.mscwindows+r,输入gpedit.msc,打开本地组策略编辑器,依次选择计算机配置-windows设置-安全设置-本地策略-安全选项选择“网络访问:本地账户的共享和安全模型”,选择“经典=对本地用户进行身份验证,不改变其本来身份”。“网络安全:Lan管理器身份验证级别”,选择“发送LM和NTML响应(&)”。...原创 2019-11-18 16:26:24 · 1532 阅读 · 0 评论 -
20191118のadb server version (31) doesn't match this client (41) ;could not read ok from ADB Server
使用idea测试Android的时候,提示:adb server version (31) doesn't match this client 错误如果你的电脑安装了鲁大师手机助手,360手机助手,就占用了adb的端口。因为套接字的唯一性(一个套接字只能由 协议/网络地址/端口号 唯一确定 ),一个电脑只能有一个程序关联对应的端口,对于adb对应的端口就是5037。为了验证你的50...原创 2019-11-18 14:30:02 · 209 阅读 · 0 评论 -
20191021 设计图都不会画,还想做”架构师“?
什么是系统架构师?系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。架构师在软件开发的整个过程中起着很重要的作用。如何才能成为系统架构师?首先必须具有丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去。 其次...转载 2019-10-21 20:29:21 · 201 阅读 · 0 评论 -
20190927使用serlvet模拟form表单提交测试demo
测试页面form<form action="jsonRedirect.do" id="f1" name="f1" method="post"> <table width="70%" cellspacing="1" border="0"> <tbody> <tr> <td class="info...原创 2019-09-27 15:14:21 · 151 阅读 · 0 评论 -
20190710SPRINGBOOT统一异常处理
package com.wh.controller;import lombok.extern.slf4j.Slf4j;import org.springframework.http.HttpStatus;import org.springframework.http.converter.HttpMessageNotReadableException;import org.springf...原创 2019-07-10 16:43:01 · 86 阅读 · 0 评论 -
20190626SQL基础
1.join, inner join, left join, right join, full join的区别inner join可以简写为join连接分为两种:内连接与外连接。A.内连接内连接,即最常见的等值连接,例:SELECT *FROM TESTA,TESTBWHERE TESTA.A=TESTB.A等价于select * from testa inne...转载 2019-06-26 20:47:38 · 67 阅读 · 0 评论 -
20190529面试设计模式1
不管是参加Java面试还是C#面试,设计模式和软件设计都是任何编程面试中的必问问题。实际上,编程能力和设计技巧是对彼此很好的补充。一个好的程序员通常都是一个好的软件设计人员。他们知道怎么把一个问题分割成一段段代码或者软件设计,但这些能力和技巧并不能凭空而来。你需要持续做大型、小型系统的设计和编码,并且不断从错误中学习。从面向对象设计原则开始是一个不错的选择。好吧,这篇文章是关于一些在各种面试中频...转载 2019-05-29 17:14:34 · 122 阅读 · 0 评论 -
20190526面试SPRING事务
事务概念回顾什么是事务?事物是逻辑上的一组操作,要么都执行,要么都不执行.事物的特性(ACID): 原子性:事物是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性:执行事物前后,数据保持一致; 隔离性:并发访问数据库时,一个用户的事物不被其他事物所干扰,各并发事物之间数据库是独立的; 持久性:...转载 2019-05-26 23:53:41 · 101 阅读 · 0 评论 -
20190513面试红黑树
1.什么是红黑树红黑树是一种自平衡的二叉树,除了符合二叉树的基本特性外,还有一些附加特性:1.节点是红色或黑色。 2.根节点是黑色。 3.每个叶子节点都是黑色的空节点(NIL节点)。 4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) 5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。有了这些限制,才保证了红黑树的自平衡,红黑...原创 2019-05-13 16:06:51 · 182 阅读 · 0 评论 -
20190514面试SPRING的IOC
1.什么是IOCIoC(Inversion of Control)控制反转,包含了两个方面:一、控制。二、反转控制指的是:当前对象对内部成员的控制权。 反转指的是:这种控制权不由当前对象管理了,由其他(类,第三方容器)来管理。.IOC和DI的区别:(1)Ioc:控制反转,把创建对象交给Spring进行配置(2)DI:依赖注入,向类里面的属性中设置值(3)二者关系:DI不能单...转载 2019-05-19 01:06:47 · 77 阅读 · 0 评论 -
20190521面试Redis基础
1、什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅...转载 2019-05-26 23:26:57 · 70 阅读 · 0 评论 -
20190520面试Java agent
JAVA AGENT的启动方式为java -javaagent:XXX.jar ddd.jarJAVA AGENT的主要功能如下可以在加载java文件之前做拦截把字节码做修改 可以在运行期将已经加载的类的字节码做变更,但是这种情况下会有很多的限制,后面会详细说 获取所有已经被加载过的类 获取所有已经被初始化过了的类(执行过了clinit方法,是上面的一个子集) 获取某个对象...转载 2019-05-20 23:51:05 · 163 阅读 · 0 评论 -
20190514面试SPRING的AOP
33Spring AOP的概念面向切面的编程,是一种编程技术,是OOP(面向对象编程)的补充和完善。OOP的执行是一种从上往下的流程,并没有从左到右的关系。因此在OOP编程中,会有大量的重复代码。而AOP则是将这些与业务无关的重复代码抽取出来,然后再嵌入到业务代码当中。常见的应用有:权限管理、日志、事务管理等。实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,...转载 2019-05-20 23:22:16 · 88 阅读 · 0 评论 -
20190514面试SPRING扩展机制
1.SPRING扩展机制通过基于XML和基于Java的配置扩展,可以使用户通过Spring使用我们研发的组件,提供很好的易用性。 通过Spring容器最常用的两个扩展点:BeanFactoryPostProcessor和BeanPostProcessor,可以使我们的程序逻辑和Spring容器紧密合作,无缝插入到用户bean的生命周期中,发挥更强大的作用。2.spring的扩展接口1....原创 2019-05-15 23:44:05 · 526 阅读 · 0 评论 -
20190715LOMBOK
lombok 是什么? lombok 是一个非常神奇的 java 类库,会利用注解自动生成 java Bean 中烦人的 Getter、Setting,还能自动生成 logger、ToString、HashCode、Builder 等 java 特色的函数或是符.<dependencies> <dependency> <groupId>org.pro...转载 2019-07-15 16:56:27 · 70 阅读 · 0 评论 -
20190712SPRINGBOOT环境隔离
多环境配置是一件非常重要的事情,在日常开发过程中,我们都会有多套开发环境,比如在本地快速开发自测,然后提交到测试环境让专门的人来测试验收,测试环境验收完毕之后再上线到线上环境提供服务,这是比较标准的开发流程,也相应的需要多套开发环境的配置,本文主要介绍在Spring Boot项目中如何进行多环境配置的方法。我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比...转载 2019-07-15 17:36:31 · 462 阅读 · 0 评论 -
20190716TOMCAT部署多应用
单机多应用部署linux修改/etc/profile增加 Tomcat 环境变量等号后面的都是实际安装的地址export CATALINA_BASE=/Users/developer/tomcat1export CATALINA_HOME=/Users/developer/tomcat1 export TOMCAT_HOME=/Users/developer/tomcat1...转载 2019-07-16 10:35:52 · 135 阅读 · 0 评论 -
20190916常见的漏洞分析总结
1. 越权漏洞越权:即执行没有相应权限的操作,出现越权漏洞的主要原因是,在服务端对用户提交的请求,没有校验用户的身份或者权限导致。 越权根据权限操作分类,可分为垂直越权和水平越权,垂直越权即低权限账号可进行高权限账号的操作,水平越权发生在相同权限的不同账号之间。2. SQL注入漏洞SQL注入:即把SQL语句插入到请求中参与数据库操作的参数中导致的。SQL注入的危害:导致数据库...原创 2019-09-16 11:52:06 · 488 阅读 · 0 评论