- 博客(61)
- 收藏
- 关注

原创 彻底搞懂分布式事务!从核心痛点到实战方案,用Go+MySQL代码拆解6大主流解法
在本地消息表方案中,每个参与事务的服务都有一个本地消息表。是指在分布式系统中,涉及多个数据源(如不同的数据库、消息队列等)或多个服务的操作,这些操作需要作为一个整体来执行,要么全部成功,要么全部失败,以保证数据的一致性。比如:在一个基于微服务的金融系统中,贷款审批服务可能需要调用客户信息服务、信用评估服务和风险控制服务等,这些服务之间的操作需要保证事务的一致性。如果所有参与者都准备成功,协调者在提交阶段向所有参与者发送提交请求,参与者提交本地事务,否则,协调者发送回滚请求,参与者回滚本地事务。
2025-05-07 11:02:05
778

原创 DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(2)
翻遍国内外的文档,关于**Argo**作为*CI/CD*当前所有开源的文档,博客,argo官方文档。得出的结论是:**argo**官方给出的例子都相对独立,要么国内是一些搬运**argo**的官方的简单例子,`根本没有一套`可以用于`实际工作中`完整的流程。整套**Kubernetes和Argo打造自动化CI/CD流程**都是根据我的个人实践,一步一步摸索出来的。
2024-12-25 17:22:31
1213

原创 DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1)
本设计方案的目标是在一台阿里云ECS服务器上搭建一个轻量级的Kubernetes服务k3s节点,并基于Argo搭建一套完整的DevOps CI/CD服务平台,包括Argo CD、Argo Workflow和Argo Events。这个平台将支持用户服务的自动化构建、部署和访问,不依赖于Git仓库的CI/CD
2024-12-25 14:02:31
2011

原创 从零开始搭建混合云Prometheus监控告警系统
本设计方案的目标是在一台阿里云ECS服务器上搭建一个轻量级的Kubernetes服务k3s节点,并部署作为Kubernetes管理面板。在此基础上,通过搭建一套以为主的监控告警服务,并整合用于展示不同服务器上由服务采集的指标数据。
2024-12-12 16:29:50
962

原创 一键部署kubernetes单节点
一条命令搭建成功,整个过程仅需5分钟就能搭建完成一个轻量级的Kubernetes服务,适合开发、测试和小规模生产环境。尽管k3s提供了简化的安装和管理方式,但在设计生产级应用时,需要考虑扩展性和高可用性的解决方案。
2024-12-05 15:28:45
772

原创 从零开始搭建Aliyun ESC高可用集群 (HaVip+KeepAlived)
本设计方案采用两台阿里云ECS服务器搭建Keepalived结合LVS的高可用集群。使用LVS的TUN模式进行负载均衡,同时利用阿里云的弹性IP(EIP)实现跨服务器的高可用性。架构中,一台ECS服务器作为主LVS Director节点,另一台作为备份LVS Director节点,两者通过Keepalived实现故障自动切换。
2024-08-24 12:44:21
1249

原创 从零开始搭建 Keepalaived+Lvs 高可用集群 (Aliyun部署)
本设计方案采用四台服务器构建高可用集群,使用 `Keepalived` 结合 `Linux Virtual Server (LVS)` 实现 **负载均衡** 和 **高可用性**。其中,两台服务器配置为`LVS`的`Director`服务器,用于处理客户端请求并分发到后端服务器。另外两台服务器作为`LVS`的`Real Server`,提供实际的服务处理。`Keepalived`用于实现`Director`服务器的**高可用性**。
2024-08-22 09:00:00
950
4

原创 从零开始搭建 LVS 高性能集群 (DR模式)
本设计方案采用三台服务器构建集群,使用(LVS) 作为负载均衡器,运行在直接路由 (DR)模式下。集群中的每一台服务器都将运行相同的服务,以实现和。LVS将作为前端节点,接收所有进入的请求,并将它们分发到后端服务器。
2024-08-16 17:26:01
833

原创 开发个人Ollama-Chat--8 网站部署
平替aliyun的收费服务,白嫖白嫖白嫖, 以下功能全部白嫖。这次项目的前端服务。则完全托管到。是Cloudflare提供的一个静态网站托管服务,它允许开发者构建和部署现代化、高性能的网站。以下是。
2024-07-10 17:12:17
1115

原创 开发个人Ollama-Chat--5 模型管理 (一)
开发一个chatGPT的网站,后端服务如何实现与大模型的对话?是整个项目中开发困难较大的点。
2024-07-05 15:58:26
1303

原创 一图总结:DPDK架构与原理
一图总结:DPDK架构与原理xmindsummarydpdk架构与框架特点关键技术summary关键技术1关键技术2关键技术3系统配置参考博客添加链接描述
2019-02-12 20:15:41
5839
原创 线上MySQL主从节点迁移实战:主节点无缝切换,数据零丢失的终极指南
通过以上方案,可以确保在MySQL主节点迁移过程中,数据不丢失业务不受影响。作为系统运维工程师,必须严格按照步骤操作,并在每个阶段进行充分的验证和测试,以确保迁移的成功和系统的稳定性。
2025-01-16 11:31:37
834
原创 ai绘画comfyUI专栏介绍
随着人工智能技术的飞速发展,AI绘画已成为艺术创作和设计领域的新宠。ComfyUI,作为一种新兴的设计语言,以其简洁、直观和用户友好的特性,正在逐渐成为UI设计的热门选择。本文将介绍如何搭建AI绘画ComfyUI工作流,探索AI绘画技术领域的前沿技术,并提供ComfyUI常用模型的资源链接。欢迎大家关注ComfyUI技术专栏,期待与大家一起探讨AI绘画领域的前沿技术。
2024-08-29 10:28:48
569
原创 从零开始搭建 LVS 高可用集群 (单机)
经过前面2篇关于lvs集群部署文章,相信跟着部署文档,实际部署过集群的大家对lvs服务有了深刻的了解。问题是:“无法在Aliyun上部署高可用集群, 那我前面学的知识点就没用了?其实 lvs 在kubernetes集群中的使用也比较广泛。k8s 资源service实际上就是实现了一个 lvs 路由配置。现在的构想就是: 我不想在单个ECS实例上部署Kubernetes单节点,又想实现 lvs 部署Nginx集群?这篇文章就是关于如何在单个ESC实例上部署Nginx集群。
2024-08-23 15:28:30
1070
原创 从零开始搭建 EMQX 集群压测框架
在设计以EMQX为中心的MQTT消息队列集群压力测试框架时,我们采用微服务架构模式。EMQX作为消息队列的核心,负责处理MQTT协议的消息发布和订阅。Nginx作为EMQX的反向代理,负责负载均衡和SSL/TLS终端。MQTTX-CLI作为压力测试工具,模拟大量客户端连接和消息交换。
2024-08-13 11:35:44
1388
原创 nginx-emqx 负载不均衡排查过程
8core cpu的服务器上运行nginx, 自动绑定了8core, 对nginx进行的压力测试,发现 8core的连接数负载不均衡,例如: 1,3,5,8 的负载数分别达到了2w的连接数,其他core的负载数仅有300个连接数,什么原因导致的?如何进行修复?
2024-08-12 17:21:03
543
1
原创 从零开始搭建监控系统 (三) 指标采集
Prometheus Exporter 是一种代理服务,用于从各种应用程序、服务或硬件指标中抓取数据,并将其转换为 Prometheus 能够理解的格式。它能够暴露一个 HTTP 端点供 Prometheus 抓取,支持多种类型的数据源,如数据库、操作系统、网络设备等。使用场景包括监控应用程序性能、系统资源使用情况、网络流量等,以便进行数据分析和可视化。
2024-08-09 11:19:06
916
原创 从零开始搭建监控系统 (二) 部署
使用Docker Compose管理和部署Prometheus和Grafana,可以确保环境一致性,简化配置和部署流程,实现服务快速启动与停止,便于服务扩展和管理,同时支持自动化和多环境部署,提高开发和运维效率。
2024-08-07 15:58:31
477
原创 从零开始搭建监控系统 (一) 项目介绍
构建一套以 Prometheus 为中心的监控告警系统,其核心是 Prometheus 服务器,负责收集和存储指标数据。Grafana 作为数据展示和告警配置的前端界面。系统还包括 Exporters,它们是 Prometheus 的数据采集客户端,部署在各个服务上,用于收集服务的监控数据。
2024-08-07 14:53:46
474
原创 搭建链路追踪系统 Jaeger
为中心的链路追踪系统时,我们采用微服务架构模式。各服务功能流程概述流程包括:部署策略使用 部署 及相关服务。利用 定义服务,实现一键部署和管理。 镜像包括 的 镜像和 镜像。 文件配置服务间的网络和端口映射。Jaeger-uikibana-index使用 和 的包括:然而,也存在一些:综上所述,以 为中心,结合 存储的链路追踪系统,提供了一套完整的追踪解决方案,适用于需要高性能和可扩展性的分布式系统。通过 部署,我们能够实现快速、灵活的系统搭建和管理。
2024-08-02 15:46:20
1181
原创 搭建日志系统ELK(二)
在搭建以`ELK`为核心的日志系统时,`Logstash`作为日志采集的核心组件,负责将各个服务的日志数据采集、清洗、过滤。然而缺点也很明显:- 占用较多的服务器资源。- 配置复杂,学习曲线陡峭。- 处理大数据量时性能下降。在我们设计架构时,尽量会选择减少主机使用资源,轻量,高性能,又能满足日志采集的需求。有没有这么一个开源服务呢?答案便是`go-stash`。
2024-08-01 17:46:10
928
原创 搭建日志系统ELK(一)
作为数据收集和处理的中间件,它支持多种数据源和灵活的数据处理插件,能够将非结构化日志数据转换为结构化格式,便于存储和查询。的搜索引擎,提供快速的全文搜索能力,适合处理大规模数据集,并且具备高可扩展性。容器化还确保了环境的一致性,减少了"在我的机器上可以运行"的问题。的日志系统,为企业提供了一个强大、灵活且易于管理的日志解决方案。来实现,它不仅存储日志数据,还提供强大的搜索和分析能力。:每个服务运行在独立的容器中,减少了服务间的相互影响。完成,它将复杂的日志数据转换为直观的图表和仪表板。
2024-08-01 15:52:51
564
原创 开发个人Ollama-Chat--10 绑定域名
`域名购买`最好找`正规`的渠道购买,不要因贪图小便宜而多走很多的`弯路`。我就是第一次购买域名,到了一个坑壁的平台"西部数码",`SSL`证书申请了2个月,没下来,客服也贼不专业,还不能退款,狗逼的平台,耽误网站上线的时间。
2024-07-14 20:03:05
558
原创 开发个人Ollama-Chat--9 Frp穿透
本地运行了一台服务器,专门跑大模型服务,使用nginx暴漏了 服务和端口。在aliyun上购买了一台低配 2 Cores, 2G 的服务器,能否通过 内网穿透 “frp” 服务,将本地服务器运行的服务暴漏到公网,方便其他人使用?
2024-07-12 13:31:54
1030
原创 开发个人Ollama-Chat--6 OpenUI
Open WebUI 是一种可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线运行。它支持各种 LLM 运行器,包括Ollama和OpenAI兼容的 API。
2024-07-09 17:36:30
626
原创 开发个人Ollama-Chat--7 服务部署
go-ChatGPT项目涉及的中间件服务较多,如何一键部署?并且配置正确,服务全部都正常运行?通过这篇项目手拉手带你部署。
2024-07-08 13:16:16
453
原创 开发个人Ollama-Chat--5 模型管理 (二)
这是该项目的最终效果,使用ollama的open-webui进行人与机器的对话功能,对话的后端服务则完全对接自己开发的Go项目。如何实现呢?则通过这篇文章,一一给大家剖析后端的原理及功能实现。
2024-07-06 15:29:29
1391
原创 开发个人Ollama-Chat--3 服务拆分
个人OpenUI项目可拆分用户服务(user),AI模型服务(AiModel),…每个服务都可以再分为api服务和rpc服务。api服务对外,可提供给app调用。rpc服务是对内的,可提供给内部api服务或者其他rpc服务调用。
2024-07-04 11:28:28
872
原创 开发个人Ollama-Chat--2 环境搭建
这里使用 `Docker Compose` 来编排管理我们的容器,`docker-compose.yaml
2024-07-02 13:51:37
448
原创 开发个人Ollama-Chat--1 项目介绍
本文将以一个使用Ollama部署的ChatGPT为背景,主要还是介绍和学习使用go-zero框架,开发个人OpenUI的服务器后端,使用Docker部署网站到公网,体验和了解微服务架构,发布微服务到网站的具体流程。
2024-07-01 18:04:33
681
原创 Golang笔记: channel
Golang笔记: channelChannel定义channel 基本特性数据结构Chan使用创建chan向chan中写入数据从chan中读取数据Chan关闭sendq、recvq G释放释放接收方释放发送方协程调度channel send/recv 分析sendrecv细节参考博客Channel定义不要通过共享内存来通信,而是通过通信来实现内存共享多个 goroutine 借助 channel 来传输数据,实现了跨 goroutine 间的数据传输,多者独立运行,不需要强关联,更不影响对方的 g
2021-01-14 14:55:28
807
原创 《Kubernetes in action》Pod的调度策略
Pod的调度策略Pod的调度策略主要概念主机层pod层污点(taints)与容忍(tolerations)调度使用指定主机组独占主机亲和性默认部署案例Pod的调度策略主要概念主机层nodeSelector备注:如果nodeSelectorTerms下面有多个选项的话,满足任何一个条件就可以了;如果matchExpressions有多个选项的话,则必须同时满足这些条件才能正常调度 POD。如果我们的目标节点没有可用的资源,我们的 Pod 就会一直处于 Pending 状态pod层亲和性:
2020-12-18 14:14:31
1464
原创 《Kubernetes in action》探针
Kubernetes 探针保持Pod健康存活探针创建有效的存活探针就绪探针就绪探针的实际作用另类就绪探针(服务依赖)参考博客保持Pod健康存活探针存活探针: Kubemetes 可以通过存活探针 (liveness probe) 检查容器是否还在运行。 可以为 pod 中的每个容器单独指定存活探针。 如果探测失败, Kubenetes 将定期执行探针并重新启动容器。Kubemetes 有以下三种探测容器的机制:HTTPGET探针对容器的 IP 地址(你指定的端口和路径)执行 HTTP GET 请
2020-07-20 17:18:15
522
原创 《Kubernetes in action》 集群服务(二)
Kubernetes 集群服务使用 headless服务来发现独立的pod产生背景创建headless服务通过DNS发现pod发现所有的pod一包括未就绪的pod排除服务故障StatefulSet + headless service使用 headless服务来发现独立的pod产生背景如果客户端需要链接到所有的 pod 呢?如果后端的 pod 都需要连接到所有其他pod 呢?通过服务连接显然不是这样的, 那是怎样的呢?通常, 当执行服务的 DNS 查找时, DNS 服务器会返回单个 IP一服务的集群
2020-07-20 13:53:47
210
原创 《Kubernetes in action》集群服务(一)
Kubernetes 集群服务《Kubernetes in action》集群服务通过kubectl expose创建服务podExposeServiceResult《Kubernetes in action》集群服务Kubemetes 服务是一种为一组功能相同的 pod 提供单一不变的接入点的资源。当服务存在时,它的 IP 地址和端口不会改变。 客户端通过 IP 地址和端口号建立连接,这些连...
2020-06-19 09:05:15
420
原创 Prometheus: kubernetes gpu metrics monitoring
Kubernetes prometheus pod gpu metrics monitoringpod-gpu-monitoringPrerequisitesDeploy on Kubernetes clusterRelated documentpod-gpu-monitoringgpu metrics monitoring of podgpuhubPrerequisitesNVIDIA Tesla drivers = R384+ (download from NVIDIA Driver Do
2020-06-18 16:39:02
1011
1
原创 《Kubernetes in action》Kubernetes API权限认证(二)
Kubernetes API权限认证 二 kubernetes 部署PrometheusNvidia gpu 指标提取Prometheus 监控Grafana 部署参考博客kubernetes 部署Prometheus上一篇主要将了RBAC的权限认证, 主要是理论知识。这一篇主要通过部署Prometheus监控nvidia gpu来更加了解RBAC在应用上的实践,相对还是比较简单的, 没有涉及告警等其他组件项目文件: prometheus-github文件结构[root@SHPL009049015
2020-05-18 21:44:31
493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人