跳至主要内容

博文

目前显示的是 十二月, 2021的博文

使用CoreDNS加快XBOX在中国大陆的下载速度

Welcome file 简介 最近弄了个xbox series主机,在主机上下载游戏的时候,发现下载速度的随机性很大,有时候能有100Mbps左右,大部分时候在10-20Mbps之间。经过搜索,发现其实大陆是有xbox的服务器的,只是默认分配不到。也看了些方案,说是用nginx之类的web服务器拦截http请求,然后返回301或302状态,让xbox跳回带cn后缀的服务器。看了上述原理,我感觉在DNS上完成应该就行,于是在家里服务器上搭建了CoreDNS。选用CoreDNS是因为之前在k8s上用过CoreDNS,对相关配置比较熟悉,性能也不错。 安装和配置CoreDNS CoreDNS的安装十分简单,直接下载对应平台[1]的二进制包就行,也可以用Docker安装,看个人喜好。 配置只需要在安装包的当前目录下建立一个名字为 Corefile 的文件就行,最初我的配置如下: . { rewrite name substring xboxlive.com xboxlive.cn forward . /etc/resolv.conf log errors cache } 保存之后直接启动 ./coredns 。 启动之后可以使用dig命令查看是否生效(可以修改@后的地址为服务器地址): dig @127.0.0.1 www.xboxlive.com 通过查看应答,发现跟之前的不一样,而跟xboxlive.cn的返回一样,表示已部署成功并生效。 在xbox中设置dns 打开xbox的网络设置,然后在高级设置中配置对应地址就行。 测试xbox下载速度 马上去试了下载游戏,发现在浏览游戏界面时的速度变快了,但是下载速度还是在10-20Mbps之间。觉得有点奇怪,再次搜索相关的文章,发现可能是下载的游戏不是国区游戏的关系,最好是找到亚洲其他国家cdn的ip地址替换[2]。 经过测试几个cdn地址,最终的 Corefile 配置如下: . { hosts { 219.76.10.33 assets1.xboxlive.com 219.76.10.184 assets1.xboxlive.com 219.76.10.3

让Quartz Scheduler在小写表名下运行

Welcome file 简介 在使用Quartz框架时,框架内的sql语句都是使用大写的表名来操作,但是在公司内统一小写并且开启了大小写敏感的情况下,Quartz就会报错。Quartz官方也不打算提供可配置的大小写选项,只是说开启数据库大小写不敏感就可以解决[1]。在很多情况下,公司内的规范都不是个人能轻易改变的,所以比较靠谱的方法就是改Quartz框架的代码。还好框架提供了足够的扩展点,让使用者可以解决这个问题。 修改sql执行类的配置 与sql执行相关的配置有tablePrefix、driverDelegateClass和lockHandler.class,其中后两项是使用新的实现替换框架内置的实现。新的实现可以直接使用Quartz框架的,只需要把类中对应的表名大写改成小写即可,可参考基于Spring Boot的示例工程[2]。不过需要注意的是目前我只使用到了基于Cron的调度功能,所以如果有使用其他实现,需要再对示例工程做一些相应的修改。 基于Spring Boot的application配置示例: spring.datasource.url = jdbc:mysql://127.0.0.1:3306/quartz_demo spring.datasource.username = root spring.datasource.password = root spring.quartz.job-store-type = jdbc spring.quartz.properties.org.quartz.jobStore.tablePrefix = qrtz_ spring.quartz.properties.org.quartz.jobStore.driverDelegateClass = com.nereusyi.demos.quartz.StdJDBCDelegate spring.quartz.properties.org.quartz.jobStore.lockHandler.class = com.nereusyi.demos.quartz.StdRowLockSemaphore 参考资料 [1]quartz-scheduler github issues: https://g