更改 mysql 数据库为 原生数据库,放弃 docker 容器数据库

This commit is contained in:
Jack 2025-07-29 19:54:05 +08:00
parent d6a727f9fa
commit 30dc0e976e
11 changed files with 77 additions and 41 deletions

View File

@ -43,10 +43,10 @@ cd /data/sh
```shell
进入 docker 控制台
cd /var/lib/mysql
mysqldump -u root -p mall_prod | gzip > mall_prod_20250723.sql.gz
mysqldump -u root -p mall_prod | gzip > mall_prod_20250729.sql.gz
在宿主机找到:
/data/mysql/data/mall_prod_20250630.sql.gz
/data/mysql/data/mall_prod_20250729.sql.gz
```
清除 docker 日志

View File

@ -22,10 +22,17 @@ public class DealUserAnalyticsListener {
@Autowired
private AccountUserAnalyticsService accountUserAnalyticsService;
// @RabbitHandler
// public void listener(byte[] data, Channel channel, Message message) throws IOException, InterruptedException {
// // 将byte[]转换为String然后调用现有的处理逻辑
// String dataStr = new String(data, StandardCharsets.UTF_8);
// listener(dataStr, channel, message);
// }
@RabbitHandler
public void listener(String data, Channel channel, Message message) throws IOException, InterruptedException {
AccountUserAnalytics accountUserAnalytics = JSONUtil.toBean(data, AccountUserAnalytics.class);
String messageId = message.getMessageProperties().getMessageId();
// String messageId = message.getMessageProperties().getMessageId();
try {
boolean flag = accountUserAnalyticsService.saveOrUpdate(accountUserAnalytics);

View File

@ -22,10 +22,17 @@ public class DealUserInfoListener {
@Autowired
private AccountUserInfoService accountUserInfoService;
// @RabbitHandler
// public void listener(byte[] data, Channel channel, Message message) throws IOException, InterruptedException {
// // 将byte[]转换为String然后调用现有的处理逻辑
// String dataStr = new String(data, StandardCharsets.UTF_8);
// listener(dataStr, channel, message);
// }
@RabbitHandler
public void listener(String data, Channel channel, Message message) throws IOException, InterruptedException {
AccountUserInfo accountUserInfo = JSONUtil.toBean(data, AccountUserInfo.class);
String messageId = message.getMessageProperties().getMessageId();
// String messageId = message.getMessageProperties().getMessageId();
try {
boolean flag = accountUserInfoService.saveOrUpdate(accountUserInfo);

View File

@ -22,10 +22,17 @@ public class ExperienceListener {
@Autowired
private AccountUserInfoService accountUserInfoService;
// @RabbitHandler
// public void listener(byte[] data, Channel channel, Message message) throws IOException, InterruptedException {
// // 将byte[]转换为String然后调用现有的处理逻辑
// String dataStr = new String(data, StandardCharsets.UTF_8);
// listener(dataStr, channel, message);
// }
@RabbitHandler
public void listener(String data, Channel channel, Message message) throws IOException, InterruptedException {
ExperienceTO experienceTO = JSONUtil.toBean(data, ExperienceTO.class);
String messageId = message.getMessageProperties().getMessageId();
// String messageId = message.getMessageProperties().getMessageId();
try {
boolean flag = accountUserInfoService.experience(experienceTO.getUser_id(), experienceTO.getExp(), experienceTO.getExp_type_id(), experienceTO.getDesc());

View File

@ -22,10 +22,17 @@ public class UpgradeUserLevelListener {
@Autowired
private AccountUserInfoService accountUserInfoService;
// @RabbitHandler
// public void listener(byte[] data, Channel channel, Message message) throws IOException, InterruptedException {
// // 将byte[]转换为String然后调用现有的处理逻辑
// String dataStr = new String(data, StandardCharsets.UTF_8);
// listener(dataStr, channel, message);
// }
@RabbitHandler
public void listener(String data, Channel channel, Message message) throws IOException, InterruptedException {
UserLevelTO userLevelTO = JSONUtil.toBean(data, UserLevelTO.class);
String messageId = message.getMessageProperties().getMessageId();
// String messageId = message.getMessageProperties().getMessageId();
try {
boolean flag = accountUserInfoService.checkUpdateUserLevel(userLevelTO.getUser_id(), userLevelTO.getUser_exp_total(), userLevelTO.getUser_fans_total(), userLevelTO.getUser_spend_total(), 0, 0, 0);

View File

@ -7,8 +7,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.io.InputStream;
@ -89,10 +89,14 @@ public class IpUtil implements ApplicationRunner {
try {
List<String> split = Arrays.asList(ss.split("\\|"));
if (split.size() >= 4) {
districtVo.setCountry(split.get(0)); // 设置国家
districtVo.setProvince(split.get(2)); // 设置省份
districtVo.setCity(split.get(3)); // 设置城市
String[] parts = ss.split("\\|");
// 检查分割后的数组长度避免数组越界
if (parts.length >= 4) {
// 对每个部分进行非空检查防止空指针异常
districtVo.setCountry(parts[0] != null ? parts[0] : ""); // 设置国家
districtVo.setProvince(parts[2] != null ? parts[2] : ""); // 设置省份
districtVo.setCity(parts[3] != null ? parts[3] : ""); // 设置城市
} else {
log.debug("IP{} 解析结果格式不符合要求,原始数据: {}", ip, ss);
return null;
@ -116,7 +120,7 @@ public class IpUtil implements ApplicationRunner {
* @throws Exception 加载过程中可能抛出的异常
*/
@Override
public void run(ApplicationArguments args) throws Exception {
public void run(ApplicationArguments args) {
try {
log.info("开始加载 ip2region 数据文件");
@ -137,13 +141,8 @@ public class IpUtil implements ApplicationRunner {
searcher = Searcher.newWithBuffer(bytes);
log.info("成功加载 ip2region 数据文件。");
// 测试本地IP地址解析
try {
String testResult = searcher.search("127.0.0.1");
log.info("测试本地IP解析结果: {}", testResult);
} catch (Exception e) {
log.warn("本地IP测试解析失败: {}", e.getMessage());
}
} catch (ArrayIndexOutOfBoundsException e) {
log.error("解析IP地址的地区信息时发生数组越界异常原始数据: {}", e);
} catch (IOException e) {
log.error("加载 ip2region 失败。", e);
} catch (Exception e) {

View File

@ -42,13 +42,6 @@ public class DelayMessageReceiver {
@Resource
private PushMessageService pushMessageService;
@RabbitListener(queues = MqConstant.DEAD_LETTER_QUEUE_NAME)
// public void handleExpiredMessage(byte[] data, Channel channel, Message message) {
// // 将byte[]转换为String然后调用现有的处理逻辑
// String dataStr = new String(data, StandardCharsets.UTF_8);
// handleExpiredMessage(dataStr, channel, message);
// }
/**
* 监听死信队列处理过期的延迟消息
*

View File

@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@Service
@Slf4j
@ -22,6 +23,13 @@ public class MessageListener {
@Autowired
private MessageService messageService;
@RabbitHandler
public void listener(byte[] data, Channel channel, Message message) {
// 将byte[]转换为String然后调用现有的处理逻辑
String dataStr = new String(data, StandardCharsets.UTF_8);
listener(dataStr, channel, message);
}
@RabbitHandler
public void listener(String data, Channel channel, Message message) {
MsgTO msgTO = JSONUtil.toBean(data, MsgTO.class);

View File

@ -66,8 +66,7 @@ public class OrderPayedListener {
@RabbitHandler
public void listener(String data, Channel channel, Message message) throws IOException, InterruptedException {
String messageId = message.getMessageProperties().getMessageId();
// String messageId = message.getMessageProperties().getMessageId();
List<String> order_id_row = Convert.toList(String.class, data);
try {

View File

@ -548,7 +548,7 @@ public class ShopPageBaseServiceImpl extends BaseServiceImpl<ShopPageBaseMapper,
List<Long> item_id_104 = new ArrayList<>();
for (Object datum : data) {
JSONObject jsonObject = cn.hutool.json.JSONUtil.parseObj(datum);
JSONObject jsonObject = JSONUtil.parseObj(datum);
List ids = Convert.toList(jsonObject.get("ids"));
item_id_104.addAll(ids);
@ -562,6 +562,15 @@ public class ShopPageBaseServiceImpl extends BaseServiceImpl<ShopPageBaseMapper,
}
}
// List<Long> item_ids = new ArrayList<>();
// QueryWrapper<ShopProductItem> shopProductItemQueryWrapper = new QueryWrapper<>();
// itemEQueryWrapper.in("item_id", item_id_104);
// itemEQueryWrapper.eq("item_enable", 1001);
// List<Serializable> item_ids_key = shopProductItemService.findKey(shopProductItemQueryWrapper);
// if (CollUtil.isNotEmpty(item_ids_key)) {
// item_ids = Convert.toList(Long.class, item_ids_key);
// }
JSONArray data1 = new JSONArray();
for (Object datum : data) {
JSONObject jsonObject = JSONUtil.parseObj(datum);

View File

@ -478,10 +478,10 @@
<sentinel.transport.dashboard>172.16.0.11:8718</sentinel.transport.dashboard>
<!-- mysql配置 -->
<mysql.host>172.16.0.11</mysql.host>
<mysql.port>3306</mysql.port>
<mysql.port>13306</mysql.port>
<mysql.db>mall_prod</mysql.db>
<mysql.user>webprod</mysql.user>
<mysql.pwd>v9W2ER6KG9HVtH1mjAytRvdr</mysql.pwd>
<mysql.pwd>J1XivNvAcR21}pA6Cysm.E29</mysql.pwd>
<mysql.driver>com.mysql.cj.jdbc.Driver</mysql.driver>
<!-- redis5配置 -->
<!-- <redis.host>172.16.0.11</redis.host>-->