0
点赞
收藏
分享

微信扫一扫

微服务容器化开发实战


微服务容器化开发实战

  • ​​1. 单体建构与微服务架构​​
  • ​​2. SpringBoot 微服务开发​​
  • ​​3. 搭建微服务运行环境​​
  • ​​4. Rancher和Kubernetes离线部署​​
  • ​​5. 日志采集​​
  • ​​6. 调用链跟踪​​
  • ​​7. 熔断器​​
  • ​​8. 容器化与服务编排​​
  • ​​9. 系统监控​​
  • ​​10. 持续集成部署​​

ISBN: 978-7-121-38292-5
推荐指数: ★★★★★
作者:尹为强
阅读时间: 2021-04-18
页数: 220

本书讲的非常浅显易懂,
而且动手性极强,
一步一步教读者搭建环境使用和注意事项.
非常推荐的一本书,
涵盖了开发运维的整个流程,
适合框架师和想熟悉了解整个产品的生命周期的小伙伴.

微服务容器化开发实战_运维

1. 单体建构与微服务架构

这里讲的很简单而且也通俗易懂,
如果想深入了解的可以看 ​​​《高可用高伸缩微服务架构基于Dubbo、Spring Cloud和Service Mesh》​​

单体架构的特点是应用程序前后端所有模块的代码都打包成一个文件,一般为.war或者.jar格式.通常运行在Weblogic、Tomcat等应用服务器中。
微服务架构是一种架构模式, 它提倡将单一应用程序划分成一组小的服务, 各个服务之间互相协调、互相配合, 为用户提供最终的价值。
前后端
AKF拆分原则:

  1. 水平复制、水平扩展,运行实例的增加集群。
  2. 数据分区,根据地理位置分区管理集群。
  3. 微服务拆分,基于不同业务拆分。
    微服务容器化开发实战_微服务_02
    微服务容器化开发实战_运维_03

2. SpringBoot 微服务开发

​​IntelliJ IDEA创建SpringBoot项目​​

组件

功能

Dubbo

阿里巴巴 RPC框架,面向接口远程方法调用, 只能容错和负载均衡, 服务自动注册发现.

Eureka

Spring Cloud 服务自动注册发现的注册中心

Zuul

Spring Cloud 网关和路由

Config Service

Spring Cloud 分布式配置服务

Hystrix Dashboard

Spring Cloud 服务熔断监控组件

Ribbon

Spring Cloud 客户端负载均衡组件

Zipkin

Spring Cloud 调用链追踪组件

Sleuth

Spring Cloud 服务跟踪

Bus

Spring Cloud 消息总线

Stream

Spring Cloud 数据流

Task

Spring Cloud 批量任务

Turbine

Apache 汇集监控信息

微服务容器化开发实战_运维_04
微服务容器化开发实战_运维_05

3. 搭建微服务运行环境

三种环境:

  1. 开发环境​​dev​
  2. 测试环境​​test​
  3. 生产环境​​prod​

运行的时候使用后面进行切换

nohup java -jar xx.jar --spring.profiles.active=prod &

4. Rancher和Kubernetes离线部署

​​CentOS7安装Docker最新版本​​​​Docker Compose 安装使用教程​​​​Docker私有仓库Harbor安装​​

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。
​​​Rancher1.6中文文档​​

5. 日志采集

常用的日志采集框架是: ELK
因为Logstash比较重,现在常用Filebeat替代,
所以变成了EFK.

​Elasticsearch​​​ 是一个搜索和分析引擎。
​​​Logstash​​​ 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。
​​​Kibana​​ 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

​​Elastic安装日志采集监控博客​​​微服务容器化开发实战_docker_06
Zabbix也可以监控日志,
可以参考如下博客:
​​Zabbix采集Java应用程序nohup日志​​

微服务容器化开发实战_docker_07

6. 调用链跟踪

通过全局的traceId将调用链进行串起来,
spanId记录调用父子关系和前后关系,
每个服务会记录parentId和spanId.
Span是调用链跟踪的基本工作单元,标识一次调用.
Trace是一次调用链跟踪过程,由一组形如树形结构的Span组成.
技术实现:
Zipkin组件和Sleuth组件
微服务容器化开发实战_k8s_08

7. 熔断器

这里介绍的是Spring Cloud Hystrix
特点:

  1. 熔断机制
  2. 自我恢复
  3. 容错性
  4. 可监控

8. 容器化与服务编排

这里涉及到的是Docker、Kubernets和Rancher

微服务容器化开发实战_微服务_09

9. 系统监控

监控分为​​主机监控​​​和​​容器监控​​​ 主机监控这里实用的Zabbix进行监控
可以参考我之前写的博客微服务容器化开发实战_k8s_10
微服务容器化开发实战_容器_11

容器监控使用Kubernets监控:
Kube-State Metrics、Promethus、Grafana组件.
Metrics与Node Exporter组件类似,都是数据指标采集,负责从Kubernetes集群中的各节点采集监控数据,然后传给Prometheus组件进行存储。
微服务容器化开发实战_微服务_12

10. 持续集成部署

常用的持续集成部署(CICD)是基于Jenkins的。
​​​Jenkins安装启动​​

​​Linux安装SonarQube检测代码​​​​SonarQube检测项目代码​​

开发人员提交代码到Gitlab,通过配置WebHook通知Jenkins设置的Pipeline流水线进行代码扫描(SonarQube),Maven代码构建、单元测试,然后脚本Build镜像push到私有仓库Harbor上面,然后通知Kubernetes集群拉取私有仓库的镜像进行发布上线。通过Rancher管理Kubernetes,回滚设置等。
微服务容器化开发实战_k8s_13


举报

相关推荐

0 条评论