容器中的JVM资源该如何被安全的限制?

前言

Java与Docker的结合,虽然更好的解决了application的封装问题。但也存在着不兼容,比如Java并不能自动的发现Docker设置的内存限制,CPU限制。
这将导致JVM不能稳定服务业务!容器会杀死你JVM进程,而健康检查又将拉起你的JVM进程,进而导致你监控你的pod一天重启次数甚至能达到几百次。

我们希望当Java进程运行在容器中时,java能够自动识别到容器限制,获取到正确的内存和CPU信息,而不用每次都需要在kubernetes的yaml描述文件中显示的配置完容器,还需要配置JVM参数。

使用JVM MaxRAM参数或者解锁实验特性的JVM参数,我们可以解决这个问题。

阅读更多...

Zuul源码分析(2)Filter分析

前言

前一篇文件中我们分析了zuul对Filter请求了不同的阶段划分了多个生命周期即FilterType。接下来我们继续分析每一个FilterType的具体的Filter有哪些,他们都干了什么。

ZuulFilters运行流程图

  • 前面我们分析完了zuul的一个生命周期,下面我们在来仔细的看一下每个生命周期具体使用到的Filter 阅读更多...

Zuul源码分析(1)生命周期

前言

  • Zuul在Spring Cloud Netfilx 体系中扮演着接入者网关的角色。
  • 本质上来说Zuul本身就是一系列的filters, 可以类比Servlet框架的Filter。按照生命周期我们可以分为四种类型(pre,route,post,err)分别对应请求过程。你可以从com.netflix.zuul.FilterProcessor类里面找到所有的生命周期处理。
  • 为什么我们要去了解它?比如我们想在网关统一对用户进行鉴权,进行JWT的解析和参数转换,比如我们想实现自己的httpClient,再比如我们想在后端业务微服务返回的结果内进行一些特别的处理,比如脱敏啊,比如去掉一些字段啊。 阅读更多...

扩展spring-cloud-ribbon支持灰度

目标

  • 扩展ribbon完成灰度调用
  • 完成对zuul的支持
  • 完成服务间调用的支持
  • 实战,解决在开发环境,进行开发中的测试,DEBUG.在微服务的模式下,需要在开发者的机器启动大量服务,
    启动大量的服务需要大量的内存和大量的时间,在我们时间的项目开发中,在16G的机器上甚至无法进行调
    和测试相关工作。
阅读更多...
  • © 2015-2020 qingmu.io
  • Powered by Hexo Theme Ayer
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信