`
文章列表
来自链接 Java代码   /*   * Copyright 2011 Alibaba.com All right reserved. This software is the   * confidential and proprietary information of Alibaba.com ("Confidential 

服务器监控

zabbix监控:https://www.cnblogs.com/clsn/p/7885990.html
1、用ImageIO.read(stream);会出现上传图片红色背景的情况,但ImageIO.write(image, "png", outputfile)就没问题。也可换种方式实现。比如读取流的字节写入,或者MultipartFile.transferTo(des);即可 2、下载文件,有时候会直接输出文本内容,而不是以文件形式下载,这时候可以通过window.open("/api/export?param="+请求,并设置格式即可。 response.addHeader("Content-Disposition&quo ...

tomcat

tomcat官网介绍   本系列博客打算分析一下tomcat7.x的源码,其中可能会穿插一些java基础知识的介绍 读tomcat的源码的时候,我建议和官方的User Guide一起阅读,明白tomcat做某件事情的目的之后,看源码会容易一点。另外,debug当然是一个非常重要的工具。源码上了规模之后,如果单纯静态地看,基本是看不出什么来的,但是跟着数据流走一走,很多问题就清楚了 debug环境的搭建方法,请看另外一篇博客:http://zhh2009.iteye.com/blog/1557891。这篇文章写得很清楚了,但是我不太明白为什么需要转换成maven工程,以及为什么需要一个di ...

memcached结构

结构、简介:每个作业本(memcached的内存空间),它都有很页(slab),每一页里面有很多方格子(trunk),每个格子里面可以写字(item)。 上面说到的格子本的一页纸,就一个是slab, 是memcached分配的一块内存空间,默认大小为1M。memcached会将内存空间分配成一个一个的slab,还会把一个slab分割成一个一个的格子,也就是一个一个chunk,比如说1M的slab分成两个0.5M的chunk,slab和chunk其实都是代表实质的内存空间,chunk是slab分割后的更小的单元。所以:slab就相当于作业本中的“一页纸”,而chunk则是把这一页纸中的一个个 ...
事务注解是怎么发挥作用的。 1、首先自定义一个注解类,public @interface MyComponent。 2、TxAdviceBeanDefinitionParser 3、实现MethodInterceptor接口,进行方法拦截。比如TransactionInterceptor。     常见的aop拦截的例子: 1、定义自定义注解。 @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD, ElementType.TYPE }) public @interface CallTimesLi ...
mq的部署方式: master-slave部署模式   1)shared filesystem Master-Slave部署方式   主要是通过共享存储目录来实现master和slave的热备,所有的ActiveMQ应用都在不断地获取共享目录的控制权,哪个应用抢到了控制权,它就成为master ...

rabbitMq使用

1、安装rabbitmq后,直接运行生产者代码,这时候会报错,然后看到自动增加了一个“liuQueue”的队列,但是exchange没有自动添加。 2、新增一个liuExchange,然后运行,可以看到消息传送成功,但是没有绑定队列,所以自动扔掉了。 3、在Exchanges中,将liuExchange与liuQueue绑定,通过RoutingKey = "liuRoutingKey"联系到一起。 4、重新运行生产者代码,可以看到下图。5、这时候,可以用消费者消费了。 6、注意:程序代码中,制定交换器的配置,要和已存在的对应交换器配置一致(比如是否持久化等),否则 ...
前言:     MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道。以管道的方式做消息传递。 场景:     1.其实我们在双11的时候,当我们凌晨大量的秒杀和抢购商品,然后去结算的时候,就会发现,界面会提醒我们,让我们稍等,以及一些友好的图片文字提醒。而不是像前几年的时代,动不动就页面卡死,报错等来呈现给用户。     在这业务场景中,我们就可以采用队列的机制来处理,因为同时结算就只能达到这么多。     2.在我们平时的超市中购物也是一样,当我们在结算的时候,并不会一窝蜂一样涌入收银台,而是排队结算。这也是队列机制。 对,就是排队。一个接着一个的处 ...

rabbitmq安装

以window为例: 1、下载Erlang环境(毕竟rabbitmq由该语言开发的),安装。不然运行rabbitmq-server.bat会提示“ERLANG_HOME not set correctly”。 2、访问官网,下载对应安装包,这里使用的是window版本64位。 3、安装完成后,用cmd到rabbitmq/sbin目录下,运行rabbitmqctl status,查看状态。 4、此时可以通过 http://127.0.0.1:15672/ 访问web管理界面了,默认的账户和密码是guest 5、更详细的介绍,参考官网。     遇到问题: 1、第3步如果有以下 ...
为什么要用Message Queue 解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改 ...

日志logback

系列 1、pom添加依赖: <properties> <logback.version>1.0.11</logback.version> <slf4j.api.version>1.7.5</slf4j.api.version> </properties> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactI ...
引用:当Spring事务方法运行时,就产生一个事务上下文,该上下文在本事务执行线程中针对同一个数据源绑定了一个唯一的数据连接(或其衍 生品),所有被该事务上下文传播的方法都共享这个数据连接。这个数据连接从数据源获取及返回给数据源都在Spring掌控之中,不会发生问题。如果在需要 数据连接时,能够获取这个被Spring管控的数据连接,则使用者可以放心使用,无须关注连接释放的问题。     通过调用 jdbcTemplate.getDataSource().getConnection()显式获取一个连接,这个连接不是方法事务上下文线程绑定的连接,所以如果开发者如果没有手工释放这连接(显式调用 C ...

dubbo-SpringContainer

dubbo依赖于spring,因为SpringContainer用spring的ClassPathXmlApplicationContext对象实现,用来启动一个bean容器。 那么,dubbo的启动流程这样的:spring启动过程中,随着Spring在初始化过程中,碰到dubbo命名的标签,如(<dubbo:service>,<dubbo:registry>)等标签,会由DubboNamespaceHandler类处理,具体原理见链接Spring自定义标签(既自己定义一个xml的schema格式文件)。 DubboBeanDefinitionParser代码如下 ...
后端: 1、JeeSite快速开发平台。   前端: 1、metronic
Global site tag (gtag.js) - Google Analytics