Docker笔记:Docker Swarm, Consul, Gateway, Microservices 集群部署

搭建Docker Swarm集群实战(二)(服务发现使用consul) 架构图 consul服务(1号机上) 1个swarm的master(2号机上) 2个swarm的node(3号机,4号机上) 1,2,3,4号机都是一个局域网LAN内部(原因是他们的eth1设备都和宿主机进行了virtual box的host-only)。 1号机在该网段内IP:192.168.99.101 2号机在该网段内IP:192.168.99.102 3号机在该网段内IP:192.168.9 阅读详情

关于 Consul 服务

  • Consul是Go语言写的开源的服务发现软件
  • Consul具有服务发现、健康检查、 服务治理、微服务熔断处理等功能

Consul 部署方式1: 直接在linux 上面部署 consul 集群


1 )下载

  • 在各个服务器上 下载 consul 后解压并将其目录配置到环境变量中,方便调用 consul 命令

2 )部署: server端与搭建集群

  • 准备3台服务器

服务器 启动

  • server_1
    • $ consul agent -server -bootstrap-expect 3 -node=server_1 -bind=192.168.1.10 -ui -data-dir=/root/consul_dir/data -client 0.0.0.0
      • -server 表示启动的是服务端
      • -bootstrap-expect 3 表示待启动的服务数量
      • -node 指定节点的名称
      • -bind 指定绑定的当前的ip地址
      • -ui 表示可以在web中访问
      • -data-dir 指定的存储目录
      • -client 0.0.0.0 表示所有客户端都可加入
  • server_2
    • $ consul agent -server -bootstrap-expect 3 -node=server_2 -bind=192.168.1.11 -ui -data-dir=/root/consul_dir/data -client 0.0.0.0
      • 可以继续在后面追加 -join 参数来追加到集群
      • 目前不这么做,参考下面拆解
  • server_3
    • $ consul agent -server -bootstrap-expect 3 -node=server_3 -bind=192.168.1.12 -ui -data-dir=/root/consul_dir/data -client 0.0.0.0

服务器 加入

  • server_2

    • $ consul join 192.168.1.10
  • server_3

    • $ consul join 192.168.1.10

基于以上server端对应的集群搭建好了

3 )部署: client端与加入搭建集群

  • 准备1台客户端

客户端 启动

  • client_1
    • $ consul agent -data-dir=/root/consul_dir/data -node=client_1 -bind=192.168.1.13 -ui -client 0.0.0.0

客户端 加入

  • client-01:
    • $ consul join 192.168.1.10

Consul 部署方式2: Docker 上面部署 consul 集群

和 Linux 里面的部署流程,基本一致

1 )文档

  • https://hub.docker.com/_/consul

2 )下载镜像

  • $ docker pull consul

3 )部署

  • 3.1 启动创建第一个节点 consul1容器

    • $ docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul agent -server -bootstrap-expect=3 -ui -bind=0.0.0.0 -client=0.0.0.0
      • 这个指定了端口,比较麻烦
    • 或
    • $ docker run --name consul1 -d -p 8500:8500 consul agent -server -bootstrap-expect=3 -ui -bind=0.0.0.0 -client=0.0.0.0
      • 这个比较推荐
  • 3.2 启动第二个容器前需要找到 consul1容器的ip地址

    • 方法1
      • $ docker network ls 找到网络列表
      • $ docker inspect NETWORKID 一般是 bridge 的网络
    • 方法2
      • $ docker inspect --format='{{.NetworkSettings.IPAddress}}' consul1
      • 推荐
    • 假设找到的 ip 是: 192.168.1.10
  • 3.3 启动第二个节点(端口8501), 加入到 consul1

    • $ docker run --name consul2 -d -p 8501:8500 consul agent -server -ui -bootstrap-expect=3 -bind=0.0.0.0 -client=0.0.0.0 -join 192.168.1.10
  • 3.4 启动第三个节点(端口8502), 加入到 consul1

    • $ docker run --name consul2 -d -p 8502:8500 consul agent -server -ui -bootstrap-expect=3 -bind=0.0.0.0 -client=0.0.0.0 -join 192.168.1.10
  • 3.5 启动一个consul客户端(端口8503), 加入到 consul1

    • $ docker run --name consul_client1 -d -p 8503:8500 consul agent -ui -bind=0.0.0.0 -client=0.0.0.0 -join 192.168.1.10
    • 客户端可以不指定端口

4 )验证

  • 目前3个服务端和1个服务器端都做好了,验证一下
    • $ docker ps
  • 进入一个consul中查看
    • $ docker exec -it consul1 consul members
    • 可查看到集群的信息
  • 访问
    • xxx.xxx.xxx.xxx:xxxx
      • 上面任意一台机器ip和端口都可访问
  • 如果里面用到了微服务,并发量不大的情况下,可以把多个consul服务端放在一台机器上
    • 如果并发量比较大,就需要把consul部署在多台服务器上
    • 部署到一台服务器的好处是,容器之间通信比较方便,默认是通过 bridge 网络桥接

在多台服务器搭建consul集群

1 )直接在 linux 服务器上运行 consul

  • 同上方式,不再复述

2 )仍旧选择 docker 平台

  • 注意,在 -join 时,涉及到不同主机的通信,需要借助物理的ip
  • 可以把docker容器直接映射在当前物理机上,使用 --net=host 参数,例如
    docker run --net=host -e CONSUL_BIND_INTERFACE=ens33 -h=192.168.1.10 --name consul1 -v /consul_server/data:/consul/data consul agent -server -bootstrap-expect=3 -ui -bind=192.168.1.10 -client=0.0.0.0
    
    docker run --net=host -e CONSUL_BIND_INTERFACE=ens33 -h=192.168.1.11 --name consul2 -v /consul_server/data:/consul/data consul agent -server -bootstrap-expect=3 -ui -bind=192.168.1.11 -client=0.0.0.0 -join 192.168.1.10
    
    docker run --net=host -e CONSUL_BIND_INTERFACE=ens33 -h=192.168.1.12 --name consul3 -v /consul_server/data:/consul/data consul agent -server -bootstrap-expect=3 -ui -bind=192.168.1.12 -client=0.0.0.0 -join 192.168.1.10
    
  • 如果要后台运行 nohup + 上面命令 + &
    nohup docker run --net=host -e CONSUL_BIND_INTERFACE=ens33 -h=192.168.1.10 --name consul1 -v /consul_server/data:/consul/data consul agent -server -bootstrap-expect=3 -ui -bind=192.168.1.10 -client=0.0.0.0 &
    
    nohup docker run --net=host -e CONSUL_BIND_INTERFACE=ens33 -h=192.168.1.11 --name consul2 -v /consul_server/data:/consul/data consul agent -server -bootstrap-expect=3 -ui -bind=192.168.1.11 -client=0.0.0.0 -join 192.168.1.10 &
    
    nohup docker run --net=host -e CONSUL_BIND_INTERFACE=ens33 -h=192.168.1.12 --name consul3 -v /consul_server/data:/consul/data consul agent -server -bootstrap-expect=3 -ui -bind=192.168.1.12 -client=0.0.0.0 -join 192.168.1.10 &
    
    nohup docker run --net=host -e CONSUL_BIND_INTERFACE=ens33 -h=192.168.1.13 --name consul4 consul agent -bind=192.168.1.13 -client=0.0.0.0 -join 192.168.1.10 &
    
  • 相当于在物理机上运行consul, 注意上述ip可替换成hostname, 需要配置hostname, 因为ip可能会变化
  • 以上consul集群部署好之后,就可以准备微服务集群和API网管集群了

Consul 集群结合Swarm集群部署微服务项目


关于整体架构分层

  • A. 各个客户端 访问nginx

  • B. nginx 服务器,用于总体转发服务

  • C. API服务网关集群

    • API服务网关可以配置到微服务集群中,这样就可以减少通信相关配置,具体看当时网络环境
    • 需要注册到 consul
  • D. 微服务集群: 各类应用程序微服务

    • 每个微服务需要注册到consul
  • E. consul服务注册集群

    • 用于服务发现管理
  • F. 数据库集群

    • 目前数据库没有做集群处理
  • 以下步骤是大体步骤,比较粗略,忽略一些细节赘述,仅供参考

1 )将各个微服务项目打包,比如goWeb应用, 这个步骤是前置任务

  • 检查各个服务提供连接的配置信息,检查部署环境对应的配置信息是否正确
  • 如果微服务镜像中配置了支持打包, 比如 Dockerfile中, 则忽略此步骤
  • 如果在windows下开发,需要打包成linux程序
    • filename : 文件名
      set CGO_ENABLED=0
      set GOOS=linux
      set GOARCH=amd64
      go build -o filename main.go
      
  • 将文件上传,如果不是docker部署,需要将服务器的目录设置为可执行
    • $ chmod -R 777 目录
  • 执行项目 $ nohup ./filename &
  • 验证可正常运行

2 )准备mysql以及redis数据库等环境

  • 启动 mysql
    • $ docker run --name my_mysql -p 3306:3306 -v /root/mysql/conf.d:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
  • 启动 redis
    • $ docker run -p 6379:6379 --name my_redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data --restart=always -d redis redis-server /etc/redis/redis.conf

3 )整理微服务应用

3.1 microA程序的 A微服务

配置dockerfile,简单示例仅供参考 micro_a_Dockerfile

FROM centos
ADD /wwwroot/micro_a.tar.gz /root
WORKDIR /root
RUN chmod -R 777 micro_a
WORKDIR /root/micro_a
ENTRYPOINT ["./micro_a"]

3.2 microB程序 B微服务

配置dockerfile,简单示例仅供参考 micro_b_Dockerfile

FROM centos
ADD /wwwroot/micro_b.tar.gz /root
WORKDIR /root
RUN chmod -R 777 micro_b
WORKDIR /root/micro_b
ENTRYPOINT ["./micro_b"]

3.3 microC程序 C微服务

配置dockerfile,简单示例仅供参考 micro_c_Dockerfile

FROM centos
ADD /wwwroot/micro_c.tar.gz /root
WORKDIR /root
RUN chmod -R 777 micro_c
WORKDIR /root/micro_c
ENTRYPOINT ["./micro_c"]

4 )对微服务进行 镜像build

  • $ docker build -f micro_a_Dockerfile -t micro_a_img:latest .
  • $ docker build -f micro_b_Dockerfile -t micro_b_img:latest .
  • $ docker build -f micro_c_Dockerfile -t micro_c_img:latest .

5 )配置微服务 docker-compose.yml

version: "3"
services:
  # 配置 redis 数据库
  redis:
    image: redis
    restart: always
    deploy:
      replicas: 1 #副本数量
  # 配置 a 微服务
  micro_a:
    image: micro_a_img
    restart: always
    deploy:
      replicas: 6 # 副本数量
      resources: # 资源
        limits: #配置cpu
          cpus: "0.3" # 设置该容器最多只能使用 30% 的 CPU
          memory: 500M # 设置该容器最多只能使用 500M内存
      restart_policy: #定义容器重启策略, 用于代替 restart 参数
        condition: on-failure #只有当容器内部应用程序出现问题才会重启
  # 配置 b 微服务
  micro_b:
    image: micro_b_img
    restart: always
    deploy:
      replicas: 6 #副本数量
      resources: #资源
        limits: #配置cpu
          cpus: "0.3" # 设置该容器最多只能使用 30% 的 CPU
          memory: 500M # 设置该容器最多只能使用 500M内存
      restart_policy: #定义容器重启策略, 用于代替 restart 参数
        condition: on-failure #只有当容器内部应用程序出现问题才会重启
    depends_on:
      - captcha_micro
  # 配置 c 微服务
  micro_c:
    image: micro_c_img
    restart: always
    ports:
      - 8080:8080
    deploy:
      replicas: 6 #副本数量
      resources: #资源
        limits: #配置cpu
          cpus: "0.3" # 设置该容器最多只能使用 30% 的 CPU
          memory: 500M # 设置该容器最多只能使用 500M内存
      restart_policy: #定义容器重启策略, 用于代替 restart 参数
        condition: on-failure #只有当容器内部应用程序出现问题才会重启
    depends_on:
      - micro_b # 依赖b微服务
  • 注: 上面用到了redis数据库, 但不是集群,当前只是一个简单的服务

6 )创建集群

  • 关键命令如下
    • $ docker swarm init --advertise-addr 192.168.1.10
    • $ docker swarm join-token worker
    • $ docker swarm join-token manager
  • 具体配置不再赘述,参考前文描述

7 )部署项目

  • $ docker stack deploy --compose-file docker-compose.yml microSwarm
    • microSwarm 是你给这套微服务集群起的响亮亮的名字
  • 进行各个服务的启动后的验证,不再赘述

8 )调用测试

  • 客户端连接 consul 服务器实现调试, 不再赘述

9 )注意事项

  • 如果是前后端分离的项目
    • 先集成运维环境,并测试, 这里一般包含集群
    • 再部署后端服务,并测试服务的连通性
    • 再部署前端服务,并测试接口服务的正常
  • 如果,微服务环境运维环境复杂
    • 还要检查微服务的版本迭代是否正常,否则上线可能会遇到问题
搭建Docker Swarm集群实战(一)(服务发现使用consul) 前言 Docker Swarm是docker的原生的集群解决方案。它可以让你使用一些docker的工具来统一管理一池子的docker host。 首先Docker Swarm依赖于一个Manager(其实就是Swarm Master)。Manager管理和调度所有集群上的container。而这些被管理的container就可以分布在集群的各个Docker Host中(我们称之为Swarm N 阅读详情

相关推荐

微服务环境搭建(Kong+Consul+Swarm+Shipyard)

最近在做单体系统的微服务化拆分,划分好微服务边界就是编码,这部分工作和开发一样,但是微服务的部署环境可是比较麻烦,各种组件需要配置,捣鼓了3-5天终于捣鼓出来了。前端API Gateway选用Kong,服务注册用Consul,部署用Docker,容器的编排管理用Swarm,运维监测用Shipyard,一下为具体配置教程。 系统:Centos7 Docker:1.12 虚机节点三个:1

wangyu2010302660001的专栏 9723

Docker Swarm 部署Consul集群

1、部署环境 IP hostname 部署实例 Node labels 172.16.1.101 manager01 consul_server1 - 172.16.1.102 manager02 consul_server2 - 172.16.1.103 manager03 consul_server3 - 172.16.1.104 worker01 consul_client - 172.16.1.105 worker02 consul_client - 172.16

liushengit的博客 1176

Docker微服务部署实战:从环境准备到docker-compose编排全解析

容器化技术正在重塑软件的交付方式,尤其对于微服务架构而言,它解决了环境不一致、依赖冲突与资源浪费等传统部署难题。理解镜像与容器的关系、数据卷的持久化机制以及容器网络的服务发现原理,是掌握这一技术的基石。通过Docker将MySQL、Redis等基础设施容器化,并利用多阶段构建精简业务镜像,再借助docker-compose一键编排Nacos、网关与业务服务,即可构建一套完整可运行的微服务环境。本文从实践角度出发,梳理了从环境准备到上线排障的完整链路,并给出了资源限制、日志滚动与回滚规范等关键建议,帮助开发者

weixin_34367257的博客 366

集群、分布式和微服务

分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中,它们之间通过RPC方式通信。集群:多个服务器部署相同的模块,干相同的事分布式:多个服务器部署多个子模块,分别干不同的事微服务:不一定是多个服务器,可能在一个服务器上,部署多个子模块分别干不同的事好的设计应该是分布式和集群的结合,先分布式再集群具体实现就是业务拆分成多个子业务,然后针对每个子业务进行集群部署。

happy_king_zi的博客 1454

Docker 生态全景图:从容器运行时到服务发现的工程实践

Docker 不是单一命令行工具,而是由 containerd、runc、buildkit、libnetwork、overlay2 等深度耦合组件构成的分布式系统。其核心原理在于分层解耦与协同调度:runc 实现 OCI 运行时标准,containerd 管理生命周期,dockerd 提供开发者接口;网络依赖 libnetwork 抽象与 overlay/vxlan 协议栈;服务发现本质是 DNS+Raft 或外部 KV 的状态同步。这一架构带来显著技术价值——高隔离性、可复现构建、跨主机服务自动寻址与弹性

weixin_30326515的博客 362

如何通过Consul实现Docker Swarm集群中的服务发现功能 Using Consul for Service Discovery in Docker Swarm

Consul是一个开源的服务发现和配置工具,它可以作为分布式系统中的微服务注册中心、配置中心和监控系统,支持多数据中心部署模式。Consul最初由HashiCorp公司开发,现已捐献给云原生计算联盟(CNCF)管理,其定位于“为分布式系统提供服务发现、配置和控制”。在过去的几年中,容器技术蓬勃发展,容器编排工具如Docker Swarm、Kubernetes等也逐渐受到青睐,这些工具都需要解决分布式应用服务的自动发现和治理,否则就无法有效地管理容器集群。因此, Consul 应运而生。

AI天才研究院 1255

Docker微服务负载均衡配置全指南(附Nginx+Consul集成方案)

掌握Docker微服务负载均衡配置方法,解决服务动态扩展与高可用难题。结合Nginx+Consul实现自动发现与流量分发,适用于多容器部署场景,提升系统稳定性与性能。配置简单、扩展性强,值得收藏。

PixelShoal的博客 310

基于微服务架构的云服务最佳实践

作者:禅与计算机程序设计艺术 微服务架构(Microservices Architecture)是一种分布式系统设计风格,旨在通过将单体应用拆分为一个个独立的小型服务,每个服务只负责完成某项具体工作,彼此之间互相独立且松耦合,这样能够有效地解决复杂性、扩展性及可维护性等问题,同时也更利于团队协作开发。微服务架构使得应用程序由粒度较细的服务

AI天才研究院 2782

基于 Docker 的微服务架构实践

本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 DevOps,也见证了 Docker 的技术体系的快速发展。本文主要是结合在公司搭建的微服务架构的实践过程,做一个简单的总结。希望给在创业初期探索如何布局服务架构体系的 DevOps,或者想初步...

Java烂猪皮 722

别再只玩积木了!用乐高EV3和官方软件,手把手教你做个能巡线的小车(附完整代码)

本文详细介绍了如何利用乐高EV3套件和官方软件制作智能巡线机器人,从硬件组装到软件编程全面覆盖。通过传感器原理讲解、控制算法调试等工程化细节,帮助读者掌握机器人开发的核心理念,特别适合STEAM教育和硬件编程爱好者实践。

weixin_30776273的博客 453

Linux内核支持串口屏,linux串口触摸屏设计总结

Linux serial touch 设计总结概述:最近在做嵌入式linux下串口触摸屏设计,遇到一些问题,经过查找资料和请教同事,总算把问题解决了,事后有把linux相关的内核代码仔细看了一遍,为了有点成果,特别写了个总结。如有任何问题请联系yxj_5421@http://www.doczj.com/doc/87b94b1e227916888486d76d.html,转载请标明出处。系统资源:L...

weixin_39935903的博客 1297

Docker - 微服务容器化的网络规划与优化

Docker 20.10+ 支持通过--dns参数覆盖内置 DNS。自定义域名后缀(如健康服务自动注册(结合 Registrator)缓存 TTL 精确控制(如TTL=5s,TTL=300s)Corefile.:53 {errorshealthreadyupstreamcache 30reload--dns 192.168.50.10 \ # CoreDNS 所在节点 IP此时,容器内执行将命中 CoreDNS,并享受其 TTL 策略与 Prometheus 监控。

千淘万漉虽辛苦,吹尽狂沙始到金 5347

卷积神经网络-猫狗识别(附源码)

利用python实现一个卷积神经网络,训练猫狗数据集,实现对猫狗图片的预测识别

m0_63223213的博客 2万+

docker容器 eureka 集成_前阿里开发工程师的分享微服务之基于Docker的分布式企业级实践...

专注于Java领域优质技术号,欢迎关注前言基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 DevOps,也见证了 Docker 的技术体系的快速发展。本文主要是结合在公司搭建的微服务架构的实践过程,做一个简单的总结。希望给在创业初期探索如何布局服务架构体系的 DevOps,或者想初步了解企业级架构的同学们一些参考。Microservice 和...

weixin_39964819的博客 183

android HTTPS未校验服务器证书漏洞修复

上述代码是重写了域名校验的逻辑,每个证书里携带的域名是不可更改的,如果证书是合法的证书签发机构签发的,并且域名是和你要请求的域名对的上的,基本上就能确认你访问就服务器地址就是要访问的服务器地址,这样才是安全的。上述代码就是重新了证书校验的逻辑,信任所有的证书,正确的逻辑是要校验证书是否是可信任的证书签发机构所认证的,如果不校验的话你虽然是用了https加密传输,只要你的客户端用户信任了其他的证书哪怕是非法的证书,一样能够请求通过,而这个证书的服务器就可以解密你的报文,拿到你的隐私信息了。

kyzycyey的专栏 2623

BMS开发避坑指南:如何用ADBMS6815实现0.03%精度的电池采样?

本文深入解析了如何利用ADBMS6815等高精度AFE芯片,在车规级BMS开发中实现0.03%级别的电池电压采样精度。文章从芯片选型、硬件设计、软件配置、算法优化到系统验证,提供了一套完整的实战指南,帮助工程师系统性地提升BMS测量精度,从而保障电池安全、延长寿命并增强产品竞争力。

weixin_28314575的博客 135

Docker微服务架构中etcd服务发现与配置管理实战

在容器化微服务架构中,服务发现与分布式配置是解决动态扩缩容、跨主机通信和配置热更新的核心能力。其原理基于注册中心(如etcd)实现服务实例的自动注册、健康心跳与DNS式寻址,并通过强一致性键值存储支撑配置的实时监听与原子切换。技术价值在于解耦容器生命周期与网络依赖,显著提升系统弹性与运维效率。典型应用场景包括Docker Compose多机部署、轻量级Swarm替代方案及遗留系统渐进式上云。本文聚焦etcd在Docker生态中的生产级落地,涵盖高可用集群搭建、服务注册契约设计、配置热更新可靠性保障及安全加固

weixin_30721077的博客 298

Plecs standalone 4.9.5最新版本,赶紧来下载使用吧,需要做并网逆变器及光伏储能变换器的朋友赶紧下载起来

PLECS 4.9.5较4.7.1版实现全面升级:采用自适应求解器切换技术,支持多核CPU/GPU加速,仿真速度提升30-50%;新增模型引用功能,实现模块化设计;强化光伏/风电等新能源组件,支持多物理场耦合分析;优化代码生成功能,兼容多种硬件平台和FMU导入。新版特别适用于复杂电力电子系统、多域联合仿真及硬件在环测试项目,但对硬件配置要求更高。基础教学项目仍可使用4.7.1版本。建议用户根据项目复杂度选择升级方案。

2454

容器生态系统:拆解容器三大技术层次,上手部署第一个容器

本章全面介绍了容器技术生态系统,从容器技术的整体认知到具体实践。首先阐述了学习容器技术的重要性,然后系统性地讲解了容器生态系统的三个层次:核心技术(容器规范、runtime、管理工具、定义工具、Registry、容器OS)、平台技术(编排引擎、管理平台、基于容器的PaaS)和支持技术(网络、服务发现、监控、数据管理、日志管理、安全性)。最后通过详细的 CentOS Stream 8 环境下的 Docker 安装教程和 C/S 分离部署实践,帮助读者快速搭建实验环境并运行第一个容器,为后续深入打下坚实基础。

2602_95508776的博客 454

ESP32设备驱动-MLX90393磁场传感器驱动

MLX90393 磁场传感器可以在运行时重新编程为不同的模式和不同的设置。 该传感器使用 Melexis 专有的 Triaxis® 技术提供与沿 XYZ 轴感应的磁通密度成比例的 16 位输出,还提供温度输出信号。 这些数字值可通过 I2C 和 SPI 获得,其中 MLX90393 是总线上的从设备。

视觉与物联智能 2356

【Claude】Extra inputs are not permitted 错误:代理剥离 Beta 标头的解决方案 bug报错已解决

深入分析Claude Code Extra inputs are not permitted 400错误的技术原理,解析代理剥离Beta标头的根因与多种修复方案。

一键难忘的博客 150

从单体到微服务:分布式架构核心思想与高频技术实践解析

在软件工程领域,分布式系统是一种通过网络连接多台计算机协同工作的架构风格,其核心原理在于将计算任务分散到不同节点,通过网络通信实现资源共享与负载均衡。这种架构的技术价值在于能够突破单机性能瓶颈,提供高可用性、可扩展性和容错能力,广泛应用于电商平台、社交网络、金融交易等大规模高并发场景。随着业务复杂度提升,微服务架构作为实现分布式系统的具体模式应运而生,它强调服务的单一职责与独立部署。在实际工程实践中,分布式事务和RPC调用失败是两大高频挑战,前者涉及跨服务数据一致性保障,后者关乎服务间通信的可靠性。理解这些

weixin_30430169的博客 563

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

云原生技术01-一文读懂云原生:2026年企业数字化转型的核心技术底座,云原生到底-native什么?阿里巴巴实战总结

《云原生实战指南:从原理到避坑》摘要 本文系统介绍了云原生的核心概念与技术体系。云原生并非简单"上云",而是通过容器化、微服务、声明式API和不可变基础设施四大核心要素,构建弹性可扩展的分布式系统。文章详解了从Docker到Kubernetes的技术演进,对比显示云原生可将扩容时间从数天缩短至分钟级,资源利用率提升3倍。实战部分提供Kubernetes集群搭建指南,包含完整的Node.js应用部署示例和YAML配置。最后总结了新手常见误区:过早追求完美架构、忽视存储复杂性、监控后置等,并

weitingfu的博客 545

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

容器编排器之战复盘:为什么Kubernetes还没开打就赢了?

在云原生与微服务架构快速普及的今天,容器编排成为企业IT基础设施的核心议题。从Docker Swarm的简单易用,到Apache Mesos的超大规模调度,再到Kubernetes的声明式API与可插拔接口,技术路线的竞争不仅关乎功能,更关乎生态与设计哲学。容器编排器通过CRI、CNI、CSI等标准接口实现底层解耦,让调度、服务发现、滚动更新等能力得以抽象和沉淀。生产环境中的选型与迁移往往面临复杂挑战,理解控制器与实例的关系、PV与PVC的存储模型、Service与Ingress的网络分层,是落地云原生架构

weixin_34326558的博客 408

Traefik 云原生反向代理全解:自动路由发现、动态配置与 v3 仓库实操指南

本文基于 Traefik 仓库根目录的 [README.md](https://link.gitcode.com/i/31ee0d48a8b273e39913a62bd86e3350) 展开,系统讲解 Traefik 作为现代 HTTP 反向代理与负载均衡器的核心定位:它如何监听服务注册表/编排器(Docker、Kubernetes、ECS 等)实现路由的自动发现与免重启热更新,以及如何通过单二进

gitblog_00534的博客 466
上一篇: Docker笔记:Docker Swarm Web 管理工具之portainer及其汉化版
下一篇: 数据结构与算法之递归: LeetCode 93. 复原 IP 地址 (Ts, Py, Go版)
Wang's Blog
博客等级 码龄12年 7433粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值