
工作
紫菜(Nori)
Happy with code!
展开
-
Jenkins 代理自动化-dotnet程序
确实为root,应该不是权限的问题,查找报错日志,也未发现 Permission 或 Deny 相关内容。本人,进入这个代理工作目录,编译是可以的,但是不知道为什么,代理无法编译。原来我手动启动 jenkins代理,使用的是 ubuntu, 所以,参考下面的链接,只是把程序换成 java程序,提前确认好需要的。4.1现在只能先看最上面一条错误,看看有没有什么线索。可以确定第一条错误应该是找不到这个条件变量。可自动实现,服务器重启,容器自动运行。主要将dockerfile 写好。从其服务器后,编译正常。原创 2025-04-15 14:51:37 · 1056 阅读 · 0 评论 -
Ubuntu20.04 设置开机自启
参考:Ubuntu20.04 设置开机自启_ubuntu进bos系统-优快云博客原创 2025-04-14 15:51:16 · 214 阅读 · 0 评论 -
NLog 配置规则
Configuration file · NLog/NLog Wiki原创 2025-04-08 11:48:22 · 93 阅读 · 0 评论 -
Jenkins-自动化部署-通知
我们使用通讯软件提供的外部api(不同的通讯软件,应该都可以添加类似这种机器人接口), 比如给qq群添加 机器人等,这里使用 钉钉为例。2.每个任务建议 在 Build Steps 中单独编写,并且都添加,成功或则失败的检查,如果失败直接阻止主要流程继续。使用jenkins部署,但有时不能立马部署,需要先通知相关人员,再部署,如果确实不能部署,可以留时间撤销。3.整合前面编写的功能,根据实际情况,一部分放在jenkins中,一部分通过 svn等加载进来。1.开始前我们添加,真正开始执行的等待时间;原创 2025-03-03 10:50:12 · 480 阅读 · 0 评论 -
短连接服务器压测-wrk
wrk 压测原创 2025-02-27 16:18:59 · 411 阅读 · 0 评论 -
短连接下消息设计探索
除了固定轮训消息,可能出现一些特定情况下的轮训消息,比如比赛结束,晋级信息等,客户端也不知道什么时候服务器计算出结果,可能服务器也不知道 -_-, 这样的就会导致类似这样的消息,也变成固定轮训,严重浪费资源。根据测试可以发现,客户端按现有频率,同时可能产生多个连接(客户端并发发送所有待发送协议),高峰时最多可占用7个服务器连接,正常情况下占用2个服务器连接,其实这样的情景已经不适合用短连接了,但是改成这个方案,可以有效的减少代码的改动,提高整体效率。这样的方案,不管,服务器是什么网络模型,都可以正常处理。原创 2025-02-18 15:05:13 · 235 阅读 · 0 评论 -
MongoDb-mongosh-登录
【代码】MongoDb-mongosh-登录。原创 2024-12-31 14:42:01 · 584 阅读 · 0 评论 -
拉取 Docker 镜像 失败问题
参考。原创 2024-12-31 11:36:16 · 442 阅读 · 0 评论 -
Nginx-proxy
参考。原创 2024-12-27 14:37:24 · 280 阅读 · 0 评论 -
nginx-反向代理-upstre
可以使用它配置多组 最总 打到的 服务器,而且可以配置多种参数。原创 2024-12-26 11:35:40 · 247 阅读 · 0 评论 -
删除 Dotnet 环境 或 升级Dotnet
其他相关系统,或版本,都可以在 参考中找到 解决办法。Note: 这里 以 ubuntu 20 为例。其他系统可以在这里找到相关教程。原创 2024-12-26 10:51:07 · 629 阅读 · 0 评论 -
Jenkins Api Token 访问问题
【代码】Jenkins Api Token 访问问题。原创 2024-12-23 17:46:11 · 516 阅读 · 0 评论 -
Linux 查看 进程相关信息
ps -aux | grep "进程名"原创 2024-12-23 15:53:10 · 127 阅读 · 0 评论 -
Jenkins 中 写 shell 命令执行失败,检测失败问题
由于项目的 依赖复杂,随着版本的增多,人工操作,手误几率太大,我们选取kenins 来自动化发布、更新。js 运行,确保运行 无错误。这里主要解决,发布 的 每个阶段,确保每个阶段执行成功。dotnet 编译,确保 编译 无误。原创 2024-12-17 20:21:02 · 615 阅读 · 0 评论 -
Jenkins 启动 程序 退出后 被杀死问题
参看。原创 2024-12-13 16:26:26 · 579 阅读 · 0 评论 -
根据修改时间 移动文件
【代码】根据修改时间 移动文件。原创 2024-12-12 15:05:56 · 116 阅读 · 0 评论 -
HttpListener 拒绝连接问题
HTTP1.1 501 502原创 2024-12-06 17:43:29 · 356 阅读 · 0 评论 -
紫龙游戏服务器面试
9.两个机器同时Tcp连接对方,是同一条链接吗。原创 2024-07-22 19:28:34 · 379 阅读 · 0 评论 -
C# typeof 与 示例的GetType()
typeof 输出这个示例的直接 类型 IBagItem, 也就是指向示例的类型。GetType() 源类型。原创 2024-01-11 20:18:57 · 640 阅读 · 0 评论 -
背包系统设计
这个系统算是所有系统的基础系统,不管是奖励的发放、还是其它业务,都是通过背包来工作的,但是不建议所有系统跟背包进行强关联,否则系统后期会很难维护,就像我们前期为了省事,考虑可能出现的各种交易,将所有的系统DbId跟背包关联,导致后期背包中存在很多无用的数据,而且一个数据存储在两个地方,本身就是违背设计的,但是由于各种原因,我们还是做了,希望大家做的时候想清楚,当然如果遇到一个喜欢应付的合作对象,你会发现,不管你怎样说他总有理由 ^ ^理论上,我们希望,减数据的时候先减 同itemId中 数量最小的;原创 2023-12-18 20:58:10 · 283 阅读 · 0 评论 -
好友系统设计
申请添加好友的人,动态的修改好友的数据,当然好友在线的话,可以给好友发一条消息,好友在线修改添加,如果离线,我们采取的方案是直接给这个好友添加数据(注意理论上这里会出现,玩家A修改玩家B的数据,玩家B此时刚好上线获取,发现拿的是老数据,导致数据错误),不过这个问题没有被提出来,是后面我自己分析出来了,后面跟做的人说,他感觉这个问题先这样,我相信大家都碰到过这种情况 ^ ^。这种设置可以只修改自己的数据,黑名单可以直接在表里体现,申请状态也可以直接在表里体现,可结合业务情况设计“好友申请”、“黑名单”功能。原创 2023-12-18 19:48:16 · 375 阅读 · 0 评论 -
红点系统设计
另外,玩家上线后会获取很多数据,只是提示作用,获取完整的数据效率低,大部分情况没有实际意义,使用红点可以很好的解决这个问题,玩家上线时只推送一个数组,表示各个系统的红点状况,如果玩家需要深入查看,则获取详细的信息。一般来说项目前期,基本不会关注红点提示问题,后期提了需求后,做了一部分发现,每做一个模块都需要添加一个协议,不如设计一个系统统一管理这个问题;原创 2023-12-15 20:56:11 · 141 阅读 · 0 评论 -
奖励Reward系统设计
奖励Reward系统设计原创 2023-12-15 20:45:22 · 260 阅读 · 0 评论 -
系统邮件、个人邮件系统
这个基本和系统邮件类似,就是奖励的获取建议,建议使用一个至少为byte的字段GotSign表示,如果后期存在 部分领取的情况,将这个字段分成几位,每一位代表奖励的领取情况即可。2.尽量不存储重复信息,比如同步的系统邮件,如果内容固定,个人邮件只需根据MailId即可获取邮件的内容,数据库不用再存储相关的内容字段,当然也要结合实际业务。1.直接获取全部的邮件内容,邮件数目多的时候会比较费,如果可以合理的控制邮件的过期时间,这个方案是可以的。所有人都可以接收的邮件,一般系统发放后,玩家登录时拉取。原创 2023-12-15 15:28:23 · 204 阅读 · 0 评论 -
条件系统、任务系统设计
这个主要是设置相关的业务触发类型,不同的业务设置不同的值,这里建议将类型至少设置为ushort, 太小后期会出问题 ^ ^这里建议将状态的枚举值设置的大一些,方便后期插入一些特殊的状态,要不然需要改许多已经写好的东西,踩过坑的都懂的为啥 ^ ^一般来说,当任务结束,也就是相应的条件完成,比如常见的主线、支线、每日、每周、委托、成就任务等。激活任务的条件id列表,满足则任务进入 Active 状态,否则 处于 Init 状态。完成或改变特定的条件,触发任务状态的改变,一般由各个系统触发;原创 2023-12-14 21:00:19 · 441 阅读 · 0 评论 -
设计一个多人在线的匹配系统
实际上,会有很大的可能,玩家会加入匹配再退出,当然写完功能我们也会跑测试,假设我们加入匹配,但是突然取消匹配,但程序已经匹到玩家,这个时候我们就需要处理很多状态,最简单就是,搜索清理所有数据,但这个会把所有任务暂停下来,可想而知,代价是很大的,当上百万人同时取消;3.在每次开始 主流程时 可以记录一个状态,当中间有玩家退出时,改变这个 状态,只有在 主流程开始到结束,这个中间 所记录的状态 依然为每次开始时标记的状态,才清理过期数据,如下代码。1.进入下一个流程,匹配队友,或匹配对手。原创 2023-12-14 17:28:04 · 930 阅读 · 0 评论 -
C# GC
参考。原创 2023-12-13 17:52:20 · 77 阅读 · 0 评论 -
数字越界分析
针对int 到 ushort的转换。原创 2023-12-11 20:24:22 · 77 阅读 · 0 评论 -
Linux查找文件内容
【代码】Linux查找文件内容。原创 2023-11-24 11:23:47 · 351 阅读 · 0 评论 -
Mysql字符串类型编码问题
A:调查后发现在数据库中使用的 account 编码为 utf8mb4_unicode_ci,而这种其实是不区分大小写的,后面我们根据情况,将编码换为 utf8mb4_bin就可以了。Q: 数据库 Redis 出现 字符比较不一致问题。原创 2023-11-17 10:59:12 · 158 阅读 · 0 评论 -
Linux Dotnet 程序堆栈监控
【代码】Linux Dotnet 程序堆栈监控。原创 2023-11-02 15:26:20 · 226 阅读 · 0 评论 -
C#细节问题
【代码】C#细节问题。原创 2023-11-01 10:34:21 · 160 阅读 · 0 评论 -
C# DateTime类型 直接使用Proto、Bson 问题
默认这里的时区为UTC、DateTimeOffset 为0,参考下面文档可找到;这就会导致设置的时区信息丢失,如下eg.// json08:00",// proto, 没有带时间戳// bson由于DateTime时C#的内建类型,不能使用 RuntimeTypeModel.Default.Add() 中添加查看源码可知,当;时序列化时会带时区。原创 2023-10-31 16:29:13 · 357 阅读 · 0 评论 -
Linux查找大文件
【代码】Linux查找大文件。原创 2023-10-25 14:40:41 · 133 阅读 · 0 评论 -
背包系统设计-获取数据量大问题
由于业务需要,灵活的,交易等原因,目前我们将很多不属于背包的功能放入背包,起初感觉这样省了不少事情,很多东西的获取直接走背包就好,不用添加任何协议。原创 2023-10-21 10:52:43 · 212 阅读 · 0 评论 -
权重设计介绍
经常会有许多活动、或则任务、当用户完成后,可以获得相关的奖励,当然可以是提前定死的几个、但如果想要 产出不同的 奖励的话,给每个物件配置相关的权重,就可以实现。之前在阿里的 负载均衡 比赛中,就有这个算法,RocketMQ 中包含多种负载算法,其中 权重 算法就属于其中一种,也是最实用的一种。weight 属于 (10,30] => index = 1。weight 属于 (30,40] => index = 2。weight 属于 (0,10] => index = 0。原创 2023-08-14 20:56:57 · 294 阅读 · 0 评论 -
..\obj\project.assets.json”。运行 NuGet 包还原以生成此文件。
有时拉取一个新的项目后出现,如标题中的问题,不管用的是Vs 还是Rider都有可能出现;当使用IDE的自动还原生成相关文件时,没有效果,一般第一次打开项目时IDE是会自动生成的。在项目根目录打开cmd,依次运行,就可以解决了。原创 2023-07-30 21:37:05 · 1958 阅读 · 2 评论