现在的服务器,只需要舍得堆配置,单台服务器接入100W连接问题也不大,但是总有避免单点故障或其他场景的需要,我们要把网关设计成允许多节点的服务。由此也会衍生出一系列如客户端状态管理、消息的路由处理等问题需要处理,下面是一个简单的分布式TCP接入网关实现和说明。消息流程设备A -> 网关A -&...
红蓝排队最近看到一个有趣的小逻辑谜题,就是红蓝站队,规则如下:规则假设有10个人,每个人都带着红色或者蓝色的头盔,红蓝颜色不一定是平分的,每个人都可以看到别人的头盔颜色但是看不见自己的颜色,成员间不能交流,所以也不可能从别人那里知道自己的颜色,现在这十个人需要排队,有什么策略可以保证他们能排成一排并...
Golang服务稳定性保障:性能监控工具与常见问题解决方案引言在当今高并发的微服务架构中,Golang因其出色的性能、高效的并发模型和简洁的语法,成为许多企业的首选开发语言。然而,即使是最优化的Go服务,也可能因内存泄漏、Goroutine失控、GC压力过大等问题导致稳定性下降。本文将介绍如何通过性...
开篇因为玩客云服务停止了,百度网盘、阿里云盘之类的下载速度有太慢不适合局域网内的文件保存和传输,所以只能另询出路。玩客云还是可以折腾一下的,在B站搜索相关教程发现了cassos系统,也试用了一段时间,除了要偶尔忍受会掉盘和重启也不一定能连上的问题外,公平来说如果作为局域网内的小NAS还是够用的,毕竟...
openwrt是一个功能强大的软路由系统,今天要说的就是怎么用zerotier搭建自己的大内网服务申请账号启动zerotier服务新建接口和防火墙测速和测试...
在项目中,经常遇到接口响应慢的问题,严重的会造成接口超时,体验十分不好,此时就要定位原因进行优化,最简单的方式有对关键接口增加耗时日志打印,但是对于循环调用的接口,日志打印没法计算总时间,此时就要用golang 自带的性能分析工具 pprof 定位原因了。下面以导出报告优化为例介绍pprof的使用。...
在程序开发过程中,公司要求以docker镜像的形式提交版本用于测试,一般都是会有配套的CICD流程,本地打包镜像的方式不太适合,只能由cicd执行,所以需要在项目中提供Dockerfile,下面提供一个通用的Dockerfile模版通用模版FROM golang:1.19.3-alpine as b...
前言在面试中,经常会被问到topK问题,一般情况下都可以用最大堆来解决,但是如果没有自己写过堆的实现,可能经不住细问而面试失败(博主泪目T_T),所以专门写这篇文章介绍堆,争取做到量大量好还管饱。堆的介绍堆说白了就是一个特殊的容器,支持对元素进行一定规则的比较后存储到容器中,最大堆就是只保存最大元素...
在开发过程中,常常需要验证sql语句,但是spring-boot-starter-data-jpa只支持输出sql不会输出参数,为了方便,集成log4jdbc。#一、引入依赖 <dependency> <groupId>com.google...
从JAVA和JS转过来的苦逼工程师,因为以上两门语言,一般情况下是没有指针的说法的,所以现在用go一通折腾,有时候就是引用指针傻傻分不清楚,或者声明指针未初始化报错的问题。不得已,写下此博客,记录自己菜鸟之路。指针// 定义一个结构体type Person struct{Name stringAge...
有时候在开发中会遇到方法模版的问题,具体场景为:1、为了代码质量,会将一个出现较多的代码抽出来,放入抽象父类,然后子类继承父类。2、但是如果抽出来的方法需要使用到类的变量就会变的麻烦,因为JAVA中方法支持Override,但是变量是不行的,所以如果直接在父类中通过变量名使用变量,那么当我们的子类变...
看起来有点绕,说一个具体的场景应该容易理解一点:从APP向服务器发送一个改变灯光的HTTP请求,服务器返回执行是否成功的结果;服务器接收到HTTP请求后,通过MQTT向台灯下发控制指令,等待台灯回复①,返回结果;台灯接收到MQTT指令后,执行命令,然后通过MQTT回复消息给服务器②;通常来说,后台会...
使用 Docker Compose 部署 Nginx Proxy Manager 作为网关介绍 NginxNginx 是一款高性能的开源反向代理服务器,用于处理网络流量并提供负载均衡、缓存、SSL/TLS 加密以及许多其他功能。不过虽然Nginx 在许多方面都表现出色,但配置它可能会变得相当繁琐:语...
修改完代码后,就不能用官方镜像了,所以需要自己重新打包镜像到本地库,开始吧。修改DockerfileDockerfile在scripts/Dockerfile,需要加一下GOPROXY配置,否则go mod download会很慢WORKDIR /go/src/github.com/go-sonic...
这篇文章介绍怎么修改主题,以及完善官方代码中不支持更新远程主题的实现。发现问题官方的代码中,首次添加远程主题仓库时可以成功,但是如果远程仓库主题文件更新了,想在后台更新同步却不支持(not supported),先删除重新下载也不行(already exists)。修改代码通过查看源码,发现更新主题...
最近在搭建个人博客,最开始的时候使用HaloHalo,但是奈何服务器2C2G的配置遭不住Java内存大户,所以只能寻找替代品,最后找到了go-sonicSonic,使用golang开发,内存占用小,而且现在我主要开发语言也是golang,正好拿来就用,修改也方便。该文章记录了修改源码,修改主题,自己...
有些系统SSH服务不是默认开启的,如docker或者vm安装ubuntu系统,就需要手动安装和打开。安装和连接安装服务apt update && apt install openssh-server运行服务/etc/init.d/ssh start加入自启动systemctl ena...
为什么选择golang,出于什么考虑Golang以其高效的并发模型和编译速度,使其成为处理高并发情况下的优秀选择。其轻量级的协程(goroutine)机制可以在有限的资源下处理大量的并发请求,从而提供更好的性能。Golang以静态链接方式生成可执行文件,这意味着可以将所有依赖项包含在二进制文件中,减...