From 20b35b37fb34136837628b8c340c78af51346ad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=82=85=E5=93=A5?= <184172133@qq.com> Date: Tue, 6 Jul 2021 14:04:11 +0800 Subject: [PATCH] Update README.md --- .../README.md" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git "a/notes/\350\257\273\350\200\205\346\217\220\351\227\256/README.md" "b/notes/\350\257\273\350\200\205\346\217\220\351\227\256/README.md" index 8fbc4f7..7c927a4 100644 --- "a/notes/\350\257\273\350\200\205\346\217\220\351\227\256/README.md" +++ "b/notes/\350\257\273\350\200\205\346\217\220\351\227\256/README.md" @@ -47,3 +47,19 @@ 首先:你的场景是有什么限定吗,权限使用过程中的校验可以直接读库不,因为我感觉你这个体量并不大,如果可以读库验证,直接修改库就可以了。 通常:一个权限的变更,需要走审批流程并要求用户退出登录,验证身份,才可以使用新的权限职责,避免因为权限范围扩大,导致之前账号借用等操作风险的发生(不过这个依赖于不同场景的风险级别而决定设计)。 + +--- + +如何通过javaagent方式实现http服务之间的header信息传递?Hystrix线程隔离策略或者多线程下如何实现呢? + +1. 基于字节码框架(ASM、Byte-buddy、javassit)插桩和 Javaagent 能力实现的非入侵全链路监控系统,具备的特质包括: +1.1 低侵入性:监控系统应尽可能减少对业务系统的侵入,保持对使用方的透明性,减少开发人员的负担,降低接入门槛和难度。 +1.2 低性能影响:由于全链路监控系统需要对各种应用中间件进行日志数据采集,大多都需要在业务系统内进行“埋点”或放置agent,一般都是在核心业务流程。因此应尽可能降低对业务系统造成的性能影响,一般来说,对CPU的耗用低于1%~2%可以作为一个参考阈值。 +1.3 灵活全面的接入策略:为了尽可能降低接入成本,应该提供灵活的监控配置策略包括配置在服务器端方便升级,让业务方决定是否接入,以及收集数据的范围和粒度,并提供对应的技术方案保障监控策略生效。 +1.4 时效性:实时有效的监控数据展示功能,帮助相关人员理解系统行为,为流程、架构、代码优化,以及扩容缩容、服务限流降级提供正确客观的数据参考。 + +2. 所有基于此类技术实现的监控系统,都需要给一次调用生成唯一ID,并在 http3x、http4x 中使用 setRequestHeader 方式进行传递。另外在 RPC 框架中如 Dubbo 也会有透传信息的字段,给予监控系统使用。 + +3. 关于全链路监控的学习,可以参考以下内容: +3.1 pinpoint:https://github.com/pinpoint-apm/pinpoint +3.2 bee-apm:https://github.com/itstack-org/bee-apm -- GitLab