好网站在哪里,深圳网站建设公司联系方式,传奇大气网站模板免费下载,电子商务网站排名文章目录 一、微服务与服务治理1、概述2、Two Pizza原则和微服务团队3、主链路规划4、服务治理和微服务生命周期5、微服务架构的网络层搭建6、微服务架构的部署结构7、面试题 二、配置中心1、为什么要配置中心2、配置中心高可用思考 三、服务监控1、业务埋点的技术选型2、用户行… 文章目录 一、微服务与服务治理1、概述2、Two Pizza原则和微服务团队3、主链路规划4、服务治理和微服务生命周期5、微服务架构的网络层搭建6、微服务架构的部署结构7、面试题 二、配置中心1、为什么要配置中心2、配置中心高可用思考 三、服务监控1、业务埋点的技术选型2、用户行为分析用户画像3、通用埋点手段4、离群点分析 四、调用链梳理1、微服务链路梳理 一、微服务与服务治理
1、概述
单体应用时代全都耦合在一起牵一发而动全身。所有功能一起上线一起回滚。代码复杂度混乱。
微服务时代业务模式糙快猛敏捷编程。小步快跑独立演进独立部署快速迭代。团队赋能每个微服务有各自团队。边界清晰以大化小-服务拆分三高应用-分治。
2、Two Pizza原则和微服务团队
Two Pizza原则如果一个团队的成员两个披萨都喂不饱他们说明团队明显太大了 。
“大象不会跳舞” - 提倡小团队。 小团队沟通成本低小步快跑容易实现。人数不会超过10个
在微服务和敏捷的理念之下通常是重沟通请问当因此团队中的每个人都需要做到深度参与。
测试人员也是有很强的开发功底会致力于测试框架的搭建。
3、主链路规划
要保障业务的最小可用性。比如电商的下单场景、社交的点对点消息
主链路规划就是将有限的资源用在最核心的链路上。 根据应用的水位进行弹性计算确保主链路的可用性。自动/手动进行降级熔断、分段限流。
4、服务治理和微服务生命周期
远程RPC调用A服务是如何知道B服务服务器地址的呢B有多台服务器A是如何从集群中选择B服务呢B服务上下线是如何让A服务知道的呢
总的来说服务治理就是维护一个可用的服务列表注册中心并且体现服务的状态。
服务注册每个微服务上线之后会主动在注册中心上注册自己的IP、名称等信息。 服务发现每个微服务都会从注册中心主动拉取所有在该注册中心上注册的服务信息。 服务续约心跳每个微服务与注册中心每隔几秒发送心跳包确保自己处于正常状态。 服务剔除注册中心每隔一段时间进行批处理这段时间内没收到心跳包的微服务会从注册中心剔除。 服务下线微服务主动从注册中心剔除掉。
5、微服务架构的网络层搭建
通常来说Unsecure Zone是可以对用户暴露的用户可以直接访问的Secure Zone只内部访问。 而且每个小的微服务还会做集群部署。
6、微服务架构的部署结构
将每个微服务打包成docker镜像部署在同一个物理机上使用kubernetes进行快速部署。
7、面试题
问高并发系统、资源有限、如何来保障业务顺利进行 答主链路规划由面到点。业务角度规划主链路 - 流量、转化率、变现场景漏斗模型 - 越往下越重要。 答具体技术点限流降级弹性计算。
问谈谈服务治理 答本质是维护可用服务列表保持服务间调用的正确性。 答服务治理的生命周期服务注册、服务发现、服务剔除、服务续约、服务下线。
二、配置中心
1、为什么要配置中心
配置中心可以将配置统一管理有配置变化可以实时推送到相关的微服务。
实现 配置业务隔离将具体配置文件从业务代码中抽离放在中心化的配置中心 环境隔离业务代码层并不需要关心当前部署的环境在配置中心做配置隔离业务代码启动时根据启动参数决定使用哪个环境的配置 服务隔离中心化的配置服务有能力识别那些配置文件属于哪些服务。
2、配置中心高可用思考
解决单点故障问题就需要做集群多副本、主从、集群。 单点故障解决方案通过注册中心将配置中心注册为一个微服务。来实现高可用。
配置文件本地保存一个备份确保远程配置数据读取不到导致宕机。
总而言之高可用的原则就是认为任何一环都不可靠通过各种方式来提高总体的可用性。
三、服务监控
1、业务埋点的技术选型
通过业务日志进行业务买点的处理用于内审、统计、线上预警。
内审后台系统、商户关键操作银行卡、关户、密码的关键操作都记录下来用于内部审计。海量数据可查找长期保存 记录下来之后根据操作员/操作资源维度进行操作查找。查出问题进行追责。 也就是说审计数据只需要根据key来查询想要的操作记录即可可以考虑使用CouchBase或者MongoDB等文档数据库。
线上预警基于文件业务日志记录的通过日志关键信息来监控关键业务流程、关键指标。 技术选型fileBeat收集log文件Kafka日志收集及分发Logstash日志收集、转换、elasticSearch存储、查询、Kibana图形化界面。
2、用户行为分析用户画像
从个人行为数据上分析出个人特点从而进行一些精准推送。 日志关键信息操作时间页面元素匿名/登录用户做了什么操作。时间、地点、人物、事件按需记录
3、通用埋点手段
一般就是这三种手段后端业务埋点、前端可视化埋点、无痕埋点。
后端业务埋点在后端代码中进行日志打印。 可以用侵入性比较高的手动打印日志代码侵入高、信息完整度高、精准度高。也可以使用AOP注解进行统一日志代码侵入低信息完整度较低精准度较低。
前端可视化埋点/声明式埋点使用前端的一些控件/按钮进行埋点。 比如按钮点击触发响应函数判断埋点开关是否开启若开启就执行埋点函数异步。 对比后端业务埋点埋点前置降低业务侵入降低成本。 缺点APP更改埋点逻辑就得重新发版更新比较麻烦。
无痕埋点无差别记录用户行为所有行为异步发送后台。 记录业务事件控件事件需要在前端框架层面为每个控件定义一个业务事件每个控件要对应好业务。 还需要后端可配比如说APP更改埋点逻辑只需要读取后端配置即可。 还需要注意数据传递前后数据关联获取前一步操作内容所以说无痕埋点保存数据时还需要携带前一个页面的相关数据。 特点埋点成本低但是数据清洗难度高。
通常来说使用无痕埋点可视化埋点进行数据分析。 后端业务埋点记录关键链路。 综合使用。
4、离群点分析 四、调用链梳理
1、微服务链路梳理
微服务调用链路长出问题之后需要找到问题的根源点。
通过报错日志找到全局的TraceID然后定位整条调用链路。 常用解决方案ZipKin、skywalking。