[redis下的多wvp] 优化服务间方法调用

This commit is contained in:
648540858
2024-12-11 18:26:18 +08:00
parent 5d26e3776d
commit 8d6a978978
18 changed files with 354 additions and 239 deletions

View File

@@ -1,6 +1,7 @@
package com.genersoft.iot.vmp.media;
import com.genersoft.iot.vmp.conf.MediaConfig;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerChangeEvent;
import com.genersoft.iot.vmp.media.service.IMediaServerService;
@@ -30,6 +31,9 @@ public class MediaServerConfig implements CommandLineRunner {
@Autowired
private MediaConfig mediaConfig;
@Autowired
private UserSetting userSetting;
@Override
public void run(String... strings) throws Exception {
@@ -37,6 +41,7 @@ public class MediaServerConfig implements CommandLineRunner {
mediaServerService.clearMediaServerForOnline();
MediaServer defaultMediaServer = mediaServerService.getDefaultMediaServer();
MediaServer mediaSerItemInConfig = mediaConfig.getMediaSerItem();
mediaSerItemInConfig.setServerId(userSetting.getServerId());
if (defaultMediaServer != null && mediaSerItemInConfig.getId().equals(defaultMediaServer.getId())) {
mediaServerService.update(mediaSerItemInConfig);
}else {

View File

@@ -103,6 +103,9 @@ public class MediaServer {
@Schema(description = "转码的前缀")
private String transcodeSuffix;
@Schema(description = "服务Id")
private String serverId;
public MediaServer() {
}
@@ -388,4 +391,12 @@ public class MediaServer {
public void setTranscodeSuffix(String transcodeSuffix) {
this.transcodeSuffix = transcodeSuffix;
}
public String getServerId() {
return serverId;
}
public void setServerId(String serverId) {
this.serverId = serverId;
}
}

View File

@@ -303,7 +303,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
mediaServerMapper.update(mediaSerItem);
MediaServer mediaServerInRedis = getOne(mediaSerItem.getId());
// 获取完整数据
MediaServer mediaServerInDataBase = mediaServerMapper.queryOne(mediaSerItem.getId());
MediaServer mediaServerInDataBase = mediaServerMapper.queryOne(mediaSerItem.getId(), userSetting.getServerId());
if (mediaServerInDataBase == null) {
return;
}
@@ -350,7 +350,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
@Override
public List<MediaServer> getAll() {
List<MediaServer> mediaServerList = mediaServerMapper.queryAll();
List<MediaServer> mediaServerList = mediaServerMapper.queryAll(userSetting.getServerId());
if (mediaServerList.isEmpty()) {
return new ArrayList<>();
}
@@ -366,7 +366,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
@Override
public List<MediaServer> getAllFromDatabase() {
return mediaServerMapper.queryAll();
return mediaServerMapper.queryAll(userSetting.getServerId());
}
@Override
@@ -403,7 +403,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
@Override
public MediaServer getDefaultMediaServer() {
return mediaServerMapper.queryDefault();
return mediaServerMapper.queryDefault(userSetting.getServerId());
}
@Override
@@ -423,7 +423,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
log.info("[添加媒体节点] 失败, mediaServer的类型为空");
return;
}
if (mediaServerMapper.queryOne(mediaServer.getId()) != null) {
if (mediaServerMapper.queryOne(mediaServer.getId(), userSetting.getServerId()) != null) {
log.info("[添加媒体节点] 失败, 媒体服务ID已存在请修改媒体服务器配置, {}", mediaServer.getId());
throw new ControllerException(ErrorCode.ERROR100.getCode(),"保存失败媒体服务ID [ " + mediaServer.getId() + " ] 已存在,请修改媒体服务器配置");
}
@@ -521,7 +521,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
@Override
public MediaServer checkMediaServer(String ip, int port, String secret, String type) {
if (mediaServerMapper.queryOneByHostAndPort(ip, port) != null) {
if (mediaServerMapper.queryOneByHostAndPort(ip, port, userSetting.getServerId()) != null) {
throw new ControllerException(ErrorCode.ERROR100.getCode(), "此连接已存在");
}
@@ -532,7 +532,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
}
MediaServer mediaServer = mediaNodeServerService.checkMediaServer(ip, port, secret);
if (mediaServer != null) {
if (mediaServerMapper.queryOne(mediaServer.getId()) != null) {
if (mediaServerMapper.queryOne(mediaServer.getId(), userSetting.getServerId()) != null) {
throw new ControllerException(ErrorCode.ERROR100.getCode(), "媒体服务ID [" + mediaServer.getId() + " ] 已存在,请修改媒体服务器配置");
}
}
@@ -560,7 +560,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
@Override
public void delete(MediaServer mediaServer) {
mediaServerMapper.delOne(mediaServer.getId());
mediaServerMapper.delOne(mediaServer.getId(), userSetting.getServerId());
redisTemplate.opsForZSet().remove(VideoManagerConstants.ONLINE_MEDIA_SERVERS_PREFIX + userSetting.getServerId(), mediaServer.getId());
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + ":" + mediaServer.getId();
redisTemplate.delete(key);
@@ -572,13 +572,13 @@ public class MediaServerServiceImpl implements IMediaServerService {
@Override
public MediaServer getOneFromDatabase(String mediaServerId) {
return mediaServerMapper.queryOne(mediaServerId);
return mediaServerMapper.queryOne(mediaServerId, userSetting.getServerId());
}
@Override
public void syncCatchFromDatabase() {
List<MediaServer> allInCatch = getAllOnlineList();
List<MediaServer> allInDatabase = mediaServerMapper.queryAll();
List<MediaServer> allInDatabase = mediaServerMapper.queryAll(userSetting.getServerId());
Map<String, MediaServer> mediaServerMap = new HashMap<>();
for (MediaServer mediaServer : allInDatabase) {
@@ -606,7 +606,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
@Override
public List<MediaServer> getAllWithAssistPort() {
return mediaServerMapper.queryAllWithAssistPort();
return mediaServerMapper.queryAllWithAssistPort(userSetting.getServerId());
}

View File

@@ -89,6 +89,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
@Override
public MediaServer checkMediaServer(String ip, int port, String secret) {
MediaServer mediaServer = new MediaServer();
mediaServer.setServerId(userSetting.getServerId());
mediaServer.setIp(ip);
mediaServer.setHttpPort(port);
mediaServer.setFlvPort(port);