如果mybatis-plus的service层的实现类继承了ServiceImpl,但是还是提示你实现方法

这个问题可能是你的 mapper层没有导入正确的BaseMapper<T>,检查一下mapper层的接口是否正确的继承了对应泛型的BaseMapper

安装elasticSearch、logstash可能遇到的问题

在安装elasticSearch如果遇到报错如下报错

"log.level": "WARN", "message":"high disk watermark [90%] exceeded on [F9dBunGuRRaQPU3DzALBXg][630cb0aec55f][/usr/share/elasticsearch/data] free: 1.4gb[8.4%], shards will be relocated away from this node; currently relocating away shards totalling [0] bytes

这个错误很明显是因为elasticsearch所处的磁盘的占用率过高,超过了elasticsearch配置中的最高占用(默认90%),所以这个时候就要考虑将elasticsearch进行迁移。

因为这里我是用的是docker进行部署的,所以这里就演示一下docker迁移数据目录的过程

# 默认情况下 docker的存储目录为 /var/lib/docker ,这里我准备了一个新硬盘并挂载在了 /docker-storage目录,所以将docker数据迁移至该目录 
systemctl stop docker

# 这里使用rsync命令而不是用mv命令是因为防止迁移失败导致数据丢失
rsync -aPV /var/lib/docker/ /docker-storage/

# 更改docker的存储配置信息
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://wpdym3f4.mirror.aliyuncs.com","https://docker.1ms.run"],
  # 更改docker的存储路径为 /docker-storage 目录
  "data-root": "/docker-storage",
  "insecure-registries": ["10.0.0.30"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

systemctl daemon-reload
systemctl restart docker

# 查看docker是否可以正常启动 , 尽可能再查看对应的容器是否正常
systemctl status docker

# 清楚原来的数据(可选),如果迁移没问题的话,那么可以删除原来的数据节省磁盘空间
rm -rf /var/lib/docker


导入LoadBlance 为什么会自动的要求配置关于数据库的信息?


启动springboot项目报错显示找不到对应的Bean、但是最后又提示你只是用了OpenFeign 忘记使用了LoadBlance?

   这个找不到对应的Bean组件导入到IOC容器内不是本质上的问题原因,真正的原因还是因为你只是用了OpenFeign,而没有导入LoadBlance的启动器,而OpenFeign的工作默认是需要依靠LoadBlance的。
  所以对于这个问题,我们只需要在该模块的pom文件中导入 LoadBlance 的启动器就可以了。


Found multiple @SpringBootConfiguration annotated classes

  java.lang.IllegalStateException: Found multiple @SpringBootConfiguration annotated classes 这个错误通常发生在使用 @SpringBootTest 进行单元测试时,Spring Boot 发现了多个被 @SpringBootConfiguration 注解标记的类,导致无法确定应该使用哪个类作为启动类。
  
错误原因
1.多个启动类:
  Spring Boot 项目通常只有一个启动类(带有 @SpringBootApplication 或 @SpringBootConfiguration 注解的类)。
  如果项目中存在多个启动类,Spring Boot 无法确定应该使用哪个类来加载应用程序上下文。

2.依赖模块中包含启动类:
  如果你的项目是一个多模块项目(例如 Maven 或 Gradle 多模块项目),可能在多个模块中定义了启动类。
  例如,service-user 模块和 service-util 模块都定义了启动类。
3.测试类未指定启动类:
  在使用 @SpringBootTest 进行测试时,如果没有明确指定启动类,Spring Boot 会尝试自动扫描并找到启动类。如果找到多个启动类,就会抛出此异常。

解决办法:

  既然项目中有多个 @SpringBootApplication、@SpringBootConfiguration 修饰的类的话,但是作为启动类的肯定是我们使用 @SpringBootApplication 注解修饰的类作为程序的启动类。所以解决办法就是在测试类中直接显示指定哪个类作为程序的启动类。方法如下:

// 测试类            (使用 classes 来显示指定项目的启动类)
@SpringBootTest(classes = {程序入口类名}.class)
{
  // 测试类代码
}

解决vmware挂起后无法连接docker容器

1、vim /usr/lib/sysctl.d/00-system.conf 
//在最后面添加
2、net.ipv4.ip_forward = 1
//然后保存退出,接着重启网络服务
3、systemctl restart network
//重启以后,输入以下命令,查看IPv4转发状态
4、sysctl net.ipv4.ip_forward
//显示
net.ipv4.ip_forward=1
// 再次在windows上连接mysql和redis,就已经没问题了。

内容解释:

  • net.ipv4.ip_forward = 1
    表示开启系统的 ipv4 数据包转发(也就是路由功能)。 开启了这个功能后,可以通过Linux系统实现数据包从一个网络转发到另一个网络,如果没有开启这个功能,Linux服务器可以看作是一个交换机,开启了这个功能后,因为可以进行不同网段之间的数据包传输,所以可以理解此时的Linux服务器为路由器。
    例如:当一台主机同时连接到多个网络时,若开启 IP 转发,它可以将接收到的数据包从一个网络接口转发到另一个网络接口,实现不同网络之间的通信。

网卡

网段

网络

eth0

192.168.1.0/24

网络A

eth1

192.168.2.0/24

网络B

若网络 A 中的设备发送数据包到网络 B 的设备,主机将接收该数据包,并通过 eth1 转发到网络 B

这个问题就是可以让 Linux主机接收到的数据包,可以转发给 Docker服务的相关网络接口,从而是Docker可以与外部通信。

sysctl net.ipv4.ip_forward 就是打印出这个内核参数的值。

文章作者: 不破不立
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 寻梦
问题
喜欢就支持一下吧