★ 后端技术
文章平均质量分 78
后端
向上爬的小蜗牛
一切都是最好的安排
展开
-
618京东到家APP-门详页反爬实战
在这次反爬经历中也有很多需要反思总结和提高的地方,下面列了几点给大家参考,希望本篇文章对大家有所帮助。1.要尽量防患于未然,核心系统接口提前做好反爬的一些基础工作,避免被临时杀个措手不及。2.涉及多网关的时候,要梳理爬虫的来源及特征,借助各物理网关的反爬能力,针对性的处理。3.登录态开启需要提前测试确定影响,各端是否支持,用户体验是否受损,其它反爬措施同理。4.微信小程序不能开启强登陆,会被认为违规进行处罚。原创 2023-10-26 14:31:24 · 967 阅读 · 0 评论 -
HttpMessageConverter
HttpMessageConverter中看懂不同参数解析器所支持的content-Type原创 2023-03-26 20:59:43 · 528 阅读 · 0 评论 -
【Maven】——Jar包冲突解决方案调研
一.jar包冲突的本质Java 应用程序因某种因素,加载不到正确的类而导致其行为跟预期不一致。二. jar包冲突的两种情况第一类jar包冲突问题(同一jar包版本不同)应用程序依赖的同一个 Jar 包出现了多个不同版本,并选择了错误的版本而导致JVM加载不到需要的类或加载了错误版本的类。 出现该问题的三个必要条件:依赖树中出现了同一个jar包的多个版本。 该jar包的多...............原创 2019-09-12 10:43:12 · 1150 阅读 · 1 评论 -
加密和验签
区分签名与加密的概念原创 2022-08-09 14:04:12 · 2808 阅读 · 0 评论 -
Java程序启动后首次访问很慢--JVM预热
目录导读为什么刚启动发起的请求会有损?如何预热小结 在项目部署或者重启后,机器挂到线上直接承接线上流量,会出现请求有损或者请求性能极差的情况,表现形式:max高,请求失败等,几次请求过后,线上各项指标恢复正常。 那么为什么会造成这样的情况?以及如何解决呢? 当应用的第一个请求到来,会触发逻辑相关类的第一次加载,此过程会有一定的耗时,会影响第一次调用的实时响应。这主要是因为JVM的懒加载及JIT机制 降低对用户请求的损耗原创 2022-06-29 17:04:56 · 2193 阅读 · 0 评论 -
玩转Stream流
“引言部分。Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregateoperation),或者大批量数据操作 (bulk data operation)。Stream..原创 2021-06-17 14:17:05 · 308 阅读 · 3 评论 -
一行错误代码带来的影响:new Long[activityPageRequest.getStoreId()]
问题描述一次上线之后从JVM上观察YGC变频繁,从1次/5min-> 3次/1min 出现FGC3.从性能来看左侧是问题,右侧是正常,各项指标异常,MAX能到2s,可用率不足100% 背景描述:两个需求同时上线,涉及两个接口,部署在同一应用A. (有问题代码)B. (正常)排查步骤:如何确定呢?通过nginx切流量,来移除变量观察监控定位到是店内活动页造成的问题通过loca...原创 2021-04-20 11:22:46 · 323 阅读 · 0 评论 -
new HashMap(list.size())指定size就能完全避免扩容带来的额外开销了吗?
public static void longLongAGo() { int count = 1000000; System.out.println("---------------- 不设置hashMap初始容量 ------------"); long start = System.currentTimeMillis(); HashMap<Integer, Object> map = new HashMap<>(); for (int .原创 2021-04-20 11:15:22 · 703 阅读 · 1 评论 -
Map的key,value是否可以为null?
public static void main(String[] args) { Map<String,Boolean> searcher = new HashMap<>(); searcher.put("one",null); searcher.put("two",null); searcher.put("three",null); System.out.println(MapUtils.is...原创 2020-12-11 18:24:43 · 5652 阅读 · 0 评论 -
类的私有成员变量,若是多例则是线程私有,若单例则全局共享
结论:类的私有成员变量,若是多例则是线程私有,若单例则全局共享,不要被私有给迷惑住了问题背景: 一个楼层资源是否展示是通过flag来控制的,一次请求中可以有n个楼层, 那么每个楼层开启一个线程去并行处理,理想情况下是每个线程用自己的flag部分true,部分false,结果问题是所有线程的flag值都一样,要么都true,要么都false问题原因: @Service默认是单例,也就是全局唯一bean解决方案: 方案1. 把flag做成局部变量 ...原创 2020-12-09 16:20:48 · 685 阅读 · 1 评论 -
String长度上限
String长度上限是多少?前言话说Java中String是有长度限制的,听到这里很多人不禁要问,String还有长度限制?是的有,而且在JVM编译中还有规范,,而且在之前开发的中也真实地遇到过这个String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的。String首先要知道String的长度限制我们就需要知道String是怎么存储字符串的,String其实是使用的一个char类型的数组来存储字原创 2020-12-03 09:45:08 · 1612 阅读 · 1 评论 -
com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError)
问题:实体类双向映射进行Json序列化时出现无限循环的异常 背景:事情很简单,就是日志打印的时候,一条日志的打印没有任何毛病,这行代码没问题,但由于数据可变,某些情况下会报异常com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) 影响范围:看你这条日志打在哪了,主要看try catch的作用范围,打在功能主流程中,有try catch的情况下,整个...原创 2020-09-05 16:19:34 · 3553 阅读 · 1 评论 -
架构概论
顶层涉及按需、预期未来、规划企业架构业务全局触发,制定可落地的架构方案技术选型,难题解决规划方案与代码,广度与深度技术+管理(人,资源,技术)缓冲 Buffer缓存 Cache复用 Pool分治 Sharding亲密(粘性) sticky权衡 Balance or trade-off拆解分层: 流程 服务(偏业务) 功能(比业务更细)DB/Redis/Tommcat按X轴(可用性):...原创 2020-08-09 10:52:54 · 259 阅读 · 1 评论 -
Linux(CentOS)如何上外网
目录在上一篇博客的基础上:打开编辑配置文件同样重载配置文件,便可测试是否可以上网,小结:在上一篇博客的基础上: Linux(CentOS)配置静态IP/动态IP打开编辑配置文件输入:vi /etc/sysconfig/network-scripts/ifcfg-ens33同样重载配置文件, 重启服务:service network re...原创 2019-07-17 20:59:10 · 4209 阅读 · 1 评论 -
Linux(CentOS)检查是否可以上网
外网不通可能会造成很多种错误 比如下面这个错误[root@localhost ~]# yum install gcc已加载插件:fastestmirrorCould not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock...原创 2019-02-09 17:15:10 · 11071 阅读 · 1 评论 -
Linux(CentOS)配置静态IP/动态IP
目录一种方式是设置动态ip:第二种方法:设置静态ip(这个方法有点问题,没有做成功) 用xshell连接VMware中的Linux:一种方式是设置动态ip:重启服务:service network restart 第二种方法:设置静态ip要想连接上xshell,需要配置IP,将Linux中的IP和虚拟机上的IP在同一个网段中。1...原创 2019-01-31 20:02:59 · 838 阅读 · 1 评论 -
Linux(CentOS)安装jdk——source命令找不到
问题原因:source所要执行的文件内容有错误,例如:执行source /etc/profile报错未找到命令, 即profile文件中内容有错原创 2019-01-30 11:02:53 · 6345 阅读 · 1 评论 -
Linux(CentOS)——Zookeeper开机自启动/服务化
目录把zookeeper做成服务1、进入到/etc/rc.d/init.d目录下,新建一个zookeeper脚本2、给脚本添加执行权限3、使用命令vim zookeeper进行编辑4、运行并查看所配zookeeper文件是否生效5、添加到开机自启6、重启验证把zookeeper做成服务1、进入到/etc/rc.d/init.d目录下,新建一个zookeep...原创 2019-01-30 09:31:48 · 489 阅读 · 5 评论 -
Linux(Centos)——Zookeeper【注册中心】
目录安装配置单个zookeeper此刻可能仍旧不能正常使用安装配置单个zookeeper安装jdk:博客:Linux(centos)安装Jdk并配置环境变量 上传zookeeper-3.4.6.tar.gz到linux某目录中解压, 在解压后的文件zookeeper-3.4.6文件夹里创建data(mkdir data) 然后进入到 conf (cd conf) 改名:zo...原创 2019-01-29 21:29:30 · 201 阅读 · 2 评论 -
Linux(centos)安装Jdk并配置环境变量
目录 CentOS安装Jdk并配置环境变量环境目标执行步骤1、检查和删除系统预装jdk(若无可跳过)2、上传jdk1.7.0_55.tar.gz并解压缩到/root3、配置环境变量4、检查jdk是否生效 5、【问题解决】-bash: /root/jdk1.7.0_55/bin/java: /lib/ld-linux.so.2: bad ELF interpr...原创 2019-01-27 15:35:39 · 406 阅读 · 1 评论 -
Linux----dos界面 | 图形化界面切换
目录你的系统不一定能切换图形化界面,为什么呢?下载CentOS时,有很多可选版本,下面对初学者做下简单介绍:什么时候会不能切换?看效果:dos界面切换后图形化界面切换方式多种系统默认以某种方式启动你的系统不一定能切换图形化界面,为什么呢?这跟你所下载的centos版本类型有关系,那么就很有必要了解下各类型下载CentOS时,有很多可选版本,下面对初学者做下...原创 2019-01-27 15:08:20 · 1667 阅读 · 1 评论 -
Linux常用命令速查宝典《二》
目录Linux压缩文件的操作命令打包并压缩文件解压权限修改,查看(ll)Linux压缩文件的操作命令 打包并压缩文件 命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件 Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的,而一般情况下打包和压缩是一起进行的额,打包并压缩后的文件的后缀名一般未.tar.gz 其中 z...原创 2019-01-27 14:53:01 · 212 阅读 · 0 评论 -
Linux常用命令速查宝典《一》
目录LinuxLinux 目录进入Linux目录增删改查文件的操作命令(增删改查)其他命令LinuxLinux 目录进入pwd 显示当前目录的名字 ls 查看当前目录下所有文件夹 cd usr 切换到该目录下usr目录 cd ../ 切换到上一级目录 cd ../user 返回上一级目录再进入下一级user内 cd /etc 根目录下的etc路径 cd ...原创 2019-01-27 14:43:36 · 238 阅读 · 0 评论 -
Linux安装jdk后报错 -bash: /usr/local/java/jdk1.7.0_55/bin/java: /lib/ld-linux.so.2: bad ELF interpreter
报错:原因: /lib/ld-linux.so.2 目录不存在解决: 运行命令:yum install glibc.i686结果:原创 2019-01-27 14:34:58 · 915 阅读 · 1 评论 -
用xshell连接VMware中的Linux
本文部分借鉴于网络如有侵权请联系小编目录【前言】【步骤】 一、安装VMware二、安装linux三、配置 一种方式是设置动态ip:第二种方法:设置静态ip四、下载xshell连接Linux完美结束了【前言】 为什么要连接xshell呢,因为在虚拟机上总是会和主机切换鼠标,而且也不能粘贴复制,所以用xshell连接就会比较方便。Xs...转载 2019-01-24 10:36:38 · 595 阅读 · 1 评论 -
Mybatis篇三:XML配置文件解析(下)
目录5、objectFactory(对象工厂)6、plugins(插件)7、environments(环境)transactionManager(事务管理器)dataSource(数据源)UNPOOLEDPOOLEDJNDI8、databaseldProvider(数据库厂商标识)9、mappers(映射器)总结:5、objectFactory(...原创 2019-06-15 09:30:00 · 303 阅读 · 1 评论 -
Mybatis篇二:MyBatis实战
MyBatis实战光看不练容易迷糊,先写个实例试试,在回去读文档,或许体会会多一些。1、实例准备jar包:mybatis-3.4.5.jar(mybatis)mysql-connector-java-5.1.21.jar(数据库驱动)junit-4.4.jar(测试,不想用这个junit,用main方法测试也行)项目结构 ...原创 2019-06-15 09:08:35 · 530 阅读 · 1 评论 -
Mybatis篇三:XML配置文件解析(上)
配置顶层结构目录 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:注意:这些元素在mybatis的xml配置文件中,顺序是不可以颠倒的,否则无法构建SqlSessionFactoryBuilder实例,也就无法构建SqlSessionFactory工厂实例,更无法构建SqlSession操作数据库命令SQL对象实例。pro...原创 2019-06-15 09:18:54 · 1112 阅读 · 1 评论 -
Mybatis篇一:Mybatis为什么出现?为什么不是直接使用jdbc?
目录什么是mybatis为什么会出现mybatis、hibernate等来代替而不是直接使用JDBC?MyBatis 的真正强大在于它的映射语句结果映射小结什么是mybatisMyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以...原创 2019-06-05 11:51:36 · 3985 阅读 · 0 评论 -
关于jsp文件在页面上显示乱码的问题
问题是这样的:这个情况的原因就是:没有在模板的jsp文件里面引入编码格式的头。具体如下:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>加上这个,乱码就不见了。...原创 2019-01-13 20:16:52 · 195 阅读 · 0 评论 -
struts2
目录 struts2的执行流程struts2的原理struts2中的拦截器,你都用它干什么?使用场景struts2的执行流程 拦截,判断,寻找,执行,响应struts2的原理浏览器发送请求,经过一系列的过滤器后,到达核心过滤器(StrutsPrepareAndExcuteFilter) StrutsPrepareAndExcuteFilter会通过act...原创 2019-01-17 08:44:30 · 179 阅读 · 1 评论 -
Spring的理解
目录 SpringSpring带来了什么?没有Spring会怎么样?详细介绍SpringAOP是什么?你都拿它做什么?Spring事务的隔离级别SpringSpring带来了什么?IOC:把我们的类上交,由Spring来进行统一的管理和配置,在需要使用的地方注入。好处是减少了各个类之间的相互依赖,依赖控制交给Spring管理。 AOP 封装了jdk和cgl...原创 2019-01-17 08:42:24 · 324 阅读 · 1 评论 -
关于hibernate的理解
目录 ORMmybatis和hibernate的不同?ORMORM是为了解决对象(面向对象的语言)和关系(关系型数据库)不匹配的现象的技术mybatis和hibernate的不同?相同:都是java中的orm框架,都屏蔽了jdbc.api的底层访问细节,且提供了将结果集自动封装成为实体对象或实体对象的集合的功能。 不同:mybatis(能直接控制sql)可以处理复杂语句...原创 2019-01-17 08:35:59 · 234 阅读 · 1 评论 -
Linux(CentOS)——nginx安装并配置及应用场景
目录nginxnginx应用场景nginx安装访问nginx首页完美结束了nginx可以支持5万并发连链接 C语言开发的nginx应用场景Http服务器 nginx是一个http服务器可以独立提供http服务器,可以做网页静态服务器 虚拟主机 可以实现在一台服务器上虚拟出多个网站,例如个人网站使用的虚拟主机 假如想做一个个人网站,需要域名,公网ip...原创 2019-01-20 21:09:39 · 241 阅读 · 0 评论 -
Jedis——Redis在java中的使用(集群版)
目录 环境集群版------Java中通过JedisCluster对象使用Redis服务更优雅的方式继续优化 环境 虚拟机ip地址:*.*.*.*例如:192.168.25.128,加上端口号可在一台虚拟机中安装多台Redis服务也可在多台虚拟机中分别安装Redis服务集群版------Java中通过JedisCluster对象使用Redis服务 ...原创 2019-02-10 17:16:55 · 481 阅读 · 2 评论 -
Jedis——Redis在java中的使用(单机版)
目录Redis简介Java中使用Redis服务Redis简介 1、概念:Redis是开源免费,高性能的key-value数据库2、特点/优势:Redis支持数据持久化:将内存中的数据保存在磁盘中Redis支持key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储Redis支持master-slave模式的数据库备份性...原创 2019-02-10 11:56:49 · 337 阅读 · 1 评论 -
Linux(CentOS)——Redis安装配置
目录环境目标执行步骤1、上传压缩包并放在root目录下并解压(如下图)2、进入解压后的redis-3.0.0安装包目录下3、如果存在则直接进行make编译4、编译完成后进行安装,这里安装到目录/usr/local下5、启动redis,两种启动方式6、小结:即两种启动方式都可以成功环境 CentOS 由于re...原创 2019-02-09 21:41:09 · 265 阅读 · 1 评论 -
Redis的使用
Redis的基础 5种数据类型数据类型 描述 string 字符串 set 集合 list 列表 hash 字典 sorted set 有序集合 实例1:value为string类型(int特殊)放:set str1 abc 取:get str1 查看当前redis种所有的key:keys * incr k...原创 2019-02-02 20:03:47 · 212 阅读 · 0 评论 -
Mycat分布式数据库中间件 what why how
目录Whatis Mycat?1.概念?2.同类产品?3.解决了什么问题?4.如何解决的?拆分5.拆分策略6.拆分带来的问题及如何解决How to use Mycat?mycat中的核心概念及配置文件分析1.schema.xml2.rule.xml3.server.xmlDemo小结Whatis Mycat?...原创 2019-06-27 14:47:13 · 286 阅读 · 3 评论 -
Spring Cloud hystrix——服务熔断——what、why、how
目录hystrix断路器是什么?为什么hystrix会出现?hystrix能干吗?1. 服务熔断:2. 服务降级:小结:服务降级和服务熔断的区别3. 服务限流接近实时的监控hystrixDashboard服务监控什么是Hystrix Dashboard?怎么看图?官网资料:https://github.com/Netflix/Hystrix/wiki...原创 2019-05-28 11:24:03 · 236 阅读 · 1 评论