首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
CodeGuide | 程序员编码指南
小傅哥
创建于2021-05-10
订阅专栏
本专栏是作者小傅哥多年从事一线互联网Java开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、点赞、分享)!
等 666 人订阅
共319篇文章
创建于2021-05-10
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Spring Boot 中间件开发(一)《服务治理中间件之统一白名单验证》
Spring Boot + 领域驱动设计使得微服务越来越火热,而随着微服务越来越多,服务的治理就显得尤为重要。 在我们的业务领域开发中,经常会有一些通用性功能搭建,比如;白名单、黑名单、限流、熔断等,为了更好的开发业务功能,我们需要将非业务功能的通用逻辑提取出来开发出通用组件,…
Spring Cloud(九)《服务网关Zuul 动态路由与权限过滤器》
在实际的业务开发中不只是将路由配置放到文件中,而是需要进行动态管理并且可以在变化时不用重启系统就可以更新。与此同时还需要在接口访问的时候,可以增加一些权限验证以防止恶意访问。 PRE:这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记…
Spring Cloud(八)《服务网关路由 Zuul1》
为什么会有路由层?因为在微服务架构设计中,往往并不会直接将服务暴漏给调用端,而是通过调用路由层进行业务隔离,以达到不同的业务调用对应的服务模块。 Spring Cloud Zuul 路由是微服务架构的不可或缺的一部分,提供动态路由、监控、弹性、安全等的边缘服务。Zuul 是 N…
Spring Cloud(七)《基于RabbitMQ消息总线方式刷新配置服务》
当我们的微服务达到是几个到百个以上,在更新配置时,不太可能一个个刷新或者重启,这样既不能保证效率也容易导致遗漏造成事故。因此我们需要SpringCloud Bus 提供总线服务,在我们push代码到Git的时候,通过Webhooks(http://localhost:port/…
Spring Cloud(六)《基于github webhook动态刷新服务配置》
在实际开发中经常会有一个叫做配置中心的服务,这个服务经过变更参数来动态刷新线上业务数据行为配置。比如;行为开关、活动数据、黑白名单、本地/预发/线上环境切换等等,这些配置信息往往需要在我们不重启系统的时候就可以被更新执行。那么我们一般会使用具备此类属性在分布式系统中适合的组件进…
Spring Cloud(五)《Turbine 监控信息聚合展示 Hystrix》
但是这样并不利于我们去做整体服务的监控,并且在实际使用的过程中如果是几十到几百个接口那么这样的监控几乎达不到监控效果,就累死在监控路上了。因此我们需要使用到 Turbine 来进行监控信息聚合,可以按业务组定义配置方便监控。 提供一个查询用户信息的简单方法,在配置文件中通过修改…
Spring Cloud(四)《服务响应性能成功率监控 Hystrix》
Hystrix Dashboard | 断路器仪表盘,Hystrix 依赖服务一段时间窗内的请求调用情况来判断并操作断路器的链接和熔断状态保护系统快速失败服务降级,而这些请求情况的指标信息都是 HystrixCommand 和 HystrixObservableCommand …
Spring Cloud(三)《应用服务快速失败熔断降级保护 Hystrix》
在互联网开发中经常会听到雪崩效应,比如某明星发一些状态某猿就要回去加班了!那么为了应对雪崩我们经常会进行服务扩容、添加缓存、优化流程但往往突发的事件依然有击穿缓存、应用负载、数据库IO、网络异常等等带来的风险,所以一些常见的做法有服务降级、限流、熔断,在逐步恢复系统可用率来保护…
Spring Cloud(零)《总有一偏概述告诉你SpringCloud是什么》
为了更好的实现领域驱动设计的落地,不仅要在设计思路上做到领域职责清晰、系统边界明确,还需要使用到Spring Boot、Spring Cloud框架服务体系来更好的构建微服务。后续部分章节将针对Spring Cloud的使用以及有益于构建微服务的知识技能做系列案例整理,以最终完…
基于jvmti定位java异常信息
JVMTI(JVM Tool Interface)位于jpda最底层,是Java虚拟机所提供的native编程接口。JVMTI可以提供性能分析、debug、内存管理、线程分析等功能。 JPDA 定义了一个完整独立的体系,它由三个相对独立的层次共同组成,而且规定了它们三者之间的交…
基于JavaAgent的全链路监控六《开发应用级监控》
在我们的监控程序中,需要对各种模块进行监控;servlet、rpc、http、jdbc、redis、logic等,那么我们在设计监控程序时就需要对监控的程序进行模块化开发,可以在需要的时候进行组装配置即可,以方便我们监控程序的扩展和可控制性。这一章节我们把监控模块剥离,采用工厂…
基于JavaAgent的全链路监控五《ThreadLocal链路追踪》
当业务程序代码在线上运行时,实例A、实例B、实例C,他们直接可能从上到下依次调用,为了能很好的监控程序的调用链路,我们需要对调用链路进行追踪监控。实例的外部可能是通过RPC、HTTP、SOCKET、WEBSERVICE等方式进行调用,内部是方法逻辑依次执行。外部例如http可以…
基于JavaAgent的全链路监控四《JVM内存与GC信息》
除了监控java方法的执行耗时,我们还需要获取应用实例的jvm内存与gc信息,以实时把控我们的服务器性能是否在安全范围。监控jvm内存与gc信息是非常重要的,尤其是在大促以及微博火热爆点的时候,我们需要根据监控信息进行扩容,以保证系统稳定。
基于JavaAgent的全链路监控三《ByteBuddy操作监控方法字节码》
在第二章中我们已经可以监控方法执行耗时,虽然它能完成我们一些基本需要,但是为了增强代码的扩展性,我们需要使用字节码操作工具ByteBuddy来帮助我们实现更完善的监控程序。
基于JavaAgent的全链路监控二《通过字节码增加监控执行耗时》
通过上一章节的介绍《嗨!JavaAgent》,我们已经知道通过配置-javaagent:文件.jar后,在java程序启动时候会执行premain方法。接下来我们使用javassist字节码增强的方式,来监控方法程序的执行耗时。
基于JavaAgent的全链路监控一《嗨!JavaAgent》
JavaAgent是在JDK5之后提供的新特性,也可以叫java代理。开发者通过这种机制(Instrumentation)可以在加载class文件之前修改方法的字节码(此时字节码尚未加入JVM),动态更改类方法实现AOP,提供监控服务如;方法调用时长、可用率、内存等。本章节初步…
bugstack虫洞栈 | netty4.1案例文章列表汇总,跟着案例学Netty
Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 因为你要涨工资!无论是在互联网还是在物联网开发中,都离不开Socket通信,尤其是…
netty案例,netty4.1源码分析篇六《Netty异步架构监听类Promise源码分析》
他们的含义都是对未来即将要发生的事情做相应的处理,这也是在异步编程中非常常见的类名。 Netty是一个异步网络处理框架,在实现中大量使用了Future机制,并在Java自带Future的基础上,增加了Promise机制。这两个实现类的目的都是为了使异步编程更加方便使用。 jav…
下一页