Logo

分类:默认分类

13 篇文章

面试常见设计题-设计一个多节点TCP接入网关

现在的服务器,只需要舍得堆配置,单台服务器接入100W连接问题也不大,但是总有避免单点故障或其他场景的需要,我们要把网关设计成允许多节点的服务。由此也会衍生出一系列如客户端状态管理、消息的路由处理等问题需要处理,下面是一个简单的分布式TCP接入网关实现和说明。消息流程设备A -> 网关A -&...

Golang服务稳定性保障:性能监控工具与常见问题解决方案

Golang服务稳定性保障:性能监控工具与常见问题解决方案引言在当今高并发的微服务架构中,Golang因其出色的性能、高效的并发模型和简洁的语法,成为许多企业的首选开发语言。然而,即使是最优化的Go服务,也可能因内存泄漏、Goroutine失控、GC压力过大等问题导致稳定性下降。本文将介绍如何通过性...

golang性能优化-pprof的使用

在项目中,经常遇到接口响应慢的问题,严重的会造成接口超时,体验十分不好,此时就要定位原因进行优化,最简单的方式有对关键接口增加耗时日志打印,但是对于循环调用的接口,日志打印没法计算总时间,此时就要用golang 自带的性能分析工具 pprof 定位原因了。下面以导出报告优化为例介绍pprof的使用。...

使用docker打包和运行golang程序,和打包加速优化

在程序开发过程中,公司要求以docker镜像的形式提交版本用于测试,一般都是会有配套的CICD流程,本地打包镜像的方式不太适合,只能由cicd执行,所以需要在项目中提供Dockerfile,下面提供一个通用的Dockerfile模版通用模版FROM golang:1.19.3-alpine as b...

java-spring boot打印sql参数 log4jdbc与logback配置

在开发过程中,常常需要验证sql语句,但是spring-boot-starter-data-jpa只支持输出sql不会输出参数,为了方便,集成log4jdbc。#一、引入依赖 <dependency> <groupId>com.google...

golang入坑-写Go代码时遇到的问题记录

从JAVA和JS转过来的苦逼工程师,因为以上两门语言,一般情况下是没有指针的说法的,所以现在用go一通折腾,有时候就是引用指针傻傻分不清楚,或者声明指针未初始化报错的问题。不得已,写下此博客,记录自己菜鸟之路。指针// 定义一个结构体type Person struct{Name stringAge...

java-方法模版中,父类方法使用子类同名变量的方法

有时候在开发中会遇到方法模版的问题,具体场景为:1、为了代码质量,会将一个出现较多的代码抽出来,放入抽象父类,然后子类继承父类。2、但是如果抽出来的方法需要使用到类的变量就会变的麻烦,因为JAVA中方法支持Override,但是变量是不行的,所以如果直接在父类中通过变量名使用变量,那么当我们的子类变...

java-将异步API改成同步调用的方法

看起来有点绕,说一个具体的场景应该容易理解一点:从APP向服务器发送一个改变灯光的HTTP请求,服务器返回执行是否成功的结果;服务器接收到HTTP请求后,通过MQTT向台灯下发控制指令,等待台灯回复①,返回结果;台灯接收到MQTT指令后,执行命令,然后通过MQTT回复消息给服务器②;通常来说,后台会...

使用docker-compose部署nginx-proxy-manager作为网关

使用 Docker Compose 部署 Nginx Proxy Manager 作为网关介绍 NginxNginx 是一款高性能的开源反向代理服务器,用于处理网络流量并提供负载均衡、缓存、SSL/TLS 加密以及许多其他功能。不过虽然Nginx 在许多方面都表现出色,但配置它可能会变得相当繁琐:语...

使用docker-compose部署go-sonic个人博客以及简单二次开发记录(三)使用自己仓库代码替代官方镜像

修改完代码后,就不能用官方镜像了,所以需要自己重新打包镜像到本地库,开始吧。修改DockerfileDockerfile在scripts/Dockerfile,需要加一下GOPROXY配置,否则go mod download会很慢WORKDIR /go/src/github.com/go-sonic...

使用docker-compose部署go-sonic个人博客以及简单二次开发记录(二)修改支持主题更新

这篇文章介绍怎么修改主题,以及完善官方代码中不支持更新远程主题的实现。发现问题官方的代码中,首次添加远程主题仓库时可以成功,但是如果远程仓库主题文件更新了,想在后台更新同步却不支持(not supported),先删除重新下载也不行(already exists)。修改代码通过查看源码,发现更新主题...

使用docker-compose部署go-sonic个人博客以及简单二次开发记录(一)原始包运行

最近在搭建个人博客,最开始的时候使用HaloHalo,但是奈何服务器2C2G的配置遭不住Java内存大户,所以只能寻找替代品,最后找到了go-sonicSonic,使用golang开发,内存占用小,而且现在我主要开发语言也是golang,正好拿来就用,修改也方便。该文章记录了修改源码,修改主题,自己...

在ubuntu开始ssh远程访问

有些系统SSH服务不是默认开启的,如docker或者vm安装ubuntu系统,就需要手动安装和打开。安装和连接安装服务apt update && apt install openssh-server运行服务/etc/init.d/ssh start加入自启动systemctl ena...