- 博客(36)
- 资源 (2)
- 收藏
- 关注
原创 nginx的location, root, alias, proxy_pass
一直对nginx的location匹配顺序处于一种似懂非懂的状态,这次仔细阅读了官方文档后顿悟了,做此纪录。location参考:locationlocation的匹配模式有五种:location /abc{ #普通前缀匹配 ...}location ^~ /abc{ #不做正则的普通前缀匹配 ...}location = /abc{ #精准匹配 ...}location...
2020-03-31 23:06:51
346
原创 记一次JVM生产OOM及后续调优
上线后使用jstat大致监控一下JVM的gc状况,jstat命令使用。查看到服务有过2次full gc,这是不应该发生的,因为这是个网关服务,绝大多数对象都是请求级别的生命周期,基本不会有长期对象产生,也不会有持续的大对象产生,所以不应该发生full gc才对。服务启动时有加上-XX:+PrintGCDetails,找到gc日志,找到第一次full gc的位置:非常清晰的标出了是Metasp...
2020-03-20 17:35:52
761
原创 zuul的ignoredHeaders和sensitiveHeaders配置详解
搜索了网上的一些资料,发现各有各的解释,且解释的不太清楚。查看了zuul的源码后得出结论:俩个配置都是用来过滤header的,只不过sensitiveHeaders不配置时,会有三个默认过滤的header头。不做任何配置的情况下,header会全部往下转发,除了Cookie、Set-Cookie、Authorization无论是配置ignoredHeaders和sensitiveHead...
2020-03-16 17:23:17
2953
原创 HashMap对hash算法的优化
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { ... if ((p = tab[i = (n - 1) & hash]) == null) tab[i] = newNode(hash,...
2020-03-12 21:47:24
728
1
原创 Mysql学习笔记
DDLCREATECREATE TABLE table_name( column_1 字段类型 [字段约束], column_2 字段类型 [字段约束], ... column_n 字段类型 [字段约束],);DROPDROP TABLE [IF EXISTS] table_nameALTERadd columnALTER TABLE table_nameADD co...
2020-03-07 20:41:27
1455
原创 Git 快速入门
Git是目前世界上最先进的分布式版本控制系统!(一条五毛,括号删掉)先进的系统都是很人性化的,所以入门并不困难。第一步当然是安装,Git的安装十分简单,参考:安装Git廖大佬的这个Git教程也非常基础,适合新手入门,我这里将其精华提出,做一个快速入门。创建版本库这里是指创建本地版本库,也就是本地仓库。在任意位置创建一个空的目录,这里注意目录路径不要包含中文。进入创建好的目录下,打开G...
2020-03-07 15:14:13
236
原创 zeebe快速入门
下载麻烦可以下我这个整理的整包:链接:https://pan.baidu.com/s/1Vgbyxt1PO3Kex1r47pKPlA 提取码:9r1a下载zeebezeebe发布页面,选择zeebe-distribution-X.Y.Z.tar.gz下载下载zeebe-modelerzeebe-modeler发布页面,选择zeebe-modeler-x.x.x-win-x64.zip...
2020-03-03 15:46:32
5019
2
原创 kafka jdbc sink connect源码调研
JdbcSinkConnectorpublic class JdbcSinkConnector extends SinkConnector { public Class<? extends Task> taskClass() { } @Override public List<Map<String, String>> taskConfigs(...
2020-02-28 17:42:38
1176
原创 okd 3.11 安装、使用Istio
1.资源准备虚拟机4C 8G 100G磁盘,配置好网络,需要连接外网。2.安装okd 3.11# 安装gityum install git -y# clone okd一键安装项目cd /opt/git clone https://gitee.com/xhua/OpenshiftOneClick.gitcd OpenshiftOneClick# 修改必要的配置cat config...
2019-11-19 15:06:25
1076
1
原创 Sentry离线部署
环境准备我将9.1.2版本的sentry所需环境做了整合打包:https://pan.baidu.com/s/128CW8uc5VHzA2dWTcjTZwA提取码:ib8a 。虚拟机OS版本:[root@localhost ~]# cat /etc/centos-releaseCentOS Linux release 7.5.1804 (Core) [root@localhost ~]...
2019-10-28 18:02:08
2423
6
原创 Spring Boot 2结合Spring security + JWT实现微信小程序登录
项目源码:https://gitee.com/tanwubo/jwt-spring-security-demo
2019-08-23 23:27:35
13420
原创 Apollo源码阅读记录(一)
最近公司项目用到了Apollo,花了几天功夫把Apollo的官方文档过了一遍,不得不说写的非常详细。基本的使用,已经简单的原理都介绍的明明白白的。在文档上有这么句话:据说Apollo非常适合作为初学者第一个通读源码学习的分布式中间件产品那么就开始吧。这里我主要为了记录一些在阅读Apollo源码时所学习到的一些开发技巧,方便自己回顾。我是一边参考:Apollo源码解析,一边自己阅读源码,有很...
2019-03-27 18:32:22
1425
1
原创 Jenkins 工作笔记
由于公司需要,这边记录一下自己在学习Jenkins的一些过程,已经遇到的一些坑。安装安装JenkinsJenkins的安装还是比较简单的,我用的是CentOs 6,安装步骤如下:sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --imp...
2019-03-22 09:57:48
239
原创 Elasticsearch 6.5.1学习笔记(五)批量API
批量查询 _mget使用批量查询的好处在于将多次网络请求合并成一个,大大减少了网络消耗,提升ES查询效率。具体API如下:GET /_mget{ "docs":[ { "_index":"employee", "_type":"_doc", "_id":"1" },{ "_index&
2018-11-29 18:26:08
482
原创 Elasticsearch 6.5.1学习笔记(四)document更新
全局更新在 Elasticsearch 中document是不可改变 的,不能修改它们。所以当我们使用更新API时,其实是经历了:查询旧数据标记旧数据为删除状态插入新数据这里并不是将旧文档直接删除,而是打上删除标记,是为了提升ES的性能。但是如果一直不删除旧文档则会越堆越多,所以当旧文档到达一定数量时,ES会做一次清理,物理删除掉这些被标记删除的文档。全局更新的API其实就是PUT新...
2018-11-29 17:14:03
999
原创 Elasticsearch 6.5.1学习笔记(三)集群原理
集群扩容Elasticsearch 可以随时按需扩容。扩容的方式有水平扩容、垂直扩容。水平扩容:添加更多的服务器,使集群的负载能力更强垂直扩容:替换性能更强的机器,使集群的负载能力更强显然垂直扩容需要大量资金,并且有瓶颈。水平扩容更合适用来提升集群的负载能力。横向扩容则需要分布式技术来支持,对于大多数的数据库而言,通常需要对应用程序进行非常大的改动,才能利用上横向扩容的新增资源。而E...
2018-11-29 13:43:13
354
原创 Elasticsearch 6.5.1学习笔记(二)简单API
安装Kibana这里直接使用docker-compose安装,并带有俩个elasticsearch组成的伪集群:version: '3.7'networks: esnet:services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1 container_name...
2018-11-28 17:10:39
384
原创 Elasticsearch 6.5.1学习笔记(一)安装
Elasticsearch安装在Linux上安装使用docker安装第一步下载镜像,在https://www.docker.elastic.co/中,找到6.5.1版本的Elasticsearch,复制命令:docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.1执行并下载镜像。...
2018-11-26 15:17:03
830
原创 Docker学习笔记-volumes(一)
volumes是保存Docker容器生成和使用的数据的首选机制。bind mounts依赖于主机的目录结构,而卷则完全由Docker管理。卷比bind mounts有几个优点:volumes比bind mounts跟容易备份或迁移。可以使用Docker API进行管理。volumes可以在Linux或Windows平台的容器上工作。可以在多个容器之间安全共享允许将volumes存储在远...
2018-11-23 14:58:36
3955
1
原创 Spring Cloud Config 高可用:传统模式
最近在部署项目上测试环境的时候,由于数据库ip变更导致启动失败,所以进行项目改造,加入了Config配置中心。临时抱佛脚的在《Spring Cloud 微服务实战》上面找到了快速入门,依葫芦画瓢的把项目改造好了。当时Config Client配置中使用的是uri的形式直接指定:spring: cloud: config: uri: http://config:...
2018-11-19 17:43:07
171
原创 Spring Cloud源码分析:Ribbon如何为RestTemplate提供负载均衡
阅读Spring Cloud微服务实战中的Ribbon源码分析章节,debug跟踪源码后,做此记录。从@LoadBalanced注解源码的注释中可以知道, 该注解用来给RestTemplate做标记, 以使用负载均衡的客户端(LoadBalancerClient)来配置它。在读完这个章节后,还是没能理解Ribbon是怎样为RestTemplate提供负载均衡。于是debug进行源码跟踪,才...
2018-11-05 16:34:25
370
原创 Elasticsearch6.3.0学习笔记(二)
最新6.5.1版本传送门:6.5.1版本学习笔记Query Dsl先准备测试数据,es有提供有关批量执行的方式:_bulk参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html但是在postman中插入式异常,所以暂时使用单条插入的方式PUT localh...
2018-07-08 17:08:40
1086
原创 Elasticsearch6.3.0学习笔记(一)
最新6.5.1版本传送门:6.5.1版本学习笔记安装参考官方文档提供的安装教程:https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html启动在win7上用msi文件进行的安装,进入安装目录中的bin目录执行elasticsearch.exe使用...
2018-07-06 17:26:53
1477
转载 windows下nginx的安装及基本使用
原文地址:https://www.cnblogs.com/saysmy/p/6609796.htmlnginx功能之一可以启动一个本地服务器,通过配置server_name和root目录等来访问目标文件一. 下载http://nginx.org/ 下载后解压 二. 修改配置文件nginx配置文件在 nginx-1.8.0\conf\nginx.confhttp { gzip on;...
2018-06-28 19:38:37
268
转载 Spring Boot Actuator 使用
原文地址:https://www.jianshu.com/p/af9738634a21Spring Boot 的 Actuator 提供了很多生产级的特性,比如监控和度量Spring Boot 应用程序。Actuator 的这些特性可以通过众多 REST 接口、远程 shell 和 JMX 获得。一、Actuator 的 REST 接口Spring Boot Actuator 的关键特性是在应用程...
2018-06-27 17:32:35
476
原创 Spring Boot Actuator监控端点无法访问
Spring Boot 版本为:1.5.13.RELEASE项目中导入spring-boot-starter-actuator后,actuator提供默认端点无返回数据或显示错误页面无返回数据:显示错误页面:只需在application.properties中添加配置:management.security.enabled=false即可解决...
2018-06-27 17:28:43
3233
转载 logback 日志信息持久化
想要把日志异步保存到数据库中,首先需要创建一个数据库,然后创建三张固定的表:https://github.com/xiaorenwu-dashijie/logback.gitDROP TABLE IF EXISTS `logging_event`;CREATE TABLE `logging_event` ( `timestmp` bigint(20) NOT NULL, `formatt...
2018-06-22 11:43:34
1216
1
转载 spring aop注解详解
原文地址:https://www.cnblogs.com/lixuwu/p/5804793.htmlAOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。一 AOP的基本概念(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知(2)JointPoint(连接点):程序执行过程...
2018-06-21 14:40:31
28585
1
原创 Spring Boot学习笔记:日志管理
默认日志格式2018-06-20 15:26:41.099 INFO 10524 --- [ main] com.tanwubo.LoggingDemoApplicationTests : Starting LoggingDemoApplicationTests on USER-20170416AY with PID 10524 (started by Administra...
2018-06-20 16:44:09
222
转载 springdata jpa使用Example快速实现动态查询
原文地址:https://blog.youkuaiyun.com/long476964/article/details/79677526Example官方介绍Query by Example (QBE) is a user-friendly querying technique with a simple interface. It allows dynamic query creation and does...
2018-06-15 17:44:36
2820
转载 spring boot 整合 redis基本使用
1、 添加maven依赖<!-- redis --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency&
2018-06-15 11:31:10
297
转载 linux下安装mysql
原文地址:https://www.cnblogs.com/bookwed/p/5896619.html安装环境:系统是 centos6.51、下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6.33,通用版,linux下64位 也可以直接复制64位的下载地址,通过命令下载:w...
2018-06-14 14:40:25
364
转载 几种API调用认证方案浅析
原文地址:https://www.cnblogs.com/Sinte-Beuve/p/7822856.html1. 类似HTTP Basic Authentication随意在网上搜索公共API服务,比如下图中的百度基站查询的接口。这种接口一般付费之后会获取到一个apikey,通过apikey进行请求。和HTTP Basic Authentication类似,需要把apikey这个字段写入HTTP...
2018-06-12 11:25:35
11366
1
原创 Spring Boot使用MockMvc测试时的一次小坑
一个基本的RESTful API小案例,正常启动Spring Boot无异常,接口访问全部正常通过。在其他配置全部一致的情况下,使用MockMvc进行测试抛出异常:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPoin...
2018-06-08 17:48:09
6637
3
转载 JAVA编程思想笔记
1. Java中的多态性理解(注意与C++区分)Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意味着通常情况下,我们不必判定是否应该进行动态绑定—它会自动发生。final方法会使编译器生成更有效的代码,这也是为什么说声明为final方法能在一定程度上提高性能(效果不明显)。如果某个方法是静态的,它...
2018-06-07 11:32:19
107
Spring Boot WEB基本框架
2018-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人