自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

喜欢新技术的彭英峻

不积跬步无以至千里,不积小流无以成江海。

  • 博客(43)
  • 收藏
  • 关注

原创 GraphQL Java - Instrumentation

通过实现Instrumentation接口,可以观察一个query的执行,或修改运行期的行为。最常见的用途是进行性能监控,和自定义日志记录,但它也可以用于完成其他任务。创建GraphQL对象时,可以绑定相关的Instrumentation实现。

2022-05-15 12:22:49 614

原创 GraphQL Java - Batching

使用GraphQL的过程中,可能需要在一个图数据上做多次查询。使用原始的数据加载方式,很容易产生性能问题。通过使用java-dataloader,可以结合缓存(Cache)和批处理(Batching)的方式,在图形数据上发起批量请求。如果dataloader已经获取过相关的数据,那么它会缓存数据的值,然后直接返回给调用方(无需重复发起请求)。

2022-05-15 12:22:12 379

原创 GraphQL Java - Scalars

在GraphQL类型系统中,类型树的叶子节点成为Scalar。一旦访问到了Scalar类型的数据,就无法在该类型基础上进一步访问其下的类型层次结构。Scalar类型意味着该类型的值无法再细分。

2022-05-15 12:21:29 408

原创 GraphQL Java - Data Mapping

GraphQL的核心思想,就是声明一种类型schema,并将它映射到运行时产生的数据上。设计这些类型时,要充分考虑到类型与相应数据的映射方式。

2022-05-15 12:20:50 327

原创 GraphQL Java - Execution

在一个schema上执行查询,需要首先创建一个GraphQL对象,然后调用该对象的execute()方法GraphQL在执行结束后返回一个ExecutionResult对象,其中包含查询的数据(data字段)或错误信息(errors字段)。

2022-05-15 12:20:02 453

原创 GraphQL Java - Data Fetching

每个graphql中定义的字段都有一个相关联的graphql.schema.DataFetcher。有些字段使用自定义的data fetcher代码,用于访问数据库并从数据库中获取字段信息。而大多数字段仅使用字段名称,在内存中的Map对象或或普通的Java对象(POJO)中获取数据。

2022-05-15 12:19:11 407

原创 GraphQL JAVA - Schema

GraphQL API具有一个Schema,该Schema定义了可以Query(查询)或Mutation(变更)的每个字段以及这些字段的类型。

2022-05-15 12:18:16 642

原创 GraphQL JAVA - 入门指南

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。

2022-05-15 11:57:09 338

原创 【晨星项目搭建问题】配置上传文件大小spring.http.multipart.max-file-size报错问题

搭建项目发现yml配置文件,上传文件大小配置报错。最后发现是因为我更换了springboot版本导致的。总结springboot各版本的配置:在springboot1.3版本中:multipart.maxFileSize在springboot1.4与springboot1.5版本中:spring.http.multipart.max-file-size在springboot2.0版本中:spring.servlet.multipart.max-file-size..

2021-04-18 13:08:52 450

原创 利用idea实现本地调试生产环境代码

在我们日常开发中总会出现,明明本地好使,为什么部署到测试或者生产环境就出现问题这种情况。其实我们可以利用idea提供的本地调试功能,在本地idea上就能调试本地代码,看看到底是是因为什么错误。废话不多说,直接进入主题:1、前置条件,先去目标服务器查一下开放的调试端口是什么,查看命令如下netstat -nupl (UDP类型的端口)netstat -ntpl (TCP类型的端口)a 表示所有n表示不查询dnst表示tcp协议u表示udp协议p表示查询占用的程序l表

2020-11-27 10:42:21 2802

转载 通过jstack与jmap分析一次线上故障

一、发现问题下面是线上机器的cpu使用率,可以看到从4月8日开始,随着时间cpu使用率在逐步增高,最终使用率达到100%导致线上服务不可用,后面重启了机器后恢复。二、排查思路简单分析下可能出问题的地方,分为5个方向:1.系统本身代码问题2.内部下游系统的问题导致的雪崩效应3.上游系统调用量突增4.http请求第三方的问题5.机器本身的问题三、开始排查1.查看日志,没有发现集中的错误日志,初步排除代码逻辑处理错误。2.首先联系了内部下游系统观察了他们的监控,发现

2020-11-26 15:27:21 139

原创 Guava CacheBuilder使用说明

CacheBuilder是Guava用于创建LoadingCache、Cache实例的构建类。可以使用下面的方法来创建一个Cache实例。LoadingCache<String, JsonObject> cacheDemo = CacheBuilder.newBuilder().concurrencyLevel(5).expireAfterAccess(30, TimeUnit.MINUTES).initialCapacity(100).maximumSize(5000) .rec

2020-11-26 12:06:47 4047

转载 白话解析:一致性哈希算法 consistent hashing

在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分摊缓存的压力。也就是说,我们希望每台服务器能够缓存1万张左右的图片,那么,我们应该怎样做呢?如果我们没有任何规

2020-11-26 10:25:00 82

转载 Spring循环依赖及解决方式

1. 什么是循环依赖?循环依赖其实就是循环引用,也就是两个或者两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图:注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。Spring中循环依赖场景有:(1)构造器的循环依赖(2)field属性的循环依赖其中,构造器的循环依赖问题无法解决,只能拋出BeanCurrentlyInCreationException异常,在解决属性循环依赖时,spri..

2020-11-19 16:04:32 102

原创 使用lambda的parallelStream().forEach处理大的数据的时候,发现会有数据丢失或者下标越界问题

今天再处理kafka日志消息时,按批次每次处理10000条,最后发现每批次处理结果都会比实际数量少一些,最后对代码进行跟踪发现问题,记录下。我们都知道parallelStream使用的时ForkJobTask。而Fork/Join框架是通过把一个大的任务不断的fork成许多子任务,然后多线程执行这些子任务,最后再join这些子任务得到最终结果数据。也就是说,如果你有一个大的数据集要处理,它会将你的数据集切分成若干个小的集合,处理之后再进行聚合,但是我的数据集是ArrayList类型,他的add方法不

2020-07-22 14:57:51 3982

原创 kafka消费者如何批量消费消息

整理kafka消费者批量消费消息开发笔记。kafka使用的是2.1.11.RELEASE版本<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.1.11.RELEASE</version></dependency>.

2020-07-22 14:45:04 7222 4

原创 Elasticsearch批量写入,存在就更新Document记录的某个值进行累加,不存在新生成Document记录

最近再做kafka日志消息解析后写入Es的需求,遇到一个特殊需求,需要按照sku维度对日志进行处理,以sku为唯一键,Es中存在则更新Document记录中的热度值(新热度值=原记录热度值+预更新的热度值),不存在则直接新增。下面为批量处理代码: public void upsertHotValue(List<GoodsHotValueType> list){ if (CollectionUtils.isEmpty(list)) { ret

2020-07-22 14:27:15 2776

原创 当我忘记我本地的mysql密码,我的一顿操作!!!

有一天我打开了我的navicat,想看一下本地mysql的配置信息,突然发现我居然忘记了自己密码设置的是什么,Cao!直接进入主题,开始猛如虎的操作!1、打开命令窗口(cmd知道吧?),输入命令:net stop mysql,停止Mysql服务(你也可以通过我的电脑右键-》属性-》找到对应的服务通过菜单关闭)2、开启跳过密码验证登陆的Mysql服务,输入命令:mysql --console --skip-grant --shared-memory,输入这玩意之后你就可以不用密码登陆了哈3、再

2020-05-21 17:51:09 169

原创 Spring为啥默认把bean设计成单例的?

Bean简介: 在Spring中,那些组成你应用程序的主体(backbone)及由SpringIoC容器所管理的对象,被称之为bean。简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。Bean的作用域 创建一个bea...

2020-04-17 18:26:29 238

原创 SpringBoot中的WebMvcConfigurer学习

一、自我介绍WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xnl配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer接...

2020-04-03 11:33:25 1179

原创 为什么Map桶中个数超过8才转为红黑树?

应该不少人看到这个问题都会一面懵逼。因为,大部分的文章都是分析链表是怎么转换成红黑树的,但是并没有说明为什么当链表长度为8的时候才做转换动作。笔者第一反应也是一样,只能初略的猜测是因为时间和空间的权衡。要弄明白这个问题,我们首先要明白为什么要转换,这个问题比较简单,因为Map中桶的元素初始化是链表保存的,其查找性能是O(n),而树结构能将查找性能提升到O(log(n))。当链表长度很小的时候,...

2020-03-16 14:03:30 241

原创 RabbitMQ配置参数说明

Spring Boot 整合RabbitMQ环境下的配置参数解释,通过官网文档和网上其他朋友一些文章参考归纳整理而得,有错误之处还请指正~★RabbitMQ★Version: 1.5.13.RELEASE★属性文件:org.springframework.boot.autoconfigure.amqp.RabbitProperties# basespring.rabbitmq.ho...

2020-02-21 17:43:37 1707

原创 一个请求的使命(当一个用户在浏览器里输入www.baidu.com后)

当一个用户在浏览器里输入www.baidu.com后,页面显示内容前,都经历些什么了呢?1、首先它会请求DNS把这个域名解析成对应的IP地址,然后根据这个IP地址找到对应的服务器。这里大家可能会有一个问题,DNS是什么呢?DNS是Domain Name System缩写,Domain Name被译为域名,所以DNS就是域名系统,它可以理解为是一种【分布式网络目录服务】。主要用于域名和I...

2020-02-09 16:16:45 329

原创 修改远程git分支名字

开发中想要修改远程git分支的名字,怎么办?三个命令解决:git branch -m old_branch new_branch # Rename branch locally git push origin :old_branch # Delete the old branch git push --set-upstream origin new_branch # Push the...

2019-12-05 14:34:24 378

原创 Win10系统安装mysql 8.0实践记录

一、官网下载zip压缩包https://dev.mysql.com/downloads/mysql/二、下载后解压,结构如下我的路径为:C:\DevelopmentTool\mysql-8.0.17-winx64三、在mysql-8.0.17-winx64文件夹下新建my.ini文件和data文件夹,内容如下[mysqld]# 设置3306端口port=3306#...

2019-09-27 18:21:01 155

原创 -------------------------从今天开始把学习的内容分享上来-----------------------

------------------------------------------------------------------------------------------------------------------------------------很久没有写总结的东西了,有些东西也是学完长时间不用就会忘记,准备以后把自己学习的东西,通过博客和公众号的形式记录下来,跟大家分...

2019-09-05 09:13:30 150

原创 最近自己写了个web的彩票小程序,有时间整理下用到的知识点。(底部附有系统地址)

系统地址:http://www.pandaman.xin/user/xingyuncai

2019-09-05 09:03:58 416

转载 深入理解Spring事务原理【为何有了数据库事务还要使用Spring事务】

一、事务的基本原理Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获取连接 Connection con = DriverManager.getConnection() 开启事务con.setAutoCommit(true/false); 执行C...

2019-08-05 18:48:44 1163

原创 IDEA的Spring Boot 出现 “Whitelabel Error Page“ 导致的原因总结

使用的IDEA新建了个Maven子父模块的项目,弄完之后启动web模块,页面出现Whitelabel Error Page路径和项目结构全部正确,最后通过以下方式解决问题:然后重新启动,访问正常!...

2019-06-27 19:20:52 14100 3

原创 java简史

1991年4月        james Gosling博士领导的Green project绿色计划项目启动 也就是java的前身oak1995年5月23   oak正式更名为java,原因是因为注册的时候名字被占用1996年1月23   JDK1.0 横空出世1997年2月19   JDK1.1 更新重大功能,例如内部类、反射等。1998年12月4   JDK1.2 确定了java的三个...

2018-12-11 16:13:11 281

原创 idea操作git远程回滚到某个提交节点或某个版本

场景:同个项目同时开发两个版本分支,不小心将a版本代码提交到b版本,想要将代码会滚到提交前。通过在网上搜索答案和实践,总结出以下操作步骤:1. 项目右键后,然后在“Show History”中找到当前版本(暂时取名newVersion)和想要回退到的版本(暂时取名oldVersion)  2. 选择oldVersion版本右键点击“Copy Revision Number”复制ol...

2018-12-04 14:47:28 41254 23

原创 static静态方法使用yml配置文件的值

java正常获取yml配置文件的值,可以使用@value注解获取,如下:但是我们经常会写util等类,里面的方法都是静态static的,这种情况下我们就没法像普通方法一样获取到yml的配置了,此时我们应该怎么获取呢?1.在yml里面配置想要参数2.新建一个ConfigKeytUtil来获取配置的名字package com.meinong.common.util;imp...

2018-11-20 18:42:54 8889 11

原创 【晨星项目搭建问题】There was an unexpected error (type=Not Found, status=404). /WEB-INF/pages/frontpages/inde

Idea在启动SpringBoot时访问Jsp页面报错:There was an unexpected error (type=Not Found, status=404). /WEB-INF/page//XX.jsp结果找了一圈终于找到了:如果SpringBoot在子模块,直接main启动子模块会在C:\Users\xxx\AppData\Local\Temp这个目录下,会生成tom...

2018-10-26 14:20:17 2438 6

原创 spring定时任务详解(@Scheduled注解)

在springMVC里使用spring的定时任务非常的简单,如下:(一)在xml里加入task的命名空间[html] view plain copyxmlns:task="http://www.springframework.org/schema/task"   http://www.springframework.org/schema/

2017-09-01 10:06:21 265

原创 史上最全最强SpringMVC详细示例实战教程

一、SpringMVC基础入门,创建一个HelloWorld程序1.首先,导入SpringMVC需要的jar包。2.添加Web.xml配置文件中关于SpringMVC的配置 servlet> servlet-name>springmvcservlet-name> servlet-class>org.springframewor

2017-07-06 14:59:56 1806 4

原创 Bootstrap一个静态的模态窗口实例,实现弹出信息窗口(也可做图片大图弹出)

实例h2>创建模态框(Modal)h2> 按钮触发模态框 -->buttonclass="btn btn-primary btn-lg"data-toggle="modal"data-target="#myModal">开始演示模态框button> 模态框(Modal) -->divclass="modal fade"id="myModal"

2017-05-17 10:34:45 4316

转载 在mac上搭建python环境

首先尊重原创:http://blog.justbilt.com/2014/07/02/setup_python_on_mac/在mac上搭建python环境这两天重新搞了下Python的环境,发现好多地方还是容易忘记,因此有了这篇文章,以后方便查看。一. 安装pythonmac系统其实自带了一个python的执行执行环境,用来运行python还行,但是开

2017-03-22 18:04:01 304

原创 我的北漂搬家经历

2014年8月8日一下哈尔滨到北京的火车天气炎热的不行,感觉进了蒸炉。和几个一起的兄弟加入了北漂一族。        东亚三环小区,一个30多平米的一居室。是我们四个人的第一个住所。因为一起来的其中一个兄弟在北京有个认识的朋友,帮着我们找到了这个房子。其实对于it行业来说在丰台区这边的公司并不多,因为刚来人生地不熟,而且这个小区出门就是公益西桥地铁站,所以就凑合的住了下来。房子大体是这样的

2017-03-22 10:07:41 1415

原创 教你如何在csdn里上传和引用图片csdn的图片(/斜眼笑)

最近看到很多人,对于图片的引用不是很熟悉,经常看到“此图片仅限于**用户或旗下**交流使用” ,下面教你如何在csdn里上传和引用图片(不一定要传入相册里面),首先进入到自己的csdn博客里面,点击“写文章”(当然直接点击“【发博】”也可以)。看到“图片上传”了吗?然后点击“浏览”,上传完毕以后,这时在浏览的下面是不是有一个属性地址出现了---当然上传失败的时候不会有,复制该地址,填写一些必填项,

2017-03-21 18:03:08 1283

原创 项目启动报错 java.lang.ClassNotFoundException: org. springframework.web.util.IntrospectorC

如果你是maven项目。tomcat在发布项目的时候没有同时发布maven依赖所添加的jar包。你需要设置一下eclipse。项目 —> 属性 -> Deployment Assembly -> Add -> Java Build Path Entries -> 选择Maven Dependencies -> Finish -> OK把对应的Maven依赖包也发布到tomcat。

2017-03-21 17:55:21 3386

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除