go 循环遍历子菜单

转载请注明来源:https://janrs.com/f597 CREATE TABLE `permission_menu` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT 'primary id', `parent_id` int(10) DEFAULT 0 COMMENT 'parent id', `type` tinyint(2) DEFAULT

如何用Golang处理每分钟100万个请求

转载请注明来源:https://janrs.com/9yaq 在我设计一个分析系统中,我们公司的目标是能够处理来自数百万个端点的大量POST请求。web 网络处理程序将收到一个JSON文档,其中可能包含许多有效载荷的集合,需要写入Amazon S3,以便我们的地图还原系统随后对这些数据进行操作。 传统上,我们会研究创建一个工人层架构,利用诸如以下东西: Sidekiq Resque Delayed

Grpc工具buf.build使用

转载请注明来源:https://janrs.com/iclb 文件以及目录的总体结构如下: userservice ├── Makefile ├── buf.gen.yaml ├── buf.work.yaml ├── cmd │   ├── main.go │   └── server │   ├── grpc.go │   ├── http.go │   ├── run.go │   ├──

Golang Grpc 高级使用 – Deadlines, Cancellation, Error Handling, Multiplexing

点击 | 我的GitHub 转载请注明来源:https://janrs.com/xag1 超时是分布式系统中常用的一种模式。尽管截止日期与超时相似,但对于gRPC来说,有一个关键的区别。超时是一个选项,让客户决定他们愿意等待服务器响应的时间,并且是在每个客户端本地应用。因此,它不可能在gRPC请求的整个生命周期内应用。这就是为什么我们需要使用截止日期。 超时允许你在微服务架构中避免无

用GoRoutines高性能同时进行多个Api调用

点击 | 我的GitHub 转载请注明来源:https://janrs.com/ppzi Golang是高效的,非常高效。这种效率在很大程度上要归功于它在处理并发性问题时的独特抽象。例如,Java将其线程映射为操作系统线程,而Go使用自己的goroutines调度器将其轻量级goroutines从操作系统线程中进一步抽象出来。简而言之,Golang在使用操作系统线程方面非常节俭;如果

Go创建Grpc链接池

点击 | 我的GitHub 转载请注明来源:https://janrs.com/x0gn gRPC 四种基本使用 请求响应模式 客户端数据流模式 服务端数据流模式 双向流模式 常见的gRPC调用写法 func main(){ //... some code // 链接grpc服务 conn , err := grpc.Dial(":8000",grpc.WithI

CICD部署04 – jenkins + gitlab + harbor + k8s

Docker 部署 harbor 转载请注明出处:https://janrs.com wget https://github.com/docker/compose/releases/download/v2.10.1/docker-compose-linux-x86_64 wget https://github.com/goharbor/harbor/releases/download

CICD部署03 – jenkins + gitlab + harbor + k8s

Docker 部署 jenkins 并连接 gitlab 转载请注明出处:https://janrs.com docker run --name jenkins \ -u root \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v /var/jenkins_home:/var/jenkins_home \ -v /var/run/docker.soc

CICD部署02 – jenkins + gitlab + harbor + k8s

Docker 部署 gitlab 转载请注明出处:https://janrs.com gitlab 版本:v15.4.2 mkdir -p /opt/gitlab/{data/,logs,config/} docker run -d --restart=always \ --hostname gitlab --name=gitlab \ -p 5443:443 -p 90:80 -p

CICD部署01 – jenkins + gitlab + harbor + k8s

ci/cd 工作流程 转载请注明出处:https://janrs.com 主要包含两部分:构建应用镜像与部署到 k8s 开发仔将代码 push 到 git。可以是 gitlab 或者 github jenkins pull 代码,编译编码,构建镜像,push 到镜像中心。镜像中心例如: harbor jenkins push 镜像后,给 k8s 发送 deploy 指令。k8s 从镜

k8s部署prometheus/grafana

K8S部署prometheus以及grafana 并且使用Ingress对外访问 Ingress Nginx Controller 的安装教程地址:(https://janrs.com/2023/02/k8s%e9%83%a8%e7%bd%b2ingress-controller/) 转载请注明出处:https://janrs.com k8s部署prometheus以及grafana

k8s部署nfs

k8s 部署 nfs 转载请注明出处:https://janrs.com alma 版本:8.6 nfs 版本:nfs-utils-1.3.0 rpcbind 版本:0.2.0 k8s 版本:1.23.9 分为两部分: 每台节点都安装 nfs 软件。master 和 node 都要 部署 NFS Provisioner 提供攻台分配卷 每个节点都要安装并且设置开机启动

k8s部署metrics-server

k8s 部署 metrics-server 转载请注明出处:https://janrs.com kubectl生成密钥文件 kubectl --namespace kube-system create secret docker-registry aliimagesecret --docker-server=registry.cn-shenzhen.aliyuncs.com --do

Debian10 部署kubeadm教程01 – 安装kubeadm

Debian10 使用 kubeadm 部署 k8s 集群 转载请注明出处:https://janrs.com Debian 版本 10.11 k8s 版本 v1.24.8 在每个节点都要执行安装 k8s # master上执行 hostnamectl set-hostname k8s-master01 # node01上执行 hostnamectl set-host

Centos7 kubeadm部署k8s教程03 – 部署worker节点

Centos7 使用 kubeadm 部署 k8s 集群 转载请注明出处:https://janrs.com CentOS7版本2009 k8s版本v1.23.9 Docker版本docker-ce-v20.10 添加Worker节点比较简单,直接在集群部署好之后的join代码复制过来执行即可,命令如下 kubeadm join 172.16.222.231:6443 --token

Centos7 kubeadm部署k8s教程02 – 部署master节点

Centos7 使用 kubeadm 部署 k8s 集群 转载请注明出处:https://janrs.com CentOS7版本2009 k8s版本v1.23.9 Docker版本docker-ce-v20.10 可以使用以下命令查看指定 k8s 版本所需的镜像以及版本 kubeadm config images list --kubernetes-version v