`
m635674608
  • 浏览: 4929378 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
Tomcat或Jetty作为Servlet容器会为每一个Web应用构建一个ServletContext用于存放所有的Servlet, Filter, Listener。Spring MVC 启动的时候主要涉及到DispatcherServlet 与 ContextLoaderListener。 关于ContextLoaderListener和DispatcherServlet ContextLoaderListener Con ...
一.流程概述 主要是通过扩展ServletRequestWraper来实现的。 1.SessionRepositoryFilter.doFilterInternal 2.会创建SessionRepositoryRequestWrapper,这里面的getSession(boolean)会从外部存储创建session ---sessionRepository是RedisOperationsSessionRepository ---new redissession的时候会设置一些默认属性,比如间隔时间,lastAccessTime等 这些属性关联保存在MapSession中,创建完s ...
DCL,即Double Check Lock,中卫双重检查锁定。其实DCL很多人在单例模式中用过,LZ面试人的时候也要他们写过,但是有很多人都会写错。他们为什么会写错呢?其错误根源在哪里?有什么解决方案?下面就随LZ一起来分析 问题分析 我们先看单例模式里面的懒汉式: publicclassSingleton{privatestaticSingleton singleton;privateSingleton(){}publicstaticSingleton getInstance(){if(singleton ==
要想很好理解这三个上下文的关系,需要先熟悉spring是怎样在web容器中启动起来的。spring的启动过程其实就是其IoC容器的启动过程,对于web程序,IoC容器启动过程即是建立上下文的过程。 spring的启动过程: 首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境; 其次,在web.xml中会提供有contextLoaderListener。在web容器启动时,会触发容器初始化事件,此时contextLoaderListene ...
监控服务器状态是运维必不可少的一部分, 通常情况, 我们用得比较多的就是graphite, 因为使用python写的, 所以对于大部分运维工程师来讲, 算是比较熟悉的语言. 但graphite毕竟比较老了, 界面体验方面不太友好, 加上graphite部署起来也不是太容易, 会给新手造成一定困扰. 这里给大家介绍的是另一种监控系统grafana, 相比graphite, 优势非常大, 特别是配置和部署, 要简单很多, 界面方面的体验做得非常好, 特别是还兼容graphite的数据 由于grafana仅仅只是提供界面显示, 所以他需要从influxdb中获取数据, 而influxdb中 ...
/** * <p> * A {@link org.springframework.session.SessionRepository} that is implemented using * Spring Data's {@link org.springframework.data.redis.core.RedisOperations}. In a web * environment, this is typically used in combination with {@link SessionRepositoryFilter} * . This impl ...
前言 通过简单回顾阿里中间件(Aliware)消息引擎的发展史,本文开篇于双11消息引擎面临的低延迟挑战,通过经典的应用场景阐述可能会面临的问题 - 响应慢,雪崩,用户体验差,继而交易下跌。为了应对这些不可控的洪峰数据,中间件团队通过大量研究和实践,推出了低延迟高可用解决方案,在分布式存储领域具有一定的普适性。在此基础上,通过对现有有限资源的规划,又推出了分级的容量保障策略,通过限流、降级,甚至熔断技术,能够有效保障重点业务的高吞吐,成功的支撑集团包括海外业务平缓舒畅地度过双11高峰。与此同时,在一些对高可靠、高可用要求极为苛刻的场景下,中间件团队又重点推出了基于多副本机制的高可用解决方案 ...
/** * Saves any attributes that have been changed and updates the expiration of this * session. */ private void saveDelta() { if (this.delta.isEmpty()) { return; } String sessionId = getId(); getSessionBoundHashOperations(sessionId).putAll(this.delta); Strin ...
java 中可以通过 eclipse 等工具直接打印堆栈,但是对于某些环境中无法使用 eclipse 工具时,需要知道堆栈,如何处理呢? 介绍3种方法供选择: 方法一: package name.xu; public class CallStack { public static void printCallStatck() { Throwable ex = new Throwable(); StackTraceElement[] stackElements =
脚本手工创建 ./bin/kafka-topics.sh –zookeeper 192.168.2.225:2183/config/mobile/mq –create –topic test.example –replication-factor 2 –partitions 24 –topic指定topic name –partitions指定分区数,这个参数需要根据broker数和数据量决定,正常情况下,每个broker上两个partition最好; –replication-factor指定partition的replicas数,建议设置为2; 程序自动创建: 开启自动创建配置: ...
一、Hadoop版本综述   目前Hadoop发行版非常多,有华为发行版、Intel发行版、Cloudera发行版(CDH)等,所有这些发行版均是基于Apache Hadoop衍生出来的,之所以有这么多的版本,完全是由Apache Hadoop的开源协议决定的:任何人可以对其进行修改,并作为开源或商业产品发布/销售。(http://www.apache.org/licenses/LICENSE-2.0)。   国内绝大多数公司发行版是收费的,比如Intel发行版、华为发行版等,尽管这些发行版增加了很多开源版本没有的新feature,但绝大多数公司选择Hadoop版本时会将把是否收费作 ...

常见网关种类

 
kong  caddy openresty  nginx plus Traefik fabio  zuul spring Gateway
1. 描述 spring中提供了两种主要方式实例化bean,一种为配置文件方式,另一种为注解的形式。但如果配置文件配置不合理或者注解使用不恰当,就会造成一个bean会被多次初始化的现象发生。此时会造成一种资源的浪费,严重时甚至会影响系统的性能。但此种问题有很隐蔽,如果不仔细检查,很难发现。本人是因为系统中一个定时任务被重复执行两次,经google,baidu之后才发现此问题。 以下是几种会产生此问题的配置形式。 2. 配置文件问题导致的重复初始化 2.1 问题原因 有时候,我们会将spring的配置和spring mvc的配置放在一个xml文件中,比如叫:applicationCon ...
  Caddy是一个使用 Go语言写的 HTTP Server,开发时间并不长,在性能上或许比不上 Nginx,但是在 上手难度/配置难度 上面简单的不行不行的。     并且 Caddy支持 自动签订Let’s Encrypt SSL证书,什么都不需要你管,只需要提供一个邮箱,剩下的他会自己申请、配置和续约 SSL证书!   本文转载自 逗比根据地 » 利用 Caddy 非常简单的部署 反向代理/镜像(支持自签SSL证书) 官网地址https://caddyserver.com 部署 Caddy    Caddy 是 Go语言编译好的二进制程序,所以只有一个 Caddy 文件(还需 ...
 caddy 作为微服务的 API gateway 转自:http://studygolang.com/articles/9616 背景 大家都知道,Docker这些年让IT界产生了深刻的变革,从开发到测试到运维,处处都有它的身影。它同时也和微服务架构相互促进,并肩前行。 在最新版的 Docker(CE 17.03) 里,随着 swarm mode 的成熟,在较简单的场景里已经可以不再需要专门的基础设施管理,
Global site tag (gtag.js) - Google Analytics