
个人学习笔记
文章平均质量分 78
爱吃西瓜爱吃肉
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【学习笔记】Docker(二)
例如基于Ubuntu Linux16.04创建一个新的镜像,这就是新镜像的第一层,如果在该镜像中添加Python包,就会在基础镜像层之上创建第二个镜像层;在bootfs上,包括的就是典型的Linux系统中的/dev、/proc、/bin、/etc等标准目录和文件,rootfs就是各种不同的操作系统发行版,比如Ubuntu、Centos等。-基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from。-指定该镜像以什么样的用户去执行,如果都不指定,默认是root。原创 2023-03-09 09:55:05 · 555 阅读 · 1 评论 -
【学习笔记】Docker(一)
解决问题:Error response from daemon: Container xxx is restarting, wait until the container is running和外部无法远程连接虚拟机中mysql问题原创 2023-02-20 17:10:44 · 757 阅读 · 0 评论 -
【学习笔记】Nginx实战
可以看见两个都启动,但是第一个是/root/tomcat不是Tomcat8081(因为8081是后面改名),应该是原本就启动了8080端口的,所以杀死它。问题:刚开始8081端口的访问并不成功,我们查看一下两个Tomcat是否成功启动。在配置文件中,将首行的user注解解开,并且改为root(我登录的是这个账户)·fair(第三方):按后端服务器的响应时间来分配请求,响应时间短优先分配。·weight:权重,默认是1,权重越高被分配的客户端越多。Autoindex on:列出目录内容。原创 2023-02-10 16:50:54 · 916 阅读 · 0 评论 -
【学习笔记】Nginx学习
主要设置一些影响nginx服务器整体运行的配置指令,只要包括配置运行Nginx服务器的用户(组)、运行生成的work process数,进程PID存放的路径、日志存放路径和类型以及配置文件文件的引入等。此时就需要Nginx作为前置的反向代理。访问量过大,服务器处理请求处理不过来,此时多开几个进程,但是之前的端口只有一个,如果我们另用一个端口,客户端却是不得知的,处理起来也麻烦且没必要。客户端向反向代理发送请求,代理选择目标服务器发送请求,将获取的数据返回给客户端,,对客户端而言代理是目标服务器。原创 2023-02-09 19:39:47 · 906 阅读 · 0 评论 -
【学习笔记】kafka学习二
kafka学习笔记原创 2022-11-17 14:40:12 · 2382 阅读 · 0 评论 -
【学习笔记】Kafka学习
生产者将消息发布到kafka的Topic中,broker接收到生产者的消息后,将消息追加数据到segment文件中,生产者发送的消息存储到一个partition中,生产者也可以指定数据存储的partition。其他broker的日志目录修改;集群有多个broker,创建主题时可以指明该主题有多少个分区(把消息拆分在不同的分区中存储),可以为分区创建多个副本,不同的副本存入不同的Broker。消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接受感兴趣的消息。原创 2022-11-14 09:43:27 · 817 阅读 · 0 评论 -
Zookeeper
集群的话,先创建持久节点,下面多个临时节点。需要注意的是:java操作集群和操作单节点一致,虽然集群数据保持高度一致,但是初始化客户端对象时,zkServer最好全部写上,假设只写一个,如果该zkServer宕机,则无法用java操作集群。对集群中一个节点操作写操作时,会向leader节点进行确认,如果leader确认后会向所有节点原子广播写入当前数据,如果有节点写入失败,全部节点撤销写操作回滚。在节点创建后,就一直存在,知道有删除操作来主动删除这个节点——不会因为创建该节点的客户端会话消失而消失。原创 2022-11-05 14:53:41 · 2084 阅读 · 0 评论 -
SpringCloud Alibaba学习(四)——seata
修改script-config-center文件中的config.txt,同样将存储模式改为db,修改具体信息;管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式。强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入。定义全局事务的范围、开始全局事务、提交或回滚全局事务。:维护全局和分支事务的状态,协调全局事务提交或回滚。最终一致的分阶段事务模式,有业务侵入。openFeign接口。原创 2022-11-02 12:03:06 · 701 阅读 · 0 评论 -
SpringCloud Alibaba学习(三)
OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方法产生实现类,实现类中的做负载均衡并调用其他服务。Feign是SpringCloud组件中的一个轻量级Restful的HTPP服务客户端Feign内置了Ribbon,用来做客户端负载均衡,去调用服务祖册中心的服务。步骤:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务。注意:如果在nacos的服务名修改了,限流配置类也需要修改,访问网址也需要修改。原创 2022-10-26 16:16:37 · 505 阅读 · 0 评论 -
SpringCloud Alibaba学习(二)
同样自定义配置类(过滤器),设置必须有参数(任何值)才可以正常访问,授权:对参数设置规定值,如果设置为白名单,即只有输入固定值才能正常访问,如果设置黑名单,即输入固定值不可访问。由于多个服务相互调用,假设服务B调用A,服务A出现问题,服务B全部线程进入阻塞状态,一直等待不释放资源,导致服务B堆积内存沾满,B奔溃;单个请求的响应时间超过阈值,则进入准降级状态,接下来 1 S 内连续 5 个请求响应时间均超过阈值,就进行降级,持续时 间为时间窗口的值。若设置黑名单,即name值为a不可访问,其他值可以访问。原创 2022-10-17 16:13:06 · 549 阅读 · 0 评论 -
SpringCloud Alibaba学习(一)
SpringCloud是一系列分布式框架的集合,基于Spring Boot进行开发,将不同公司生产的不同组件进行集成,以SpringBoot的风格进行集成,开发者不需要关注底层的整合实现,而是开箱即用,需要哪个组价就用SpringBoot整合进来。需求:多个服务器,但是由于没有算法,默认肯定是全部请求只访问其中一个服务器,请求过多导致压力大,服务器容易奔溃。创建消费者consumer——导入nacos依赖(与provider一致)——consumer controller调用提供者的接口。原创 2022-10-17 15:56:04 · 703 阅读 · 0 评论 -
【学习笔记】Shiro安全框架入门(二)完结
认证过程——获取需要认证的信息 ,模拟从数据库取出用户账号,进行对比,如果对比通过则说明该用户存在,继续对比密码:将传入的密码进行加密与数据库存入的密码进行对比。——其中Md5Hash传入三个参数,可以直接只传密码,但是简单的密码容易被穷举出来,于是有了参数二:盐值(利用随机盐值与密码一起加密);授权过程——首先获取用户信息 认证,模拟从数据库中获取该用户的角色和操作权限,加入该用户中。4.SecurityUtils给全局安全工具类设安全管理器。6.获取登录用户的令牌(账号密码)......原创 2022-08-26 09:59:43 · 974 阅读 · 0 评论 -
【学习笔记】Shiro安全框架入门(一)
外部应用与Subject进行交互,Subject记录了当前操作用户,将用户概念 理解为当前操作的主体,可能是一个通过浏览器请求的用户,也可能是一个运行的程序,Subject在shiro中是一个接口,接口中定义了很多认证授权的方法,外部通过Subject进行认证全收,而Subject是通过SecurityManager安全管理器进行认证授权的。Shiro是Apache旗下的开源框架,将软件系统的安全认证相关功能抽取出来,一个功能强大且易于使用的Java安全框架,它执行身份验证、授权、加密和会话管理。...原创 2022-08-25 10:54:14 · 925 阅读 · 0 评论 -
非对称加密——网络安全
A给B发信件,A对信件使用摘要算法对信件原文进行摘要(摘要算法HASH一旦内容发生轻微的变动,摘要会发生巨大的改变),A使用私钥对摘要进行加密(即数字签名),将加密后的摘要附在信的原文下面。B取到信件后使用公钥对加密的摘要进行解密,对信件进行摘要,与该摘要进行对比,如果对比成功即可确定是A发送的信件,且没有更改。先判断是否是CA颁布的证书,如果不是或者非正规的或者过期,取出信件的证书利用CA的公钥解密证书,对原信件获取数字证书,两者进行对比,如果一致则取出A的公钥,再进行以上步骤,利用公钥解密摘要。...原创 2022-08-09 14:09:15 · 1564 阅读 · 0 评论 -
密码明文加密-Java对称加密与非对称加密(一)
3DES加密在DES基础上时使用三重数据加密算法,提供相对简单的方法增强DES密钥长度,破解的概率小了,但是使用三重数据加密算法可能比较消耗性能。非常安全,但是对比对称加密来说性能过低。其使用一对密钥公钥和私钥。私钥由一方安全保管,公钥发送给请求它的人。加密解密使用相同密钥的算法,常见加密算法DES、3DES、AES、PBE等,安全性逐渐增强。DES加密简便的加密算法,密钥长度比较短,DES使用56位密钥,24h内可被破解。最快速、最简单的加密方式,加密解密使用同一个密钥。...原创 2022-07-27 09:44:55 · 990 阅读 · 0 评论 -
Redis学习笔记【四】完结
Redis是内存数据库,如果不将内存中的数据状态保存到磁盘中,那么一旦服务器进程退出,服务器中的数据库状态就会消失,所以Redis提供了持久化功能dump.rdb是由Redis服务器自动生成的,默认每隔一段时间Redis服务器程序会自动对数据库做一次遍历,把内存快照写在此文件中,这个持久化机制叫做snapshot。如果服务器宕机,重新启动服务器就会加载dump.rdb将数据库状态恢复到上一次做快照时状态Snapshot时间间隔和保存的文件路径、文件名都在conf配置文件中指定1.实现备份;...原创 2022-07-18 16:53:55 · 236 阅读 · 0 评论 -
讲讲Java的垃圾回收机制
给对象添加一个引用计数器,每当一个地方引用它时计数器的值+1,引用失效计数器值-1。当计数器为0的时候该对象就是不可被使用的。优点:实现简答、效率简单缺点:无法解决对象之间的相互循环引用的问题通过叫GC Roots的对象作为根节点,向下检索,检索到的对象被视为可达性对象,即非垃圾,检索的路径成为引用链。而当一个对象到GC Roots没有任何引用链的时候即视为‘垃圾’GC Roots对具体包括:属于执行上下文中的对象,线程在执行方法的时候,会把方法打包成一个栈帧入栈执行。方法中的局部变量会存放在其本地变量表中原创 2022-07-13 20:40:28 · 701 阅读 · 0 评论 -
Spring5【学习笔记三】
4.切面把通知应用到切入点的过程AspectJ不是Spring的组成部分,独立AOP框架,一般把AspectJ和Spring一起使用进行AOP操作。添加依赖和约束前置通知实现MethodBeforeAdvice接口 后置通知实现AfterReturningAdvice接口将所有方法写入bean配置文件中进行AOP配置:首先配置切入点:id和expression(executor(方法位置))* com.wang.service.UserServiceImp.*(..)第一个*代表所有返回类原创 2022-07-06 15:07:00 · 121 阅读 · 0 评论 -
Jedis连接问题!!
这几天没写redis的笔记,因为一直卡在Jedis连接这块,当时学习是说先连接本地的,但是一直报错,试了很多方法都没用,所以一直卡着不能继续往下学怎么调试都是报连接失败的提示 。百度了很多,首先第一步关闭防火墙重新运行——没用换成虚拟机所在的ip运行——没用继续按照网上的方法修改,修改redis.conf配置文件,将bind 127.0.0.1前加上#注释掉。如果没有注释掉代表只能本机访问(但是我还是不能本地连接),注释之后可以外机访问,也可以把外机的ip加在后面如果出现:DENIED Redis is r原创 2022-07-05 17:31:01 · 230 阅读 · 0 评论 -
Spring5【学习笔记二】
1.普通bean:在配置文件中定义bean类型就是返回类型2.工厂bean:在配置文件定义bean类型可以和返回类型不一致步骤:--创建类,让这个类作为工厂bean,实现接口FactoryBean--实现接口里的方法,在实现的方法定义返回的bean 类型 *上面四个注解功能一样,都用来创建bean实例基于注解创建Bean实例将注解component换成以上任意一个都可以实现对象的创建基于注解方式实现属性的注入@AutoWired:根据属性类型进行自动装配,所以不需s原创 2022-07-05 16:43:24 · 124 阅读 · 0 评论 -
Spring5【学习笔记】
IOC控制反转:使用set注入后从程序控制转为给用户控制,本质上不用程序员去管理对象的创建,系统的耦合性大大降低。其是一种通过描述(XML或者注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IOC容器,其实现方法就是依赖注入(Dependency Injection,DI)Bean标签中:id即最后getBean获取对象使用的标识class对应的创建对象的类property是该类中的成员变量,一定要有set,根据set对成员变量进行赋值创建对象。--ref引用Spring容器中原创 2022-07-04 16:58:22 · 99 阅读 · 0 评论 -
Redis学习笔记【三】
Redis设置密码进入redis,config set requirepass ***(密码)config get requirepass(查看密码)使用方法二设置的密码是临时的,重启后会恢复默认值,需要命令行设置新密码后使用config rewrite将修改持久化到redis.conf配置文件设置密码之后登入redis要附带密码,或者先登录后验证密码,具体操作如下:Redis三种特殊化数据类型---geoadd :添加地理位置---geopo...原创 2022-06-30 16:32:45 · 1791 阅读 · 0 评论 -
Redis学习笔记【二】
--mget:获得多个key的值--mset:同时设置多个键值对--msetnx:和mset一样 ,不同的是,如果设置的key有相同的,该行命令会执行失败。而mset同样和set一致,如果遇到相同key会覆盖前面设置的--getrange :获取值的范围,类似Java的substring--setrange :在key值的指定位置替换指定字符--setex :替换或创建key-value值,同时设置过期时间--...原创 2022-06-29 16:54:36 · 682 阅读 · 0 评论 -
Redis学习笔记【一】
Redis是一个开源的 key-values存储系统,存储的value类型包括string(字符串)、list(链表)、set(集合)、zset(sorted有序集合)、hash(哈希)。支持主从同步1.官网:开始 | Vuex (redis.io)下载压缩包2.利用XShell将压缩包上传到虚拟机上,解压tar -zxvf redis-7.0.2.tar.gz3.gcc如果未下载yum install gcc 4.否则直接编译(先进入redis-7.0.2)make5.编译成c文件后进行安装make in原创 2022-06-28 17:22:15 · 193 阅读 · 0 评论 -
MyBatis学习笔记【五】完结
跟着尚硅谷的视频陆陆续续把MyBatis学习完了,其实课程挺短但是期间很多事情所以现在才学完,不得不说杨老师讲的很好!!MyBatist缓存会将查询的数进行缓存,再次查询时如果数据已经存在,则直接缓存中取出,否则再次查询数据库。MyBatis缓存分为一级缓存(默认开启)和二级缓存MyBatis一级缓存是sqlSession级别的,也就是说,前提是同一个sqlSession查询同一条数据才会在缓存中取 控制台可以看出,sql语句其实只执行了一次,在第二次查询学校信息时是直接从缓存中取出。如果创建两个sq原创 2022-06-27 17:02:01 · 208 阅读 · 0 评论 -
MyBatis学习笔记【四】
前面学习中,我们知道POJO类中的属性名一定要与数据库表中的字段名一致(一对一进行映射),那么如果不一致时,则可以使用resultMapMyBatis多个参数输入案例:根据用户名和密码找到用户首先我们想到的是@param注解,底层map映射是以注解的值为键参数为值如果不使用注解,直接输入参数的话 结果报错,提示说name找不到,可以使用arg和param解决最终结果都输出成功,那么arg0、param1和arg1、param2分别代表的就是参数一和参数二,当然也可以组合一起使用 M原创 2022-06-16 14:21:43 · 292 阅读 · 0 评论 -
设计模式-笔记
单例模式是指在内存中只会创建一次对象,在程序中防止使用同一个对象反复创建导致的内存升高,让需要调用的地方共享这一单例对象。在程序使用对象前,先判断该对象是否已经实例化,如果实例化则返回该对象,否则实例化在类加载(程序启动时)时创建好对象,需要使用时直接返回该对象加载是将class文件读入内存并创建一个java.lang.Class对象。Java文件经过编译后变成.class字节码文件,类加载由类加载器完成,类加载器一般由JVM提供,将所有的class文件全部搬到JVM中(即加载所有的类,为这些类创建java原创 2022-06-13 13:33:34 · 201 阅读 · 0 评论 -
Mybatis的核心配置文件
配置文件mybatis-config.xml包含了会深深影响MyBatista行为的设置和属性信息MyBatis可以配置成适应多种连接数据库的环境,但是每个SqlSessionFactory实例只能选择一种环境,可以用default进行指定默认使用的环境.——transactionManager:设置事务管理方式,type=”JDBC|MANAGED”,Mybatis默认的事务管理器就是JDBC。 ——JDBC:事务的提交或回滚需要手动提交 ——MANAGED:被管理,例如Spr原创 2022-06-09 18:15:42 · 402 阅读 · 0 评论 -
MyBatis的Map传参和模糊查询
多个参数尽量使用Map比起规定类对象参数,Map实际把参数变成了灵活的参数,不固定死参数,想传什么传什么正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消前者是占位符 会进行预编译,解析为一个参数占位符‘?’将传入的数据当做一个字符串,当解析成sql语句时,会在变量外侧自动加入引号,能很大程度的防止sql注入${}方法是拼接符 将传入的数据直接显示生成sql中,一般用在传入数据库对象例如表名通过Statement对象执行SQL语句时需要先发送给数据库关系系统DBMS,由其进行编译后再执行。每原创 2022-06-07 17:14:03 · 479 阅读 · 0 评论 -
学习MyBatis笔记
MyBatis持久层框架原创 2022-06-06 17:26:13 · 206 阅读 · 0 评论 -
TCP连接、HTTP学习笔记
HTTP协议、TCP三次握手四次挥手、计算机网络体系结构原创 2022-06-02 17:31:06 · 455 阅读 · 0 评论 -
反转字符串、异常、集合(笔记)
反转字符串【四种方法】方法一:直接使用可边长字符串,调用其自带的reverse方法StringBuffer buffer = new StringBuffer("abcd");System.out.println(buffer.reverse());方法二:使用字符数组倒叙循环拼接public static String charArrayReverse(String a){ char[]aa; aa = a.toCharArray();原创 2022-05-30 20:46:50 · 114 阅读 · 0 评论 -
Java垃圾回收机制和深浅拷贝--通俗易懂
Java垃圾回收和内存泄漏关于GC机制,堆是Java虚拟机进行垃圾回收的主要场所,其次是方法区。什么是垃圾?简单就是内存中已经不再被使用的空间GC机制的实现原理:引用计数算法给对象添加引用计数器,每当有一个方法引用它,计数器+1;引用失效则计数器-1,当计数器在一段时间为0时则判断该对象应该被回收,JVM一般不采用该算法,它很难解决对象之间相互引用的问题,比如两个对象相互引用但是已经没有作用,此时应当将其回收,但是这种情况不符合引用计数算法,所以并不会回收2.可达性分析...原创 2022-05-30 17:13:24 · 477 阅读 · 0 评论