- 博客(27)
- 收藏
- 关注
原创 一篇文章教你怎么用群晖nas自建企业邮箱
众所周知,企业邮箱一年的费用是不少的,如果你的公司有群晖nas,那么快来学习怎么利用群晖nas搭建企业内部的邮箱服务器吧。
2024-07-24 15:10:06
4812
原创 如何利用nas+ddns实现稳定内网穿透
博主之前使用的是类似樱花frp nat 花生壳之类的穿透工具,但是这些工具限制比较多,一是网速不行,二是不能指定对应的端口,所以今天出一期教程,来教大家使用自己家的路由器来稳定穿透。
2024-07-24 14:03:25
5013
原创 浅谈java反射
Java 是一门强大而灵活的编程语言,它提供了许多高级特性,其中之一就是反射(Reflection)。反射是一种机制,允许程序在运行时获取、检查和操作类、对象、方法和属性的信息。这种能力使得我们能够在运行时动态地探索和操作代码,为我们的程序带来了无限的可能性。
2023-08-17 20:17:03
249
原创 浅谈RPC技术
标题:为什么使用RPC技术?导语:在现代分布式系统中,远程过程调用(Remote Procedure Call,简称RPC)技术扮演着重要的角色。它是一种使得分布式系统中的不同节点能够相互通信和协作的关键技术。本文将介绍RPC技术的背景、工作原理以及它为什么成为构建分布式系统的理想选择。
2023-08-16 20:42:21
260
原创 搭建一个Nacos集群
接着分别在 他们的bin文件夹运行 sh startup.shell 就可以启动了。然后新建nacos_config数据库,运行刚刚下载的sql文件。然后上传刚刚下载的nacos服务端到nacos文件夹。这里的配置要正确写入自己的数据库ip还有用户名密码。分别建立其他两个文件夹(可以按照单机的配置写)下载其中的nacos-mysql.sql。修改conf/sluster.conf文件。,在里面添加三个地址(自己的ip)至此,nacos单机搭建完毕。下载对应的nacos服务端。停止刚刚的单机nacos。
2023-08-15 21:13:34
183
原创 正向代理与反向代理的理解和应用
在计算机网络中,代理(Proxy)是一种常见的网络技术,用于提供安全性、性能优化和访问控制等功能。代理服务器位于客户端和目标服务器之间,充当中间人的角色,处理客户端和服务器之间的请求和响应。本篇博客将介绍两种常见的代理类型:正向代理和反向代理,并探讨它们的工作原理和应用场景。
2023-08-14 20:37:32
234
原创 死锁的四个必要条件,如何防止死锁?
把线程1需要的资源和线程1需要的但是被线程2占有的资源全部给线程1,线程1用完了释放资源,这样线程2就可以获取资源(将资源放在一起管理,然后线程1拿到资源后改变资源区状态,然后线程2自旋等待资源区状态改变)2 占有且等待:一个线程占有另一个线程需要的资源,并且还想去占有另一个线程的资源,但是另一个线程又是互斥的,不可抢占的,所以他只能一直等待,还一直占有另一个线程需要的资源。让他们有序等待,让线程2等待线程1用完资源1再用1,让线程2等待线程1用完资源2再去用2。互斥、占有且等待、不可抢占、循环等待。
2023-08-09 20:27:18
102
原创 redis的哨兵解决方案
格式:sentinel down-after-milliseconds <master-name> <milliseconds># 格式:sentinel monitor <master-name> <ip> <redis-port> <quorum># ip是被监控的master的IP或主机名。# 格式:sentinel auth-pass <master-name> <password># master-name是为这个被监控的master起的名字。# 配置哨兵的监控参数。# 连接主节点的密码。
2023-08-08 20:01:00
64
1
原创 浅谈缓存(redis)的淘汰机制
选择合适的淘汰策略需要根据具体的业务需求和访问模式来决定,同时还需要考虑缓存空间大小、数据的热度分布和持久化机制等因素。Redis作为一种流行的内存数据库,也提供了缓存功能,并且拥有多种淘汰机制来管理缓存中的数据。缓存淘汰机制是指在缓存空间不足时,根据一定的策略选择要被淘汰的数据项。- 数据的热度分布:了解数据的访问热度分布情况,可以根据热点数据的访问频率和访问模式进行更精确的淘汰策略选择。- 缓存空间大小的设置:根据业务需求和系统资源,合理设置缓存空间的大小,避免过小或过大的情况发生。
2023-07-23 19:46:37
559
原创 Redis的生产问题
标题:深入理解Redis:缓存穿透、缓存击穿和缓存雪崩简介:在现代应用程序中,缓存是提高性能和可扩展性的关键组件之一。Redis作为一种常用的缓存解决方案,广泛应用于各种系统中。然而,当缓存被错误地使用或配置时,可能会出现缓存穿透、缓存击穿和缓存雪崩等问题。本文将深入探讨这些问题的原因、影响和解决方法。
2023-07-20 19:41:42
142
原创 浅谈java的类加载机制
Java的类加载机制是Java虚拟机(JVM)的核心组成部分,负责将类的字节码加载到内存中,并进行链接和初始化,以便在程序运行时使用。了解类加载机制对于理解Java的运行机制和开发高效的Java应用程序至关重要。类加载过程可以分为三个阶段:加载、链接和初始化。
2023-07-19 20:09:33
61
原创 浅谈分布式的CAP理论
需要注意的是,CAP 定理是一个理论上的观点,实际系统设计中可能会根据具体需求和场景做出不同的权衡和选择。此外,CAP 定理只关注了分布式系统的三个属性,而没有涉及其他重要的方面,如性能、可扩展性和安全性等。在分布式系统中,节点之间的网络可能会出现故障或延迟,分区容错性保证了系统的弹性和鲁棒性。2 可用性(Availability):可用性要求系统在任何时候都能够对外提供服务,即系统必须保证在有请求时能够返回合理的响应,而不是无响应或错误响应。当面临网络分区时,系统管理员必须在一致性和可用性之间做出选择。
2023-07-17 20:04:16
75
1
原创 redis搭建主从
接着修改从redis服务器中的config文件。然后我们复制对应的reids配置文件。至此,redis主从搭建完毕。最后,创建docker容器。首先我们创建对应的文件夹。
2023-07-13 21:36:41
188
1
原创 浅谈单例模式
在本文中,我们总结了几种常见的单例模式实现方式。每种方式都有其优缺点,因此在选择实现方式时应根据具体的需求和场景进行选择。饿汉式在类加载时就创建实例,适用于实例创建成本较低且始终需要访问的情况。懒汉式在第一次访问时才进行实例化,适用于实例创建成本较高或资源受限的情况。静态内部类方式和枚举方式都是懒加载且线程安全的,适用于大多数情况。希望本文能够帮助你理解单例模式的几种实现方式。如有任何疑问,请随时提问。
2023-07-11 20:11:51
53
原创 Springboot缓存 注解@CachePut,@Cacheable,@CacheEvict 的作用及用法。
通过使用Spring Boot提供的缓存注解@CachePut、@Cacheable和@CacheEvict,我们可以轻松地集成缓存功能到应用程序中,从而提高性能和响应速度。@CachePut用于将方法的返回值存储到缓存中,@Cacheable用于从缓存中获取值,而@CacheEvict用于清除指定的缓存项。在本篇博客中,我们将深入探讨Spring Boot缓存注解@CachePut、@Cacheable和@CacheEvict的作用及用法,帮助你更好地理解和使用这些注解。如有任何疑问或建议,请随时留言。
2023-07-09 22:02:28
540
1
原创 数据库SQL优化的方案有哪些?
本文将介绍一些常见的SQL优化方案,帮助开发人员和数据库管理员改善数据库的性能,减少查询时间并提高系统的响应速度。避免使用不必要的JOIN操作,使用合适的WHERE条件进行过滤,尽量减少返回的数据量。避免使用SELECT *: 避免使用SELECT *语句,它会返回所有列的数据,包括不需要的列,增加了网络传输和内存开销。选择合适的列和索引类型,并避免创建过多的索引,以避免维护开销。使用缓存: 利用缓存技术,如数据库缓存或应用程序级别的缓存,可以避免重复的数据库访问,提高响应速度。
2023-07-06 21:39:42
225
1
原创 如何在springboot中配置mybatis-plus
MyBatis-Plus(简称为MP)是一个开源的Java持久层框架,它是在MyBatis基础上进行扩展的。他的出现是为了进一步简化和增强MyBatis的功能,提供更多便捷的特性和工具,以提高开发效率。本文将阐述如何在springboot中配置和使用mybatis-plus。
2023-07-05 20:35:53
6596
原创 如何在Linux系统中配置MySQL并且搭建MySQL的主从
通过上面的步骤已经成功配置了一个MySQL了,但是实际生产过程中,面对了大量数据的问题,如果不做优化的话,MySQL既得做增删改,又得做查询工作,这样性能会严重下降,所以通过搭建MySQL的主从关系,将一部分的查询任务交给容器中的其他MySQL来完成,很大程度上提高了性能、可用性和灵活性。-p 端口号 具体是指将前面的宿主机的端口号映射到后面的docker容器内部的mysql的端口号,可以通过宿主机的。执行上面的指令后,就可以创建一个名为slave,密码为123的用户,并且给他一定的权限,最后刷新权限。
2023-07-04 21:07:05
1222
1
原创 如何流畅地使用maven创建一个springboot项目
平时使用idea自带的maven自动创建springboot项目,但是自由度并不是很高,所以本文阐述了如何利用maven从0开始搭建springboot项目。这里的标签中的内容,意思是排除springboot中自带的一些组件,这里注视的地方意思是springboot中不使用自带的tomcat。在resource文件夹下面放入一个banner.txt文件,在里面放入ascii艺术字后,springboot启动的时候图标就会跟着变化。2.添加一些需要的依赖(此处不全)
2023-07-04 19:11:16
585
原创 Python 中eval 的用法
eval函数主要是用来实现python中各种数据类型与str之间的转换,下面会详细的举出实例来帮助理解一 eval( )函数的基本用法(1)字符串转换为列表b=eval(a)print(a)print(b)print(type(a))print(type(b))输出结果如下可见eval将原本为字符串类型的a转换为list列表类型的b(2)将字符串转换为字典a='{"number":2,"name":"jay"}'b=eval(a)...
2021-09-14 20:25:18
58880
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人