内容简介:一、微服务落地
点击蓝色“ 乔志勇笔记 ”关注我哟
加个“ 星标 ”,第一时间获取推送的文章哦
相应的第二篇文章:微服务实战问题
一、微服务落地
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开始学习微服务
近期文章:
如果你喜欢本文
请长按二维码,关注 乔志勇笔记
以上所述就是小编给大家介绍的《微服务架构进阶》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 单体架构与微服务架构对比,为什么采用微服务架构
- Java架构书籍:微服务架构必读书单(附微服务架构模式进阶导图)
- 「微服务架构」微服务架构中的数据一致性
- 架构演进之「微服务架构」
- 微服务架构 VS 单体架构
- 从单体架构到微服务架构
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Node.js实战
[美] Mike Cantelon、[美] TJ Holowaychuk、[美] Nathan Rajlich / 吴海星 / 人民邮电出版社 / 2014-5 / 69.00元
服务器端JavaScript?没错。Node.js是一个JavaScript服务器,支持可伸缩的高性能Web应用。借助异步I/O,这个服务器可以同时做很多事情,能满足聊天、游戏和实时统计等应用的需求。并且既然是JavaScript,那你就可以全栈使用一种语言。 本书向读者展示了如何构建产品级应用,对关键概念的介绍清晰明了,贴近实际的例子,涵盖从安装到部署的各个环节,是一部讲解与实践并重的优秀......一起来看看 《Node.js实战》 这本书的介绍吧!