前言 今天下午3点,我按照惯例,打开游戏服务器,开新服部署嘛,游戏在腾讯开放平台,简单.闭着眼睛都OK.于是一轮子的复制黏贴拷贝,把服务器加起来,然后启动查看日志. ....突然发现不断的有Exception??搞什么飞机??丢失表Usr_user??刚才不是导了数据库吗?不存在?怎么会?? 我瞬间意识到.我摊上事了,我摊上大事了..检查刚才的复制黏贴,发现我没改数据库名,这一下子把第二个服的数据库整个干掉了. 我擦!!不会吧??背后一凉就软滩在凳子上了. 备份?没有. 数据库还有渣吗?sele…
项目介绍 我们将开始使用Gin框架开发一个api项目,我们起名为:云餐厅.如同饿了么,美团外卖等生活服务类应用一样,云餐厅是一个线上的外卖应用,应用的用户可以在线浏览商家,商品并下单. 该项目分为客户端和服务端两端程序. 1.客户端程序通过接口从服务端获取数据,获取结果后展示数据. 2.服务端程序提供接口Api的访问功能,执行数据库操作,并组织数据返回. 客户端介绍 云餐厅客户端使用Vue.ES6.Webpack等技术进行开发,项目开发需要具备前端开发技能,我们聚焦于后端Api功能的开发. 环境…
å. 前言 现在的大部分 Java 应用基本都是通过 Maven 进行组织的,不论是分布式应用还是单体集群应用往往都会通过一个 父 POM 加若干子 POM 完成项目的组织.然而这种多应用多模块的拆分就带来了一个巨大的体力成本 --- 发包 举个例子,说明下为什么会出现这种情况: 上面这个图中有两个应用 portal 和 dump,其中 portal 的四个包是需要对外引用的也就是说 client .domain.common.log 这几个包是两个应用共享的二方包.而共享不可避免的会带来竞争!…
原文:https://www.iteye.com/blog/tyrion-2293369 上午线上某应用的一台JVM的CPU占比突然飙高到192%,并且一直下不来,导致监控一直告警,好久没处理这种问题了,现在将问题排查步骤总结记录一下. 1.通过top命令查看当前机器的CPU使用情况 此时发现如果是Java的进程占用过高,并且一直下不来,则排查是什么线程导致占比过高.以图中进程举例,假如发现PID为31357的Java进程占CPU比一直很高,则记录下它的PID 2.查看Java进程里面的线程的占…
前言 先抛一个问题给我聪明的读者,如果你们使用微服务SpringCloud-Netflix进行业务开发,那么线上注册中心肯定也是用了集群部署,问题来了: 你了解Eureka注册中心集群如何实现客户端请求负载及故障转移吗? 可以先思考一分钟,我希望你能够带着问题来阅读此篇文章,也希望你看完文章后会有所收获! 背景 前段时间线上Sentry平台报警,多个业务服务在和注册中心交互时,例如续约和注册表增量拉取等都报了Request execution failed with message : Conn…
下游发现接口可用率非100%,马上线上查看,发现数据在有些情况下通用补数的数据是空, 有20%的用户是没有相应偏好等的数据的,需要通用补数来补数,结果通用补数没有数据. 通用补数数据的检查报警时必须要存在的,否则通用补数导致线上程序bug,总结一下,避免 后续再犯.…
某天,运营反馈,某商品下单异常 1.原来是一个空指针报错 根据用户输入的下单关键信息搜索日志系统看到如下报错 stackTrace: "java.lang.NullPointerException at com.auto.order.service.utils.OrderingUtils.buildParentOrderData(OrderingUtils.java:194) at com.auto.order.service.cart.impl.OrderingCommonServiceImp…
用户头像上传 功能介绍 在用户中心中,允许用户更换自己的头像.因此,我们开发上传一张图片到服务器,并保存成为用户的头像. 接口解析 在用户模块的控制器MemberController中,解析头像上传的接口,解析如下: func (mc *MemberController) Router(engine *gin.Engine) { ... //用户头像上传 engine.POST("/api/upload/avator",mc.uploadAvator) } 在文件上传过程中,后台服务器…
缘起 双十一如期而至,此时的我因为在处理客户的一个问题已经陷入了忙碌.突然,不断接到驻场实施发来的反馈,都是相同的反馈--"客户端操作缓慢". 我现在负责的服务器是一台接口服务器,所有的卖家都要通过这台服务器连接到自己的数据库上,不得小觑.于是我立马放下手头的话,打开了我事先安装好的服务器监控软件(netdata),便看到了下面的警告: 其实,作为一个服务器端新手,我并不知道什么意思.但是客户反馈慢啊!屁股一想也知道是因为服务器资源不够了嘛!于是,我立马把一小部分客户的配置切换到了另外…
功能和背景介绍 在项目的登录功能中,如果在登录时发现用户名和密码在用户表中不存在,会自动将用户名和密码保存在用户表中,创建一个新的用户. 因此,除了使用手机号和验证码登录以外,还支持使用用户名.密码进行登录. 如果首次使用手机号和验证码进行登录,会默认将手机号作为用户名创建新的用户,将用户结构体对象的数据保存在数据库中. 因此,我们有必要创建用户表. 用户数据结构体定义 在项目中,使用结构体定义用户数据结构.结构体定义如下所示: type Member struct { Id int64 `xo…