素材网站下载专做智能化施工的网站

web/2025/9/30 5:56:41/文章来源:
素材网站下载,专做智能化施工的网站,手机网站怎么制作内容,分享到wordpress背景 随着酒店业务的高速发展#xff0c;我们为用户、商家提供的服务越来越精细#xff0c;系统服务化程度、复杂度也逐渐上升。微服务化虽然能够很好地解决问题#xff0c;但也有副作用#xff0c;比如#xff0c;问题定位。 每次问题定位都需要从源头开始找同事帮我人肉… 背景 随着酒店业务的高速发展我们为用户、商家提供的服务越来越精细系统服务化程度、复杂度也逐渐上升。微服务化虽然能够很好地解决问题但也有副作用比如问题定位。 每次问题定位都需要从源头开始找同事帮我人肉查日志举一个简单的例子 “这个详情页的价格是怎么算出来的?” 一次用户酒店可订空房页POI详情页访问流量最多需要经过73个服务节点。查问题的时候需要先后找4~5个关键节点的同学帮我们登录十多个不同节点的机器查询具体的日志沟通成本极大效率很低。 为了解决这个问题基础架构的同学提供了MTrace详情可以参考技术博客《分布式会话跟踪系统架构设计与实践》协助业务方排查长链路问题。 但是与此同时还有许多不确定性因素使问题排查过程更加艰难甚至无果而终 各服务化节点存储日志的时间长度不一致有的服务节点因为QPS过高只能不打或者随机打印日志会导致最终查问题的时候线索因为没日志断掉有的服务节点使用了异步逻辑线程池、Hystrix、异步RPC等导致日志中缺失Trace ID无法关联在一起各服务节点的采样率不一样链路数据的上报率也是随机性的线索容易断掉MTrace上只有链路信息没有关联各服务节点的日志信息动态扩容节点上的日志缩容后无法找到。总结起来如图所示 目标 我们的核心诉求有两个 根据用户行为快速定位到具体的Trace ID继而查询到这次服务调用链路上所有节点的日志查询的实时性要能做到准实时秒级输出相关链路日志要在独立外部存储系统中保存半年以上。然后我们对诉求做了进一步的拆分 全量打日志不现实需要选择性打打价值最高部分的日志链路数据需要全服务节点都上传避免因为异步化等原因造成链路数据中断不上传接入方式尽量简单避免所有服务节点都需要修改具体业务代码来接入。最好是能通过日志拦截的方式其它保持透明日志格式化该有的字段AppKey、hostname、IP、timestamp等不需要业务RD反复输入自动补齐在不阻塞原有业务操作的情况下做到准实时展示链路、日志链路数据和日志数据存储不依赖各服务节点需要在独立的存储系统上存储半年以上。系统 搞清了核心诉求后我们针对性地做了许多调研最终定了一个系统的整体设计方案这就是目前已经上线并实践已久的美团点评酒店「卫星系统」。 下面我们就来对系统做详细介绍包括一些核心细节点。 架构 如下图所示卫星系统从横向分为链路和日志两个部分。 链路部分是以MTrace为基础用支持超时fallback下Trace信息传递的Hystrix-Trace插件来覆盖全部场景保证链路被完整采集。 日志部分在接入端有三大核心步骤首先是依托于日志拦截组件实现对业务代码零侵入的情况下收集系统中所有日志内容然后根据统一日志规范对日志进行格式化处理最后通过基于logcenter日志传输机制实现日志到Kafka的传输。 从纵向又分为 业务接入层根据策略采集Trace与业务日志数据处理层通过storm流式处理日志信息数据存储层用于支持实时查询的Squirrel美团点评Redis集群与持久存储的ESElasticSearch以及面向用户的展示层。日志采样方案 接入端是所有数据之源所以方案设计极为关键。要解决的问题有采集策略、链路完整性保障、日志拦截、日志格式化、日志传输。 有的业务单台机器每天日志总量就有百G以上更有不少业务因为QPS过高而选择平时不打印日志只在排查问题时通过动态日志级别调整来临时输出。所以我们在最初收集日志时必须做出取舍。经过分析发现在排查问题的时候绝大多数情况下发起人都是自己人RD、PM、运营如果我们只将这些人发起的链路日志记下来那么目标日志量将会极大减少由日志量过大而造成的存储时间短、查询时效性差等问题自然得到解决。 所以我们制定了这样的采集策略 通过在链路入口服务判断发起人是否满足特定人群住宿事业部员工来决定是否进行日志采集将采集标志通过MTrace进行全链路传递。这样就能保证链路上所有节点都能行为一致地去选择是否进行日志上报保证链路上日志的完整性。 日志拦截 作为核心要素的日志如何进行收集是一个比较棘手的问题。让业务方强制使用我们的接口进行日志输出会带来许多麻烦一方面会影响业务方原有的日志输出策略另一方面系统原有的日志输出点众多涉及的业务也五花八门改动一个点很简单但是全面进行改动难保不会出现未知影响。所以需要尽可能降低对接入方代码的侵入。 由于目前酒店核心业务已全面接入log4j2通过研究发现我们可以注册全局Filter来遍历系统所有日志这一发现使我们实现了代码零改动的情况下收集到系统所有日志。 日志格式化 业务系统输出的日志格式不一比如有的没有打印TraceID信息有的没有打印日志位置信息从而很难进行定位。这主要带来两方面的问题一方面不利于由人主导的排查分析工作另一方面也不利于后续的系统优化升级比如对日志的自动化分析报警等等。 针对这些问题我们设计了统一日志规范并由框架完成缺失内容的填充同时给业务方提供了标准化的日志接口业务方可以通过该接口定义日志的元数据为后续支持自动化分析打下基础。 由框架填充统一日志信息这一过程利用到了log4j2的Plugins机制通过Properties、Lookups、ContextMap实现业务无感知的操作。 日志处理 我们在最终的日志传输环节利用了日志中心的传输机制使用日志中心的ScribeAppender实现日志传输至本地agent然后上报到远端Kafka这样设计有几点好处 依赖公司成熟的基础服务相对而言更可靠、更稳定同时也省去了自己搭建服务、保证服务安全这一过程可以将日志直接转存至日志中心ES做持久化存储同时支持快速灵活的数据检索可以通过Storm对日志进行流式处理支持灵活的系统扩展比如实时检索、基于日志的实时业务检查、报警等等为后续系统扩展升级打下基础。我们的数据处理逻辑全部在Storm进行处理主要包含日志存储Squirrel美团点评内部基于Redis Cluster研发的纯内存存储、实时检索与Trace同步。 目前日志中心ES能保证分钟级别实时性但是对于RD排查问题还是不够必须支持秒级别实时性。所以我们选择将特定目标用户的日志直接存入Squirrel失效时间只有半小时查询日志时结合ES与Squirrel这样既满足了秒级别实时性又保证了日志量不会太大对Squirrel的压力可以忽略不计。 我们的系统核心数据有链路与日志链路信息的获取是通过MTrace服务获得但是MTrace服务对链路数据的保存时间有限无法满足我们的需求。所以我们通过延时队列从MTrace获取近期的链路信息进行落地存储这样就实现了数据的闭环保证了数据完整性。 链路完整性保障 MTrace组件的Trace传递功能基于ThreadLocal而酒店业务大量使用异步化逻辑线程池、Hystrix这样会造成传递信息的损失破坏链路完整性。 一方面通过Sonar检查和梳理关键链路来确保业务方使用类似transmittable-thread-local中的ExecutorServiceTtlWrapper.java、ExecutorTtlWrapper.java的封装来将ThreadLocal里的Trace信息也传递到异步线程中前文提到的MTrace也提供这样的封装。 另一方面Hystrix的线程池模式会造成线程变量丢失。为了解决这个问题MTrace提供了Mtrace Hystrix Support Plugin插件实现跨线程调用时的线程变量传递但是由于Hystrix有专门的timer线程池来进行超时fallback调用使得在超时情况下进入fallback逻辑以后的链路信息丢失。 针对这个问题我们深入研究了Hystrix机制最终结合Hystrix Command Execution Hook、Hystrix ConcurrencyStrategy、Hystrix Request Context实现了覆盖全场景的Hystrix-Trace插件保障了链路的完整性。 HystrixPlugins.getInstance().registerCommandExecutionHook(new HystrixCommandExecutionHook() {Overridepublic T void onStart(HystrixInvokableT commandInstance) {// 执行command之前将trace信息保存至hystrix上下文实现超时子线程的trace传递if (!HystrixRequestContext.isCurrentThreadInitialized()) {HystrixRequestContext.initializeContext();}spanVariable.set(Tracer.getServerSpan());}Overridepublic T Exception onError(HystrixInvokableT commandInstance, HystrixRuntimeException.FailureType failureType, Exception e) {// 执行结束后清空hystrix上下文信息HystrixRequestContext context HystrixRequestContext.getContextForCurrentThread();if (context ! null) {context.shutdown();}return e;}Overridepublic T void onSuccess(HystrixInvokableT commandInstance) {// 执行结束后清空hystrix上下文信息HystrixRequestContext context HystrixRequestContext.getContextForCurrentThread();if (context ! null) {context.shutdown();}} });HystrixPlugins.getInstance().registerConcurrencyStrategy(new HystrixConcurrencyStrategy() {Overridepublic T CallableT wrapCallable(CallableT callable) {// 通过自定义callable保存trace信息return WithTraceCallable.get(callable);} });效果展示 比如以排查一次用户点击某POI详情页的TraceID为例子 我们可以看到他在MTrace中的调用链路是这样的 在卫星系统中展示为如下效果 可见在保留了链路数据的基础上系统还将全链路节点日志聚合到了一起提升了排查效率。 后续规划 目前系统还处于初级阶段主要用来解决RD在排查问题时的两大痛点日志信息的不完整与太分散现在已经满足了这一需求。但是全链路日志系统能做的不止这些后续的主要规划有如下几方面 支持多链路日志关联搜索比如一次列表页刷新与后续的详情页展示虽然链路是多个但是实际处在一个关联的场景中。支持关联搜索就可以可以将日志排查目标从单个动作维度扩展到多动作组成的场景维度。支持业务方自定义策略规则进行基于日志的自动化业务正确性检查如果检查出问题可以直接将详细信息通知相关人员实现实时监测日志、实时发现问题、实时通知到位免去人工费时费力的低效劳动。作者简介 亚辉2015年加入美团点评就职于美团点评酒旅事业群技术研发部酒店后台研发组。曾鋆2013年加入美团点评就职于美团点评酒旅事业群技术研发部酒店后台研发组。招聘信息 最后发个广告美团点评酒旅事业群技术研发部酒店后台研发组长期招聘Java后台、架构方面的人才有兴趣的同学可以发送简历到xuguanfei#meituan.com。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各大网站网址奉贤做网站的

apache shiro 反序列化漏洞解决方案 反序列化漏洞解决方案产生原因解决方案1:1.升级shiro至最新版本1.7.1解决方案2:修改rememberMe默认密钥,生成随机密钥。 反序列化漏洞解决方案 反序列化漏洞介绍 序列化:把对象转换为字符串或…

网站照片要求南阳企业网站推广方法

一:Settings一级菜单 1、AndroidManifest.xml 每个APP对应都有一个AndroidManifest.xml,从该文件入手分析最为合适。 packages/apps/Settings/AndroidManifest.xml 根据<category android:name="android.intent.category.LAUNCHER" />可找到当前当前APP a…

聊城网站建设公司电话商城购物网站开发意义

前言 在上一章节中我们用W5500-EVB-PICO通过dhcp获取ip地址&#xff08;网关&#xff0c;子网掩码&#xff0c;dns服务器&#xff09;等信息&#xff0c;给我们的开发板配置网络信息&#xff0c;成功的接入网络中&#xff0c;那么本章将教大家如何让我们的开发板进行DNS域名解析…

密云做网站的中国建行官网首页

Kafka_04_Topic和日志 Topic/PartitionTopicPartition 日志存储存储格式日志清理删除压缩 Topic/Partition Topic/Partition: Kafka中消息管理的基础单位 Topic和Partition并不实际存在(仅逻辑上的概念) 如: Topic和Partition关系 // 每个日志文件可对应多个日志分段, 其还可…

建立个人网站主题新中式装修风格效果图

最近遇到一个python的小数的问题&#xff0c;本来应该很简单的小于判断&#xff0c;无论如何都不正确&#xff0c;而且浮点小数都没问题&#xff0c;但decimal小数有问题&#xff0c;给我整蒙了&#xff0c;后来才发现是对decimal不了解所致&#xff0c;如果你还用float转decim…

网站管理建设落实报告wordpress register

问题描述&#xff1a;vue3项目的页面A跳转到页面B时&#xff0c;页面B页面是空白的&#xff0c;需要手动刷新一下才能恢复正常&#xff0c;在页面A中用iframe引入了别的网站&#xff08;后续事实证明&#xff0c;跟iframe没一毛钱的关系&#xff09;。着急的童鞋可以直接拉到底…

工信部网站备案查询步骤详解五合一免费建站

1 赛题思路 (赛题出来以后第一时间在群内分享&#xff0c;点击下方群名片即可加群) 2 比赛日期和时间 报名截止时间&#xff1a;2024年4月11日&#xff08;周四&#xff09;12:00 比赛开始时间&#xff1a;2024年4月12日&#xff08;周五&#xff09;8:00 比赛结束时间&…

山西长治做网站公司又拍网站怎么做的

1&#xff09;控制标签体内容是否输出 2&#xff09;控制标签余下内容是否输出 3&#xff09;控制重复输出标签体内容 4&#xff09;改变标签体内容 5&#xff09;带属性的标签 package com.loaderman.demo.a_tag;import java.io.IOException; import java.io.StringWriter;imp…

杭州网站建设有限公司凡科网站登录入

考点介绍&#xff1a; HashMap是大中小厂面试的高频考点&#xff0c;主要从底层结构&#xff0c;和线程安全等角度来进行考察&#xff0c;考察点比较集中&#xff0c;但是有一定难度。 分为初级和高级两种&#xff1a;初级一般集中在中小公司的map的key-value的可重复和可空问题…

游戏网站建设的策划书深圳网站设计 深圳信科

企业知识库是一种特殊的在线协同文档工具&#xff0c;支持包括FAQ、文档、视频、知识图谱等。从本质上讲&#xff0c;它是基于企业知识库软件从而实现内部或外部知识的沉淀、集合、更新、共享等&#xff0c;能为员工或客户提供常见问题的标准回答。 今天我就基于HelpLook &…

三亚市住房与城乡建设局网站网站建设的教学网站

现在是信息时代,随着时代的进步,互联网是人们生活不可或缺的一部分。通常由许多不同类型的计算机网络相互连接而成。如果几个计算机网络在物理上连接在一起,它们之间并不能进行沟通,那么这种“互连”没有实际意义。所以在谈到“互连”时,就已经暗示这些相互连接的计算机可以进行…

外贸网站排行scratch编程

力扣71.简化路径 根据双斜杠 求出每一组夹在里面的字符串 处理有意义的字符串 将所有路径存在字符串数组中最后用所有剩余的路径名称 变为答案 class Solution {public:string simplifyPath(string path) {vector<string> res;string ans;string cnt"";int …

门户网站程序学习软件的网站

游戏简介&#xff1a;《放置奇兵》是一款全球顶级奇幻RPG手游&#xff0c;派出你的英雄小队&#xff0c;出 发&#xff0c;从碧绿葱葱的萨拉森林到神圣威严的至高天&#xff0c;同数百万玩家一同踏上魔幻旅程&#xff0c;带领你的英雄小队深入古老的废墟&#xff0c;对抗邪恶的…

应聘的做网站推广的建设网站有哪些方法有哪些

文章目录1. CSDN 博客数据2. 基础算法练习3. 机器学习4. 深度学习5. MySQL6. 总结和展望时间过得很快&#xff0c;2020结束了&#xff01; 写个流水账&#xff0c;记录一下。 1. CSDN 博客数据 截个图对比下&#xff1a; 2019年终2020年终 2. 基础算法练习 LeetCode 刷题 …

企业网站背景图片网站网络营销平台

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

wordpress 付款插件360优化大师下载安装

Systemd 是 Linux 系统工具&#xff0c;用来启动守护进程&#xff0c;已成为大多数发行版的标准配置。 本文介绍它的基本用法&#xff0c;分为上下两篇。今天介绍它的主要命令&#xff0c;下一篇介绍如何用于实战。 一、由来 历史上&#xff0c;Linux 的启动一直采用init进程。…

免费做电子书的网站新闻头条最新消息

论文笔记整理&#xff1a;叶群&#xff0c;浙江大学计算机学院&#xff0c;知识图谱、NLP方向。会议&#xff1a;WSDM 2019链接&#xff1a;https://dl.acm.org/citation.cfm?id3290961Motivation基于spring-electrical的模型在网络可视化中取得了非常成功的应用&#xff0c;一…

如何把网站转换成wap站点wordpress文章什么时候收录

vue中有很多的指令像v-on、v-model、v-bind等是我们开发中常用的 常用指令 v-bind 单向绑定解析表达式 v-model 双向数据绑定 v-for 遍历数组/对象/字符串 v-on 绑定事件监听,可简写为@ v-show 条件渲染(动态控制节点是否存展示) v-if 条件渲染(动态控制节点是否存存在) v…

网站做实名验证如何优化

世界上只有一种英雄主义&#xff0c;就是看清生活的真相之后依然热爱生活。对于 Lombok 我相信大部分人都不陌生&#xff0c;但对于它的实现原理以及缺点却鲜为人知&#xff0c;而本文将会从 Lombok 的原理出发&#xff0c;手撸一个简易版的 Lombok&#xff0c;让你理解这个热门…

兰州城市建设学校网上报名网站商务网站开发公司

C程序设计 &#xff08;第四版&#xff09; 谭浩强 例10.1 例10.1 从键盘输入一些字符&#xff0c;逐个把它们送到磁盘上去&#xff0c;直到用户输入一个“#”为止。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法&#xff1a;使用指针&…