本篇文章详细介绍Rancher微服务架构部署,包括Spring Boot微服务容器化、服务注册与发现、负载均衡、配置管理等实战内容。风哥教程参考Rancher官方文档应用部署与服务管理相关章节。
目录大纲
Part01-基础概念与理论知识
1.1 微服务架构设计原理
微服务架构将单体应用拆分为多个小型服务,每个服务独立部署、独立扩展。核心原则包括单一职责、自治性、去中心化治理、容错设计。Rancher通过Kubernetes提供微服务部署平台,支持服务发现、负载均衡、配置管理、监控告警等能力。更多视频教程www.fgedu.net.cn
1.2 Kubernetes服务发现机制
Kubernetes提供两种服务发现方式:环境变量和DNS。环境变量在Pod启动时注入,DNS通过CoreDNS提供动态解析。Service类型包括ClusterIP(集群内部访问)、NodePort(节点端口访问)、LoadBalancer(负载均衡器访问)。Headless Service用于有状态应用,直接返回Pod IP。学习交流加群风哥微信: itpux-com
Part02-生产环境规划与建议
2.1 微服务拆分策略
按业务领域拆分:用户服务、订单服务、商品服务等。按数据边界拆分:每个服务拥有独立数据库。按团队组织拆分:每个团队负责特定服务。拆分粒度不宜过细,避免分布式事务复杂度。建议从核心业务开始逐步拆分,保持服务间低耦合高内聚。学习交流加群风哥QQ113257174
2.2 服务间通信设计
同步通信使用REST API或gRPC,异步通信使用消息队列。服务网格(Istio)提供流量管理、安全、可观测性能力。配置熔断器防止级联故障,设置超时和重试策略。使用API网关统一入口,处理认证、限流、路由。更多学习教程公众号风哥教程itpux_com
Part03-生产环境项目实施方案
3.1 Spring Boot微服务容器化
创建Spring Boot微服务并构建Docker镜像。
/Rancher/app/microservices/fgedu-user-service/src/main/java/com/fgedu/userservice/UserServiceApplication.java < /Rancher/app/microservices/fgedu-user-service/pom.xml <EOF 4.0.0 com.fgedu fgedu-user-service 1.0.0 org.springframework.boot spring-boot-starter-parent 3.2.0 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-maven-plugin /Rancher/app/microservices/fgedu-user-service/src/main/resources/application.yml < [INFO] Scanning for projects... [INFO] Building fgedu-user-service 1.0.0 [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.2.0/spring-boot-starter-parent-3.2.0.pom [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.2.0/spring-boot-starter-parent-3.2.0.pom (2.5 MB at 15.2 MB/s) [INFO] BUILD SUCCESS [INFO] Total time: 45.234 s/Rancher/app/microservices/fgedu-user-service/Dockerfile < Sending build context to Docker daemon 25.6MB Step 1/5 : FROM openjdk:17-jdk-slim ---> abc123def456 Step 2/5 : WORKDIR /app ---> Using cache ---> 789ghi012jkl Step 3/5 : COPY target/fgedu-user-service-1.0.0.jar app.jar ---> 345mno678pqr Step 4/5 : EXPOSE 8080 ---> Running in 901stu234vwx Removing intermediate container 901stu234vwx ---> 567yza890bcd Step 5/5 : ENTRYPOINT ["java", "-jar", "app.jar"] ---> Running in 123efg456hij Removing intermediate container 123efg456hij ---> 789klm012nop Successfully built 789klm012nop Successfully tagged fgedu/fgedu-user-service:1.0.0from Rancher视频:www.itpux.com
a1b2c3d4e5f6User Service is Healthy{"userId":"fgedu001","userName":"Fengge User","email":"fgedu@fgedu.net.cn"}fgedu-user-test fgedu-user-test3.2 微服务部署与配置
在Rancher集群中部署微服务。
namespace/fgedu-microservices createddeployment.apps/fgedu-user-service createdservice/fgedu-user-service createdNAME READY STATUS RESTARTS AGE fgedu-user-service-5d4f8b6c6-abc12 1/1 Running 0 1m fgedu-user-service-5d4f8b6c6-def34 1/1 Running 0 1m fgedu-user-service-5d4f8b6c6-ghi56 1/1 Running 0 1mNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE fgedu-user-service ClusterIP 10.43.123.1008080/TCP 2m 3.3 服务发现与负载均衡
配置服务发现和负载均衡。
User Service is Healthyingress.networking.k8s.io/fgedu-user-ingress createdNAME CLASS HOSTS ADDRESS PORTS AGE fgedu-user-ingress nginx user.fgedu.net.cn 192.168.1.202 80 1m{"userId":"fgedu001","userName":"Fengge User","email":"fgedu@fgedu.net.cn"}Part04-生产案例与实战讲解
4.1 微服务部署实战
部署订单微服务并验证服务间调用。
/Rancher/app/microservices/fgedu-order-service/src/main/java/com/fgedu/orderservice/OrderServiceApplication.java < [INFO] Scanning for projects... [INFO] Building fgedu-order-service 1.0.0 [INFO] BUILD SUCCESS [INFO] Total time: 42.567 sSuccessfully built 123abc456def Successfully tagged fgedu/fgedu-order-service:1.0.0deployment.apps/fgedu-order-service createdservice/fgedu-order-service createdNAME READY STATUS RESTARTS AGE fgedu-user-service-5d4f8b6c6-abc12 1/1 Running 0 10m fgedu-user-service-5d4f8b6c6-def34 1/1 Running 0 10m fgedu-user-service-5d4f8b6c6-ghi56 1/1 Running 0 10m fgedu-order-service-7g8h9i0j1-k2l3 1/1 Running 0 2m fgedu-order-service-7g8h9i0j1-m4n5 1/1 Running 0 2m4.2 服务间调用实战
测试订单服务调用用户服务。
Order Service is Healthy{"orderId":"ORD001","userId":"fgedu001","amount":299.00,"userInfo":{"userId":"fgedu001","userName":"Fengge User","email":"fgedu@fgedu.net.cn"}}2026-04-10 12:30:00.123 INFO --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2026-04-10 12:30:00.456 INFO --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 333 ms 2026-04-10 12:30:05.789 INFO --- [nio-8080-exec-2] c.f.orderservice.OrderServiceApplication : Received request for order ORD001 2026-04-10 12:30:06.012 INFO --- [nio-8080-exec-2] c.f.orderservice.OrderServiceApplication : Calling user service 2026-04-10 12:30:06.345 INFO --- [nio-8080-exec-2] c.f.orderservice.OrderServiceApplication : User info retrieved successfully4.3 故障排查与性能优化
排查微服务常见问题并优化性能。
NAME CPU(cores) MEMORY(bytes) fgedu-user-service-5d4f8b6c6-abc12 50m 128Mi fgedu-user-service-5d4f8b6c6-def34 48m 125Mi fgedu-user-service-5d4f8b6c6-ghi56 52m 130Mi fgedu-order-service-7g8h9i0j1-k2l3 60m 135Mi fgedu-order-service-7g8h9i0j1-m4n5 58m 132MiNAME ENDPOINTS AGE fgedu-order-service 10.42.1.10:8080,10.42.2.11:8080 5m fgedu-user-service 10.42.1.8:8080,10.42.2.9:8080,10.42.3.7:8080 15mdeployment.apps/fgedu-user-service scaledNAME READY STATUS RESTARTS AGE fgedu-user-service-5d4f8b6c6-abc12 1/1 Running 0 20m fgedu-user-service-5d4f8b6c6-def34 1/1 Running 0 20m fgedu-user-service-5d4f8b6c6-ghi56 1/1 Running 0 20m fgedu-user-service-5d4f8b6c6-jkl78 1/1 Running 0 1m fgedu-user-service-5d4f8b6c6-mno90 1/1 Running 0 1mNAME ENDPOINTS AGE fgedu-user-service 10.42.1.8:8080,10.42.2.9:8080,10.42.3.7:8080,10.42.1.12:8080,10.42.2.13:8080 25mPart05-风哥经验总结与分享
5.1 生产环境最佳实践
1. 使用健康检查和就绪探针确保服务可用性
2. 配置资源限制防止资源耗尽
3. 使用ConfigMap和Secret管理配置
4. 实施蓝绿部署或金丝雀发布
5. 配置日志聚合和监控告警
6. 使用服务网格管理微服务通信
7. 定期备份应用配置和数据
8. 实施自动化测试和CI/CD流程5.2 常见问题与解决方案
1. 服务启动失败:检查镜像拉取、资源配额、配置错误
2. 服务间调用超时:调整超时时间、检查网络连通性、增加副本数
3. 负载均衡不均:检查Service配置、验证Pod健康状态
4. DNS解析失败:检查CoreDNS配置、验证Service名称
5. 资源不足:调整资源限制、增加节点资源
6. 配置更新不生效:检查ConfigMap挂载、重启Pod
7. 日志丢失:配置日志收集、增加日志保留时间
8. 性能问题:优化应用代码、增加资源配额、使用缓存本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
