- 博客(252)
- 收藏
- 关注

原创 九.Spring之依赖注入、循环依赖原理
一.依赖注入诸如 @Autowired、@Inject、@Resource 是如何将实例注入到属性的。1.演示代码BookService,给其中用不同注解,注入不同的dao实例@Servicepublic class BookService { @Autowired(required=true) private BookDao bookDao; @Inject p...
2020-05-07 16:41:04
1184

原创 四.Sping之AOP源码
本文解读AOP是如何增强方法功能的。需要提前了解@Import 注解的功能:https://blog.csdn.net/u014203449/article/details/86559350BeanPostProcessor 后置处理器的功能:https://blog.csdn.net/u014203449/article/details/86665963Aware接口:https:/...
2020-04-24 11:06:47
386
原创 java瘦身、升级graalvm
传统的hotvm,需要先启动 jvm 再载入 java 代码,然后再即时的将 .class 字节码编译成机器码,交给机器执行。以在线权限为例,通过打包插件会将项目打成jar包,jar里是class文件,包含自定义代码和maven引用的所有包。
2025-04-30 16:45:51
776
原创 postgis和地理围栏
select count(1) from demo_person person where ST_Within(person.geom,(select building .geom from demo_building building where building ."name" = '矿工作区')::geometry);地理上的函数(面积、距离、长度、交点等)是使用球体上的弧计算的。--在指定多边形范围内的人,在矿工作区内的人,多边形围栏。--在指定多边形边上的人,在高坡工作区边上的人,围栏边上。
2025-01-09 17:31:41
671
原创 cloudcone最新2核1G13.99$/年 5核2G21$一年
惊掉下巴,cloudcone最新黑五活动,服务器。更多活动可看,里面也有购买教程。2核1G13.99$/年。
2024-11-06 16:55:17
175
原创 java CopyOnWrite原理
CopyOnWrite容器通俗地讲,当我们往容器中添加一个元素的时候,不是直接添加,而是对当前容器copy,复制一个容器,在这个复制的容器中添加元素,添加完之后,再将引用指向这个新容器。优点:CopyOnWrite容器可以并发的进行读操作,而不需要加锁,因为 当前容器不会添加任何元素,所以这也是一种读写分离的思想,读和写的操作分开了。缺点:1.内存占用问题,产生了两个容器2.只能保持数据的最终一致性,无法保持 实时性,所以如果希望读到新数据,不要用copyOnWrite。
2024-07-21 10:41:37
330
原创 CloudCone | 最便宜国外VPS | 2核1G一年只需15$ | 国外性价比高VPS | CloudCone 使用体验
把最便宜的一家国外vps记录下来,市面上找不到比这更便宜的vps,它就是CloudCone
2024-07-21 10:38:08
661
原创 CloudCone服务器2核1G一年只需15刀
博主这里记录 cloudcone.top 这个url,大家可直接复制cloudcone.top到浏览器访问。cloudcone.top这个网站收录了最新的cloudcone优惠信息、不同的配置,大家自行选择。CloudCone服务器博主本人已稳定使用一年多了,非常划算且稳定。2核1G一年才15,相比其他厂家2核动辄月付10左右的价格,cloudcone简直没有对手。至于如何注册使用cloudcone,上面的网站cloudcone.top中有非常详细的教程。但是15刀这些划算的内容无法在官网直接找到。
2024-07-16 21:58:45
541
1
原创 Redisson报错:Unable to write command into connection! Increase connection pool size
经多次redis集群主从切换观察看,redis集群某节点出问题、或网络问题时,redis集群会自己完成主从切换,并且redisson客户端会主动感知到集群状态,并对新的主节点、或从节点初始化新的连接(从redisson日志能观察到),所以客户端不需要做什么。排查redis-server日志发现 redis集群从节点出现问题,一个从节点和其主节点网络连接有问题,但这个从节点却和其他节点通信正常,所以这个从节点没有被踢出集群。场景:使用redisson锁,redis-server是集群方式,三主三从。
2024-07-16 21:43:29
2287
原创 宝塔linux网站迁移步骤
3.新宝塔数据库的wp_options表里的ip都改为新ip,如果不改,用新域名访问会跳转到旧网站。1.宝塔网站迁移,有个一键迁移工具,参考官网。2.修改域名解析为新ip。网站迁移到新服务器步骤。
2024-07-01 17:25:45
765
原创 ceph、gluster、longhorn选型对比
高可用gluster-server部署两个以上的节点,gluster-server没有主从之分、是对等的。通过复制卷可以实现数据高可用,一个文件分别存在两个节点上,有一个节点宕机,文件依然能正常读写。为文件计算一个值,根据值放在某个pg上(pg属于某个osd),文件的其他副本放到其他osd上。文件实际是使用对象存储存到osd上,因为脱离了linux文件系统,所以无法在磁盘直观的看到文件,只能通过ceph挂载查看。Ceph是一个分布式的存储系统,可以在统一的系统中提供唯一的对象、块和文件存储。
2024-01-11 13:33:43
2570
原创 Minio安装
新建目录 /data/miniodisk1 和 /data/miniodisk2 准备做磁盘挂载。编辑配置文件 /etc/default/minio ,设置端口、数据存储路径、登录账号密码。我准备四台机器,每台机器两个硬盘。根据官网说的纠删码,损失一半盘,依然能恢复数据。将User和Group改为当前登录用户,或者按要求创建用户。将User和Group改为当前登录用户,或者按要求创建用户。修改配置文件,vim /etc/default/minio。两个盘名字 /dev/sde /dev/sdf。
2023-11-15 14:55:35
865
原创 Gluster安装
此时26的/mnt/gluster目录 就挂载到了 创建的卷gv0上,在26目录里创建的文件在22,23的 /data/brick1 目录下会出现。编辑源 vim /etc/yum.repos.d/glusterfs.repo, gpgcheck=就是不校验。/data/brick1 目录挂载到 /dev/sdc磁盘, fstab文件是开机启动挂载。卷类型有多种,这里设置 “复制卷”,这样就有高可用性。在22 23节点上准备一个新磁盘 /sdc,操作系统:centos8。使用 XFS 文件系统。
2023-11-02 16:04:07
450
原创 ceph高可用、手动安装
fsid, public netword ,mon_initial_members ,mon_host 默认端口6789,osd pool default min size = 2 这些配置都需要改。创建配置文件 vim /etc/ceph/ceph.conf。安装过程中会自动安装python3.6以及相关。ceph -s,此时应该有三个监控启动。uuidgen 生成id。
2023-10-27 15:38:53
965
原创 Redisson锁功能、使用场景、注意事项
举例:方法a加锁用的是trylock,即可能加锁失败,方法b的业务也就可能失败,但如果方法c的业务一定要成功,那方法c就可以提前加锁用 lock方法,再调用方法a时加锁肯定成功,这样保证了方法c和a一定能成功。3.谨慎使用leaseTime参数,设置后watchdog不生效,到了leaseTime后、即使业务没执行结束,锁也会释放,如果此时其他线程加锁,可能造成线程不安全。举例场景:封装了方法a,其中加锁了,方法b通过调用a完成业务,方法c也调用a,但方法c在调用a前已经加锁。如果为0,则是不等待。
2023-06-09 16:26:44
3499
原创 k3s基本操作
参数会导致安装程序将 K3s 配置为 Agent 而不是 Server。K3s Agent 将注册到在 URL 上监听的 K3s Server。重启,启动,停止,systemctl restart\start\stop。修改/etc/hostname 和 /etc/hosts,让主机名不一样。配置主节点 kubeconfig,配置到 .kube目录,默认寻找这个目录。192.168.255.130安装server。192.168.255.131安装agent。查看k3s agent状态。
2023-05-31 16:34:27
5306
原创 Redisson报错:Unable to write command into connection! Increase connection pool size,集群出错
本身redis-server也是默认只在主节点读写,如果用redis-cli连接就能发现,读写任何key都会自动跳转到主节点,而不会在从节点。看153的redis-server日志,错误日志,157是报错从节点对应的主节点:说明从节点连不上主节点。但redisson配置的是从节点读、主节点写,所以导致加锁执行exists命令时 到问题节点读取失败。解决方式,把redisson配置为主节点读写,不在从节点读,去除从节点不稳定的影响。场景:使用redisson锁,redis-server是集群方式,三主三从。
2023-05-30 17:34:09
14077
原创 剑指offer进阶版刷题记录
补充,图广度优先遍历邻接矩阵表示图。顶点出队后要用visited判断是否访问过,即使在入队前判断未访问才入队,也得在出队后判断,因为同一层可能有两个顶点关联的点是重复的,导致一个顶点重复入队。 /** * @description 广度优先,访问一个节点A后,依次访问与其相连的节点BC,再访问B C的相连节点 * @author PangTiemin * @date 2022/2/20 21:03 */ public void bfs(int[
2022-03-07 15:45:07
561
1
原创 nginx设置缓存proxy_cache
参考nginx proxy_cache 缓存配置_dengjiexian123的专栏-CSDN博客_nginx proxy_cache将一些服务端的一些静态资源缓存在nginx,客户端请求直接获取nginx中的静态资源,不用去服务端获取。在http模块设置,path是缓存文件路径,keys_zone=tmp-test:10m ,tmo-test相当于缓存名字,在哪个路由规则中要使用缓存就配置上,10m应该是内存缓存大小,inactive对应有效期7天,max_size应该是缓存在磁盘上的最大占用空间
2022-01-19 16:27:40
4053
原创 nginx配置不生效
一般来说,nginx平滑重启之后,配置就会生效。nginx -t nginx -s reload如果没生效,尝试关闭nginx,或者杀死进程,再重启。如果是windows就在任务管理器里关闭进程再重启。nginx -s stop这些操作后nginx.conf的配置肯定会生效,如果还有问题,应该考虑其他方面、而不是nginx的问题,笔者曾遇到在nginx前还有其他代理缓存,导致误以为nginx没生效。...
2022-01-19 16:07:29
12759
原创 在centos安装nginx、purge
下载tar,在官网nginx: download、解压tar xzf nginx-1.20.2.tar.gz编译./configure --prefix=/usr/local/nginx1.20/ && make && make install && echo Ok.编译后生成/usr/local/nginx1.20/文件夹,sbin文件夹下是nginx,conf文件夹是配置文件。启动/usr/local/nginx1.
2022-01-19 16:02:08
2083
原创 jvisualvm连接tomcat
tomcat catalina.sh 添加启动参数,ip和端口一定要填,authenticate是否要认证,如果写true,要额外配置账号角色,这里写false。JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremo
2022-01-17 17:16:18
580
原创 TDD和单元测试
Test Driven Development。测试驱动开发,提倡在开发足够多的代码之前优先写单元测试,然后重构开发者编写的源代码。源代码都没有怎么写单元测试?请注意是开发足够多的代码之前,也就是会有少量源代码工作在单元测试之前,如功能模块骨架,方法定义、类依赖。
2022-01-02 12:34:55
764
原创 http请求设置不被浏览器缓存
在响应头中加,浏览器就不会缓存,下次请求会访问服务器。responseHeaderMap.put("Cache-Control", "no-cache");responseHeaderMap.put("Expires", "0");
2021-12-23 17:28:15
2295
原创 rabbitmq试用总结
zzRabbitMQ Tutorials — RabbitMQhttps://www.rabbitmq.com/getstarted.html在mq向导中,把1-6个引导案例看完了,其实就是简单教你怎么用,第一个传送一条消息,第二个发布给两个队列,第三个给订阅这个exchange的queue广播,第四个把queue和exhcange绑定 用routekey ,发消息也有key,两个key对上 就能消费,相当于订阅。第五个模糊订阅,上一个是完全匹配。第六个,之前都只消费消息,没有返回数据,如果返
2021-11-22 17:44:22
1199
原创 Gateway Webflux过滤器修改响应
import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.hhwy.fweb.gateway.constant.GatewayConstant;import org.apache.commons.codec.Charsets;import org.reactivestreams.Publisher;import org.springframework.core.io.buffer.Data.
2021-11-10 16:57:41
1388
转载 UML类图
类之间的关系是类图中比较复杂的内容。有关联、聚合、组合、泛化、依赖。依赖:如方法局部变量、方法参数。有两个元素如果修改X的定义可能会导致对Y的定义,则认为Y依赖X。依赖关系可能由各种原因引起,如一个类向另一个类发送消息,或者一个类是另一个类的数据成员类型,或者一个类是另一个类的操作的参数类型等。有时依赖关系和关联关系比较难区分。如果类A和类B有关联关系,它们之间必然有依赖关系。如果两个类之间有关联关系时不用再表示出这两个类之间的依赖关系。 关联:如成员变量。是类之间的一种很弱的联系。关联可以有方向,可
2021-10-19 09:50:27
200
原创 服务器大量tcp close_wait
线上碰到服务器 大量tcp连接处于close_wait状态,tomcat处于假死状态,即tomca在运行,但不能访问。因为tcp连接耗尽了。查询tcp连接数和状态:netstat -an|awk '/^tcp/{++S[$NF]}END{for (a in S)print a,S[a]}' 查询端口监听的tcp连接 netstat -anp |grep 8080按tcp协议来说,客户端发送关闭连接消息,服务端会进入close_wait状态,服务端处理完后会自动进入last_ack状态,...
2021-10-11 16:49:23
1591
原创 linux 磁盘占满查找大文件、挂载磁盘
查看各文件夹大小:du -h --max-depth=1挂载Linux磁盘分区、挂载 - 菜菜菜鸡 - 博客园
2021-09-28 10:34:17
1068
原创 微服务常见认证、鉴权方案
参考网上一些优秀开源项目和框架,谈谈常见的微服务认证、鉴权方案。内容有SecurityOauth2、单点登录cas、自定义拦截器开发、微服务间鉴权、令牌的存储方式、shiro由单体改动为微服务微服务认证、鉴权的目标:一次登录后,各微服务都能访问 可对各微服务进行角色、接口等粒度的鉴权SecurityOauth2可能是seurity框架提供了一个微服务鉴权的直接解决方式,导致网上资料大部分都是此类方案。这个方案理解起来并不难。首先,在登录时,利用oauth2协议的四种方式及自定义.
2021-09-26 14:26:05
10053
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人