【RabbitMQ】异步更新数据
场景
需求如下:
有个玩家基本属性配置表,
配置了玩家拥有的基本属性值,当玩家配置表里面的属性调整:比如:策划规定,这个版本需要对玩家力量值增加,全服玩家的基本面板里面的力量值就需要增加,策划想让玩家多一个抗毒时间属性,那么玩家需要获得这个抗毒时间属性。注意:玩家因为等级提升力量值就不要用数据配置表的属性,而是使用玩家自己属性+数据配置表的基础数据(追加值的问题这里不是重点)
表设计
玩家数据配置表, player_attribute_config
属性
类型
备注
id
BIGINT
主键ID
attribute_name
VARCHAR
属性名称 (如:力量, 体力, 抗毒)
attribute_value
VARCHAR
基础属性值 (策划设定的默认值)
created_time
TIMESTAMP
创建时间
update_time
TIMESTAMP
修改时间
玩家信息表, PlayerInfo
属性
类型
备注
id
B ...
【i18n】消息内容实现多语言化
场景
当系统固定消息/标题文字,需要面向多个国家的时候,i18n就能很好解决了
概述
国际化(Internationalization,简称i18n)是指在软件开发中设计和实现应用程序,使其能够适应不同语言、文化和区域设置的需求,而无需对代码进行重大修改。国际化通常与本地化(Localization,简称l10n)一起使用。国际化关注的是软件的通用设计,而本地化则是针对特定语言和地区的内容调整。
配置
spring中已经有i18n相关的依赖了
1、引入依赖
1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency>
2、创建i18n文件
根据自己项目国际化语种配置, 此处的结构
123456789src└── main └── resources └── i18n ├ ...
【Linux】时区配置
场景
今日看日志的时候,发现日志的时间跟当前时间不一样,后面发现就是当前Linux系统的时区不对,java的logback-spring
是用linux的时区的时间
操作
1、检查服务器当前时区
1timedatectl
结果显示时区为Etc/UTC (UTC, +0000) , 应该采用
Asia/Shanghai (CST, +0800)
1234567 Local time: Mon 2024-09-02 01:42:20 UTC Universal time: Mon 2024-09-02 01:42:20 UTC RTC time: Mon 2024-09-02 01:42:04 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: no NTP service: inactive ...
【RabbitMQ】Window安装&启动MQTT插件
Window搭建
官网地址:https://www.rabbitmq.com/
下载MQ安装包
RabbitMQ的位置:https://www.rabbitmq.com/docs/install-windows
下载Erlang https://erlang.org/download/otp_versions_tree.html
Erlang与RabbitMQ版本适配:https://www.rabbitmq.com/docs/which-erlang
安装RabbitMQ前需要安装 Erlang依赖
我这里选择的RabbitMQ版本为 rabbitmq-server-3.13.7,根据版本适配选择,
这里应该选择下载 maint-26 版本的
maint-26 版本的Erlang 依赖下载页面:
rabbitmq下载页
下载RabbitMQ与OTP后,内容如下
安装MQ
分别安装两个程序傻瓜式安装(保存目录不能空格与中文)
安装opt
傻瓜式安装
环境变了
opt环境变量配置,填写opt的安装路径
安装rab ...
【Redis】linux开放Redis服务配置
场景
配置远程redis服务,使得本地能连接方便查看缓存数据
配置
通过以下步骤来确保远程 Redis 服务器配置正确,允许外部访问
编辑Redis配置文件:
在远程服务器上找到 redis.conf 文件。通常在
/etc/redis/redis.conf 或 /etc/redis.conf
目录下。
1sudo vim /etc/redis/redis.conf
修改 bind 设置:
找到 bind 配置项,并将 127.0.0.1 其设置为
0.0.0.0,允许所有 IP 地址连接。找到类似于以下内容的行:
1bind 0.0.0.0
检查 protected-mode 设置
确保 protected-mode 设置为
no,允许外部访问。如果 protected-mode 设置为
yes,即使 bind 设置为
0.0.0.0,也可能会阻止外部连接。
1protected-mode no
重启 Redis 服务:
1234# 重启redis服务sudo systemctl restart redis# 查看redis服务状态sudo s ...
【Feign】SpringBoot单元测试Feign调用前拦截认证
场景
A服务与B服务都注册到nacos中,A服务由于业务功能调用B服务的功能,因此A服务会远程调用B服务。
而此处B服务(系统)采用了SpringSecurity 做了认证,因此A服务需要在Fegin调用B服务前需要获取认证令牌(Token)
解决方案
A服务配置一个拦截器,当使用Fegin调用前,需要在请求头上加上Token(获取Token方式采用HttpClient)
配置
下面为A服务(系统)需要添加的配置:
Feign 客户端
12345678// b服务订单FeignClient@FeignClient(name = "b-service-name")public interface OrderFeignService { @GetMapping("/api/orderInfos") List<orderInfoVO> getOrderInfos();}
过滤器
123456789101112131415161718192021222324252627282930313 ...