littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于Go语言的云原生HTTP服务器

项目简介

本项目是基于Go语言实现的云原生HTTP服务器,具备HTTP服务器创建、用户管理、加密货币信息获取、性能监控等功能。项目采用Docker容器化部署,支持Kubernetes集群管理,集成了Prometheus监控和Istio服务网格,呈现了云原生技术的完整应用流程。

项目的主要特性和功能

  1. HTTP服务器:用Go语言实现,支持路由处理和中间件;有/healthz健康检查接口,始终返回200状态码;可从环境变量读取VERSION配置并写入响应头。
  2. 用户管理:提供注册和登录功能,支持JWT身份验证;注册时验证邮箱格式和密码长度,登录成功返回accessToken
  3. 加密货币信息获取:支持获取指定加密货币(如BTC、ETH等)价格信息,通过外部API获取数据并存储在MongoDB中。
  4. 日志记录:记录客户端IP和HTTP状态码,输出到服务器标准输出。
  5. Docker容器化:有Dockerfile,支持将服务器容器化并推送到DockerHub,可通过Docker命令启动并配置环境变量。
  6. Kubernetes部署:有Kubernetes部署脚本,支持优雅启动、终止,保证资源需求和服务质量;用readinessProbelivenessProbe探针确保高可用;配置和代码分离,可通过ConfigMapSecret注入配置。
  7. Prometheus监控:集成Prometheus监控服务器性能指标,有随机延迟中间件并收集延迟数据。
  8. Istio服务网格:用Istio Ingress Gateway发布服务,支持七层路由规则和HTTPS安全通信;集成Jaeger实现分布式追踪(Open Tracing)。

安装使用步骤

1. 环境准备

确保已安装Go语言环境(v1.16+)和GNU Make(v3.81+),并下载项目源码。

2. 本地运行

  • 下载依赖: bash make dep
  • 运行单元测试: bash make test
  • 编译并运行服务器: bash make build make run

3. Docker容器化

  • 构建Docker镜像: bash make image
  • 运行Docker容器: bash docker run -p 8080:8080 cncamp_http_server
  • 推送镜像到DockerHub: bash make push

4. Kubernetes部署

  • 使用Minikube创建本地Kubernetes集群: bash make cluster
  • 销毁集群: bash make destroy

5. Prometheus监控

  • 安装并启动Prometheus: bash helm install prometheus prometheus-community/prometheus kubectl expose service prometheus-server --type=NodePort --target-port=9090 --name=prometheus-server-np minikube service prometheus-server-np
  • 安装并启动Grafana: bash helm install grafana grafana/grafana kubectl expose service grafana --type=NodePort --target-port=3000 --name=grafana-np minikube service grafana-np

6. Istio服务网格

  • 安装Istio: bash curl -L https://istio.io/downloadIstio | sh - cd istio-1.12.1 sudo cp bin/istioctl /usr/local/bin istioctl install --set profile=demo -y
  • 部署Istio Gateway和Jaeger: bash make cluster

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】