![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java后端开发
文章平均质量分 88
byds520
Java技术专家
展开
-
Java发送Post请求
1,发送正常post请求 public String executePost(String url, Map<String, String> params, Map<String, String> headers, String charSet) { CloseableHttpClient httpclient = getHttpClient(); CloseableHttpResponse response = .原创 2020-11-26 00:49:37 · 1925 阅读 · 0 评论 -
PDF生成、合并及压缩优化(Java)
依赖文件:<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version></dependency><dependency> <groupId>com.itextpdf</groupId> <arti原创 2020-10-29 10:10:57 · 2496 阅读 · 2 评论 -
Reids大key优化
现象:1、单个简单的key存储的value很大2、hash, set,zset,list 中存储过多的元素3、一个集群存储了上亿的key问题:1,读写bigkey会导致超时严重,甚至阻塞服务2,大key相关的删除或者自动过期时,会出现qps突降或者突升的情况,极端情况下,会造成主从复制异常,Redis服务阻塞无法响应请求解决方式1,拆分对象:将对象拆分成多个key-value,使用multiGet获取值,这样分拆意义在于分拆操作的压力,将操作压力平摊到多个redis实例,降低原创 2020-10-23 19:19:15 · 181 阅读 · 0 评论 -
Redis缓存击穿、缓存雪崩问题
缓存击穿:(针对某个数据)问题描述:用户请求不存在的key,缓存中不存在,请求会绕过缓存直接查询数据库导致性能下降,如果用户恶意多次请求不存在的key,就会有性能问题,导致后台崩溃。解决方式:1,查询DB的时候使用 互斥锁2,设置默认值,空值如设置成“NULL”。3,使用BloomFilter,用于验证哪些查询有数据,有数据再查询DB,也是为了解决空值问题。缓存雪崩:(针对...原创 2019-10-26 10:53:26 · 157 阅读 · 0 评论 -
Clickhouse优缺点及性能情况
优点:1,为了高效的使用CPU,数据不仅仅按列存储,同时还按向量进行处理;2,数据压缩空间大,减少IO;处理单查询高吞吐量每台服务器每秒最多数十亿行;3,索引非B树结构,不需要满足最左原则;只要过滤条件在索引列中包含即可;即使在使用的数据不在索引中,由于各种并行处理机制ClickHouse全表扫描的速度也很快;4,写入速度非常快,50-200M/s,对于大量的数据更新非常适用。...原创 2019-10-25 13:13:52 · 74317 阅读 · 10 评论 -
Spring Bean的生命周期
<bean id="test" class="..." singleton="false"/>singleton:配置这个bean是否是单例,是默认值true。spring Bean生命周期Bean的作用域可以通过Bean标签的scope属性进行设置,Bean的作用域包括:默认情况下scope="singleton",那么该Bean是单例,任何人获取该Bean实例的都为同一个实例;sc...原创 2018-06-28 11:34:56 · 144 阅读 · 0 评论 -
同步,异步,阻塞,非阻塞的区别
同步异步:指的是需不需要等待返回结果;同步:需要不断轮询数据是否准备好了,或者一直在等待数据准备好异步:发送一个请求就立即返回,然后去干别的事情,当数据准备号了会通知进行相关处理。(同步的实时性比较号,异步的并发性能比较号)阻塞和非阻塞:是指需不需要阻塞线程阻塞:当前线程不执行别的事情,一直再等待非阻塞:当前线程可以干别事情,间隔一段时间检查一下上次的数据有没有准备好;它们修饰的对象不一样,阻塞非...原创 2018-07-06 01:36:44 · 1832 阅读 · 0 评论 -
git使用一些经验技巧
commands usage git checkout –b 新建一个branch来做整理的工作,保持原来的branch作为工作记录 git rebase –i 在新建的branch上,用rebase -i接squash的方法,将所有零碎的commit合成一个 git reset –soft HEAD~1 这一步只将object store还原到working_...原创 2018-10-19 19:01:03 · 226 阅读 · 0 评论 -
nginx try_files的使用及理解
语法: try_files file ... uri 或 try_files file ... = code默认值: 无作用域: server location主要按参数顺序检查文件是否存在,返回第一个找到的文件,文件:$uri 文件夹 :$uri/最后一个参数,用来回退URI且必须存在,否则将会出现内部500错误。一般最后一个参数使用@fallback进行重定向指定代理或文件...原创 2018-11-13 13:00:43 · 18232 阅读 · 0 评论 -
nginx全局变量
Nginx全局变量有:$args: #这个变量等于请求行中的参数,同$query_string $content_length: 请求头中的Content-length字段。 $content_type: 请求头中的Content-Type字段。 $document_root: 当前请求在root指令中指定的值。 $host: 请求主机头字段,否则为服务器名称。 $http_user...原创 2018-11-13 13:04:55 · 925 阅读 · 1 评论 -
nginx配置代理,包含Cookie,模拟登录
加入下面的配置, 主要配置允许跨域访问,以及设置代理Cookie,重点参数:proxy_set_header Cookie / Access-Control-Allow-Origin/ Access-Control-Allow-Credentialslocation / { proxy_pass http://www.baidu.com proxy_set_header C...原创 2018-11-12 10:42:29 · 5136 阅读 · 1 评论 -
使用http-proxy-middleware解决代理中cookie登录问题
const proxy = require('http-proxy-middleware');const app = express();let origin = 'http://www.baidu.com'let host = 'www.baidu.com'const localProxy = proxy({ target: origin, changeOrigin: tr...原创 2019-02-22 10:00:25 · 7239 阅读 · 0 评论 -
HttpServletRequest 获取请求中的相关参数详解
//协议名称: HTTP/1.1System.out.println("rotocol: " + request.getProtocol());//http 或httpsSystem.out.println("Scheme: " + request.getScheme());// 返回服务器地址名称:如果是本地返回localhost或者127.0.0.1System.out...原创 2019-03-20 13:23:59 · 2787 阅读 · 0 评论 -
Spring代理比较—proxy-target-class含义
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/><aop:aspectj-autoproxy proxy-target-class="true"/>设置为true:启用cglib代理,设置为false:启用jdk代理(基于接口)JDK动态代...原创 2018-06-27 23:05:44 · 1051 阅读 · 0 评论 -
Redis数据结构总结
Redis使用简单字符串SDS作为字符串的表示,相对于C语言字符串,SDS具有常数复杂度获取字符串长度,杜绝了缓存区的溢出,减少了修改字符串长度时所需的内存重分配次数,以及二进制安全能存储各种类型的文件,并且还兼容部分C函数。通过为链表设置不同类型的特定函数,Redis链表可以保存各种不同类型的值(void *),除了用作列表键,还在发布与订阅、慢查询、监视器等方面发挥作用。Redis的字典底层使...原创 2018-07-02 18:51:04 · 153 阅读 · 0 评论 -
Redis集群部署
目前 redis的稳定版本是:redis-2.8.19.tar.gz但是redis可以做一个主从复制的设置,见redis.conf的 复制【REPLICATION】 部分注释和设置修改下就可以配置主从复制了,有 slaveof <masterip> <masterport> ,就成了 从服务器 ,没有就是 主服务器。tar xvf redis.tar.gzcd redism...原创 2018-03-15 20:17:50 · 375 阅读 · 0 评论 -
thrift协议接口编译
windows 需要 下载 官网提供的编译工具 http://mirrors.cnnic.cn/apache/thrift/0.9.2/thrift-0.9.2.exe要编译出java 代码需要配置java环境执行 javac -version 能显示版本号然后执行 thrift-0.9.2.exe -r -gen java [thrift文件路径(如 kestrel.thrift)]thrif...原创 2018-03-15 20:18:30 · 516 阅读 · 0 评论 -
ganglia 安装笔记
ganglia 下载:http://sourceforge.net/projects/gangliarddtool 下载: http://oss.oetiker.ch/rrdtool/pub/?M=Dexpat 下载 :http://sourceforge.net/projects/expat/files/?source=navbarconfuse下载 :http://download.savan...原创 2018-03-15 20:18:59 · 402 阅读 · 0 评论 -
drupal安装配置错误
安装 配置错误#########################################################################1、403错误 查看 error log 发现:AH01630: client denied by server configuration: F:/phpweb/drupal-------------------------------...原创 2018-03-15 20:20:14 · 610 阅读 · 0 评论 -
负载均衡总结
中小型 如:日PV小于1000万,Nginx即可机器多,DNS轮询大型网站或服务重要,服务器多,用LVS————————————————————使用硬件进行负载均衡(机器多):f5、array(特点:贵,维护麻烦)使用软件进行负载均衡(开源免费):Nginx、LVS、HAProxy————————————————————流行架构前端:Nginx/HAProxy + Keepalived后端:MyS...原创 2018-03-15 20:20:59 · 977 阅读 · 0 评论 -
Java中高级面试题收藏
Java高级工程师—面试(1)Java高级工程师—面试(2)Java高级工程师—面试(3)BAT/网易等面试心得阿里历年面试题Java中高级面试题数据库性能优化原创 2018-03-31 18:11:04 · 1763 阅读 · 0 评论 -
Eclipse启动时间插件(解决不能弹出问题)
New->Plugin in Project输入项目名称: 如:com.ds.showtime 其他默认, 不勾选 Create a plugin-in using one of the templates新建 plugin.xml<?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><pl..原创 2018-04-08 22:19:17 · 815 阅读 · 0 评论 -
构建大型网站学习笔记
参考:构建需求响应式亿级商品详情页原子数据存储数据异构集群数据同步MQ商品信息聚合集群\商品介绍聚合集群\其他Redis集群多维度划分基本信息:标题/图片/颜色尺码/规格参数/特殊属性/扩展属性商品介绍:商家模板/商品介绍非商品维度:分类信息/商家信息/店铺信息/品牌信息其他维度:价格/促销/配送至/广告词拆分系统多个子系统,底层存储的是原子数据,上层子系统按照不同维度对外提供服务,如商品详情/商...原创 2018-04-09 14:13:07 · 330 阅读 · 0 评论 -
Mybatis学习笔记(一)
MyBatis基本构成SqlSessionFactoryBuilder:根据配置信息或者代码来生成工厂接口SqlSessionFactory:工厂接口,负责生成SqlSessionSqlSession:是一个既可以发送SQL去执行并返回结果,也可以获取MAPPER的接口 有两个实现:DefaultSqlSession和SqlSessionManagerSQL Mapper:由Java接口和XML构...原创 2018-04-09 19:14:34 · 183 阅读 · 0 评论 -
Mybatis学习笔记(二)
映射器主要元素select/insert/update/deleteparameterMap/resultMapsql/cache/cache-refselect元素配置 useCache,flushCache,fetchSize等,还有result相关配置,如resultType,resultMap等insert元素配置 keyPropperty,keyColumn,useGeneratedKe...原创 2018-04-10 18:10:22 · 170 阅读 · 0 评论 -
MyBatis的解析和运行原理---学习笔记(三)
官方文档运行分两大部分1.读取配置文件,缓存到Configuration对象中,用来创建SqlSessionFactory2.SqlSession执行过程动态代理:JDK反射机制和CGLIB代理。用于为Mapper产生代理类,执行相关方法。反射调用的最大好处是配置性大大提高,降低模块之间耦合JDK动态代理必须提供接口代理类要求实现InvocationHandler接口/* * Proxy.new...原创 2018-04-11 13:40:16 · 255 阅读 · 0 评论 -
IOC,AOP,Spring事务,SpringMvc基础知识理解----学习笔记(四)
Spring IOCIOC理念 (基于反射技术)不采用new方法,而是使用一种描述方式,每个U盘都有自己的一段描述,通过接口我们可以读入这些信息,根据这些信息可以注入对应的U盘驱动.这样我们在维护源码的时候只需要去描述这些信息,并且提供服务即可,而不需要去修改源码了.Spring中注入资源往往是通过描述(注解或者XML描述)来实现的,包括构造方法注入,setter注入,接口注入<bean id="...原创 2018-04-11 19:06:45 · 141 阅读 · 0 评论 -
Idea开启Run DashBoard配置
找到.idea文件下的workspace.xml,并找到RunDashboard<component name="RunDashboard"> <option name="ruleStates"> <list> <RuleState> <option name="name" value原创 2018-04-24 22:00:14 · 26764 阅读 · 11 评论 -
MyBatis中jdbcType与javaType对应表
JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIMAL java.math.BigDecimal B...原创 2018-05-05 22:26:01 · 1946 阅读 · 0 评论 -
maven 打包方法总结
1、maven-assembly-plugin 打包所有依赖 <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef...原创 2018-03-15 20:17:14 · 497 阅读 · 0 评论