微服务架构进阶

栏目: 后端 · 发布时间: 5年前

内容简介:一、微服务落地

点击蓝色“ 乔志勇笔记 ”关注我哟

加个“ 星标 ”,第一时间获取推送的文章哦

相应的第二篇文章:微服务实战问题

一、微服务落地

1、组件合适的技术团队

2、从一个案例入手

3、做好技术取舍

4、采用Devops

5、统一微服务治理平台

1)服务管理 2) 服务治理 3 )服务监控 4)问题定位 5 )日志查询 6) 服务运维

微服务架构进阶

二、容器化docker

docker镜像的分层机制

基础环境层 :操作系统运行的版本、时区、语言、yum源

运行时环境层: 业务代码的运行环境,如jdk版本

web容器层:tomcat容器的jvm参数

业务代码层:实际的业务代码版本

三、容器运维平台

微服务架构进阶

1、镜像仓库(基础设施层)

1)权限控制

2)高可用性

镜像同步 的方式分为主从复制 或p2p

2、资源调度(主机层)

封装ecs api, ansible进行初始化分发

3、容器调度(调度层)

kubernetes

1)主机过滤 2)调度策略

4、服务编排(编排层)

1)服务依赖

docker compose

2)服务发现

基于nginx的服务发现 、 基于注册中心的服务发现

3)自动扩缩容

一旦容量决策支持系统检测到某个服务需要进行扩容,就会创建扩容任务,Config Watcher会监控到扩容任务,并通知CronTrigger有调度策略变更。CronTrigger接到扩容任务,就会调用Scheduler来具体执行扩容。同时还可以通过API来修改、查询扩缩容的信息,也可以通过UI来操作

微服务架构进阶

四、devops

1、实现方案:jekins 或 gitlab (依赖于.gitlab-ci.yml)

2、流程

微服务架构进阶

(1)持续集成,这个步骤的主要作用是确保每一次代码的Merge Request都测试通过,可随时合并到代码的Develop分支,主要包括四个阶段:build阶段(开发分支代码的编译与单元测试)、package阶段(开发分支代码打包成 Docker 镜像)、deploy阶段(开发分支代码部署到测试环境)、test阶段(开发分支代码集成测试)。

三个关键点:代码检查、单元测试 、 集成测试

(2)持续交付,这个步骤的主要作用是确保所有代码合并Merage Request到Develop分支后,Develop分支的代码能够在生产环境中测试通过,并进行小流量灰度验证,可随时交付到线上。主要包括五个阶段:build阶段(Develop分支的代码编译与单元测试)、package阶段(Develop分支的代码打包成Docker镜像)、deploy阶段(Develop分支的代码部署到测试环境)、test阶段(Develop分支的代码集成测试)、canary阶段(Develop分支的代码的小流量灰度验证)。

三个关键点:线上生产环境摘除部分节点、 导入部分流量、观察服务状态

(3)持续部署,这个步骤的主要作用是合并Develop分支到Master主干,并打包成Docker镜像,可随时发布到线上。主要包括四个阶段:build阶段(Master主干的代码编译与单元测试)、package阶段(Master主干的代码打包成Docker镜像)、clear阶段(Master主干的代码Merge回Develop分支)、production阶段(Master主干的代码发布到线上)

三个关键点:手动发布、部分发布、验证观察

五、容量规划

(1)容量评估

评估集群的最大容量和线上实际运行的负荷

步骤 : 1、选择合适的压测指标

2、压测获取单机的最大容量

3、实时获取集群的运行负荷

(2)调度决策

确定弹性扩容的时机和机器数

方式:1、扩容

2、缩容

六、多机房部署

(1) 负载均衡问题

1、平时遵循就近原则

2、流量调配方式

dns解析(大流量)或 nginx 解析调配(小流量)

(2)数据同步问题

1、主从机房架构

2、独立机房架构

WMB消息同步(MCQ 消息队列或者RPC调用)写请求 ,通过应用层同步从而更新缓存

注:同步一般有三种方式:应用层同步,缓存层同步,存储层同步,复杂度上也是由高到低排列,一般应用的话,存储层同步就够了

(3)数据一致性问题

消息对账机制保证最终一致性

参考推荐:胡忠想的从0开始学习微服务

近期文章:

微服务架构————基本组件

微服务实战问题

秒杀系统设计

分布式数据一致性理解

5种分布式锁实现的对比?

Java并发编程学习体系

java8 Stream 史上最全总结

Java 网络编程"初探"

redis 知识点总结

java 核心技术学习总结 (一)

spring中"投机取巧"地限制 用户同时登陆

如果你喜欢本文

请长按二维码,关注 乔志勇笔记

微服务架构进阶


以上所述就是小编给大家介绍的《微服务架构进阶》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Node.js实战

Node.js实战

[美] Mike Cantelon、[美] TJ Holowaychuk、[美] Nathan Rajlich / 吴海星 / 人民邮电出版社 / 2014-5 / 69.00元

服务器端JavaScript?没错。Node.js是一个JavaScript服务器,支持可伸缩的高性能Web应用。借助异步I/O,这个服务器可以同时做很多事情,能满足聊天、游戏和实时统计等应用的需求。并且既然是JavaScript,那你就可以全栈使用一种语言。 本书向读者展示了如何构建产品级应用,对关键概念的介绍清晰明了,贴近实际的例子,涵盖从安装到部署的各个环节,是一部讲解与实践并重的优秀......一起来看看 《Node.js实战》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具