自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (1)
  • 收藏
  • 关注

转载 二分模版差异分析

思路我相信对很多读者朋友来说,编写二分查找的算法代码属于玄学编程,虽然看起来很简单,就是会出错,要么会漏个等号,要么少加个 1。不要气馁,因为二分查找其实并不简单。思路很简单,细节是魔鬼。本文以问答的形式,探究几个最常用的二分查找场景:寻找一个数、寻找左侧边界、寻找右侧边界。而且,我们就是要深入细节,比如不等号是否应该带等号,mid 是否应该加一等等。分析这些细节的差异以及出现这些差异的原因,保证你能灵活准确地写出正确的二分查找算法。零、二分查找框架int binarySearch(

2022-03-01 11:15:00 142

转载 ngx_lua 模块

ngx_lua模块的原理:1、每个worker(工作进程)创建一个Lua VM,worker内所有协程共享VM;2、将Nginx I/O原语封装后注入 Lua VM,允许Lua代码直接访问;3、每个外部请求都由一个Lua协程处理,协程之间数据隔离;4、Lua代码调用I/O操作等异步接口时,会挂起当前协程(并保护上下文数据),而不阻塞worker;5、I/O等异步操作完成时还原相关协程上下文数据,并继续运行;ngx_lua 模块提供的指令和API等:指令名称 说明 lua_u

2021-11-12 15:15:51 1192

原创 java中HttpClient发送https请求忽略SSL证书

import com.alibaba.fastjson.JSONObject;import org.apache.http.HttpEntity;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpPost;import org.apache.h.

2021-11-01 15:30:22 4968 1

转载 Tomcat架构解析以及设计借鉴

Tomcat 发展这么多年,已经比较成熟稳定。在如今『追新求快』的时代,Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又有什么收获呢?静下心来,细细品味经典的开源作品 。提升我们的「内功」,具体来说就是学习大牛们如何设计、架构一个中间件系统,并且让这些经验为我所用。美好的事物往往是整洁而优雅的。但这并不等于简单,而是要将复杂的系统分解成一个个小模块,并且各个模块的职责划分也要清晰合理。与此相反的是凌乱无序,比如你看到

2021-09-09 14:56:29 553

转载 Kong获取用户真实ip

Kong获取真实ip在前后端分离架构中,前端使用nginx作为静态页面服务器以及转发ajax请求,所以Kong不是与用户直接相连的服务器。一个tcp socket连接的四元组包括源ip,源端口,目的ip,目的端口,一个tcp连接只能拿到直接相连的源ip地址。对于一个nginx服务器,如果请求到达该服务器时,中间经过多层反向代理,则无法直接获取客户的真实ip地址。而拿到用户的真实ip地址,是基于ip地址来实现限速,限流,拉黑,负载均衡,数据分析等功能的基础。涉及知识点:nginx变量$remote

2021-07-26 11:25:26 2081

转载 关于Docker目录挂载的总结

Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:# docker run -it -v /test:/soft centos /bin/bash这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。貌似简单,其实不然,下面我们来验证一下:一、容器目录不可以为

2021-07-01 10:57:41 211

转载 Nginx、OpenResty和Kong的基本概念与使用方法

说明 Nginx Nginx配置文件,指令与变量 Nginx作为TCP/UDP负载均衡器 Nginx模块 OpenResty OpenResty安装 Kong Kong编译安装 启动Kong 部署KongDashboard Kong的使用 注册API:添加服务、配置路由 插件启用方法 Kong的插件 Kong与Kubernetes的集成 遇到的问题 ERROR: module ‘socket’ not found:No L...

2021-04-26 20:33:37 2428

转载 Java内存溢出(OOM)异常完全指南

本文分析什么情况会导致这些异常出现,提供示例代码的同时为您提供解决指南。Nikita Salnikov-TarnovskiPlumbr Co-Founder and VP of Engineering本文内容来源于Plumbr,对原文内容有删减和补充这也许是目前最为完整的Java OOM异常的解决指南。1、java.lang.OutOfMemoryError:Java heap spaceJava应用程序在启动时会指定所需要的内存大小,它被分割成两个不同的区域:Heap space(堆空.

2021-04-20 11:50:16 858

转载 拦截器HandlerInterceptor的preHandle、postHandle、afterCompletion方法的作用

转:https://blog.csdn.net/weixin_41767154/article/details/84648873public class MyHandlerInterceptor implements HandlerInterceptor {(1) preHandle方法是进行处理器拦截用的,顾名思义,该方法将在Controller处理之前进行调用。SpringMVC中的Interceptor拦截器是链式的,可以同时存在多个Interceptor,然后SpringMVC会根据.

2021-03-29 23:23:15 3166

转载 封装ThreadLocal

为什么要封装ThreadLocal?原因有两点:1、对于Thread,如果希望在Interceptor中存入UserInfo并在Service层通过ThreadLocal把UserInfo钩出来,必须保证Interceptor和Service此时用的是同一个ThreadLocal。但是一个对象如何同时出现在Interceptor和Service呢?各自new一个ThreadLocal可不行,因为此时是两个对象了。比如,在Interceptor创建的对象是紫霞,而Service创建的是青.

2021-03-29 23:08:37 734

原创 websocket模块中@Autowired注入对象为空问题

在websocket模块中,如果像其他普通的java web模块一样,@Component下使用@Authowired会出现所注入的对象为空的问题,

2021-03-16 11:54:52 451

原创 关于 Spring AOP (AspectJ) 你该知晓的一切

https://blog.csdn.net/javazejian/article/details/56267036?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLea

2021-03-16 10:32:36 61

原创 SprongCloud组件——Feign使用记录

1、GET方法也可以传body,需要用到@SpringQueryMap注解2、对于GET方法而言,若有多个body,且没有用到@SpringQueryMap,feign会自动转换为post请求

2021-03-16 09:13:54 100

转载 java WebSocket实现Java后台消息推送

转载自:https://www.cnblogs.com/freud/p/8397934.html参考:https://blog.csdn.net/Jack_EUSong/article/details/790640811.什么是WebSocket  WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。2.实现原理  在实现websocket连线过程中,需要通过浏览器发出websocket连线请

2021-03-11 14:54:09 699

转载 私网ip、公网ip

IP可以分为Public IP 和 Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络,所以对于那些公司,学校,政府机构等场所,就可以集中使用私有的IP进行管理,而大家可以共用一个IP去连接上公网,这样,就省下了许多宝贵的Public IP。你有没有发现,你每次使用ipconfig查到的地址,要么就是172.开头的,要么就是192.开头的,为什么?难道没有其他开头的嘛,答:基本没有。因为一个Ip分给我们一个Pc端太不划算

2020-12-17 11:42:07 3165

转载 Kafka的简介

目录一、简介 1.1 概述 1.2 消息系统介绍 1.3 点对点消息传递模式 1.4 发布-订阅消息传递模式 二、Kafka的优点 2.1 解耦 2.2 冗余(副本) 2.3 扩展性 2.4 灵活性&峰值处理能力 2.5 可恢复性 2.6 顺序保证 2.7 缓冲 2.8 异步通信 三、常用Message Queue对比 3.1 RabbitMQ 3.2 Redis 3.3 ZeroMQ 3.4 ActiveMQ 3.5 

2020-12-17 11:12:36 93

转载 使用消息中间件时,如何保证消息仅仅被消费一次?

消息中间件使用广泛,常用来削峰填谷、系统解耦、异步处理,异步处理可能是使用的最多的场景了,比如现在的技术博客网站,都采用积分制,用户发表一篇文章后,可以获取想要的积分,为了提升系统的性能,给用户加积分的操作可以异步处理,并不需要放在同步流程中。我们可以把用户ID,需要增加的积分封装成一条消息投递到消息系统中,异步处理加积分操作,由于这是发生在不同服务器之间,消息有可能投递失败、处理失败等问题,从而导致用户加积分失败,还有一种可能是消息重复投递,那么有用就有可能重复加积分,不管出现那种情况,都是不正常的情

2020-12-08 14:36:29 429

转载 使用JWT实现Token认证

为什么使用JWT?随着技术的发展,分布式web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做登录身份校验,然后通过token去取redis中的缓存的用户信息,随着之后jwt的出现,校验方式更加简单便捷化,无需通过redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录更为简单。JWT架构图使用JWT核心代码:maven依赖: <dependency> .

2020-12-07 09:53:10 133

转载 苏宁容器云基于Kubernetes和Contiv的网络架构技术实现

容器云的发展和落地,使得越来越多的无状态服务迁移到容器云,加快容器云的落地。容器云的发展,使得更大限度的利用计算资源,这相对传统虚拟化技术来说,就有了很多优势,例如支持高可用时无缝切换、负载均衡、服务发现、自动扩展、自动化运维。但是新的技术和架构,也随之带来新的问题,大多数服务迁移到容器云之后,因为要面对复杂的数据中心、混合的虚拟机技术并存等等。在传统网络架构、网络设备硬件限制下,例如,白名单要求IP地址能够始终不变、云计算行业规则下的网络限速。在苏宁容器云架构中,针对自身业务特点以及数据中心架构,基于

2020-12-05 22:40:32 600

转载 Redis数据结构——跳跃表

前言#跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。这么说,我们可能很难理解,我们可以先回忆一下链表。一、复习跳跃表#1.1 什么是跳跃表#对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个数据,也只能从头到尾遍历链表。这样查找效率就会很低,时间复杂度会很高,是 O(n)。如果我们想要提高其查找效率,可以考虑在链表上建索引的方式。每两个结点提取一个结点到上一级,我们把抽出来的...

2020-12-02 13:43:29 107

转载 @RestControllerAdvice作用及原理

在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。参考:@ControllerAdvice 文档一、介绍创建 MyControllerAdvice,并添加 @ControllerAdvice注解。package com.sam.demo.controller;import org.springframework.ui.

2020-12-02 11:28:48 14363 1

转载 maven介绍以及仓库配置pom.xml中repositories属性的意义

什么是Maven仓库在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难。此外,如果你使用版本管理工具,如SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很

2020-12-01 17:16:53 1828 1

转载 解决Springboot项目中文乱码的问题

首先,对于mySql连接的问题:若从前端 插入中文数据,进入数据库中出现乱码,则检查数据库的编码以及在application.properties中的连接是否设置编码为UTF-8。 对于通过url传参,出现中文乱码的情况,需要以下几个步骤。 (1). 在application.properties中设置如下参数:# 解决中文乱码的问题spring.http.encoding.force=truespring.http.encoding.charset=UTF-8spring.http.enco

2020-11-12 19:14:07 846

转载 从OncePerRequestFilter的源码解读去了解Spring内置的Filter的特别之处以及常见过滤器使用介绍

转:https://cloud.tencent.com/developer/article/1497822前言首先我附上一个截图:从截图上我们可以看到我标红的我们比较熟悉,配置过的一些Filter,他们都继承自OncePerRequestFilter。该Filter从字面上理解:只执行一次的Filter。可能有人会问了,我们自己写的Filter不都只执行一次吗?为何Spring还要专门提供这么一个类来处理呢?这就是本文关心的内容,就Spring内置的这些Filter...

2020-11-11 16:46:45 1225

转载 OkHttp使用详解

今天学习了一下OkHttp,在这里做个总结,希望可以帮助到有需要的人,好了,废话不多说,进入正题。一、OkHttp介绍OkHttp是一个优秀的网络请求框架,可能一说到网络请求框架,可能很多人都会想到volley,volley是一个Google提供的网络请求框架,我的博客里也有一篇专门介绍volley的博客,博客地址在此Android网络请求 ------ Volley的使用 那么既然Google提供了网络请求的框架,我们为什么还要使用OkHttp呢,原来是volley是要依靠HttpCient.

2020-10-12 14:15:17 160

转载 Nginx可以做什么?看完这篇你就懂了

本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得,欢迎留言交流。Nginx能做什么——反向代理——负载均衡——HTTP服务器(动静分离)——正向代理以上就是我了解到的Nginx在不依赖第三方模块能处理的事情,下面详细说明每种功能怎么做。反向代理反向代理应该是Nginx做的最多的一件事了,什么是反向代理呢,以下是百度百科的说法:反向代理(Reverse Proxy)方式

2020-09-24 10:09:56 1432

转载 如何看待 k8s 的 HPA

今天找K8S中HPA原理的相关知识时,看到一篇介绍微博怎么应用这一服务的文章,所以摘下来以做记录。链接:https://www.jianshu.com/p/7842437235f2最近被问到如何理解 k8s 弹性伸缩的这样的问题,而我最初的回答很简单也很肤浅,我说:k8s 是 HPA 根据定义的 metric 阈值 (简单的 cpu 值或者用户自定义)来对应用进行扩缩容的。 今天和微博的朋友也聊到了这个话题,他说在他们的场景下 k8s 的弹性扩容是不起作用的,因为在某些热点新闻..

2020-08-25 17:59:18 313

转载 从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念

作者| 阿里巴巴资深技术专家、CNCF 9个 TCO 之一 李响一、什么是KubernetesKubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“K8s”,它是通过将 8 个字母“ubernete ”替换为“8”而导致的一个缩写。Kubernetes 为什么要用“舵手”来命名呢?大家可以看一下这张图:这是一艘载着一堆集装箱的轮船,轮船在大.

2020-08-23 17:38:04 157

转载 一关系图让你理解K8s中的概念,Pod、Service、Job等到底有啥关系

转:https://www.jianshu.com/p/60f8dc3d859b查看原文获得更好阅读体验。刚开始接触K8s的同学可能都会觉得有一定的学习难度,扑面而来的各种概念到底是什么。比如,如何提供一个服务给别人,我是应该用Pod还是用Deployment来运行我的应用等,在接下来的文章中,希望能够解答你的这些疑惑。Kubernetes可以看做云原生时代的操作系统,统一管理下层的基础设施,如计算资源、网络资源、存储资源等等。将集群中存在的各种复杂关系抽象成各种API资源,以统一的方式暴露出各

2020-08-23 17:34:35 2091 1

转载 GET和POST两种基本请求方法的区别

转:https://www.cnblogs.com/logsharing/p/8448446.htmlGET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻...

2020-08-21 17:59:25 111

转载 一文详解微服务架构

本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。为了防止不提供原网址的转载,特在这里加上原文链接:https://www.cnblogs.com/skabyy/p/11396571.html要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网

2020-08-18 14:11:29 174

转载 写在19年初的后端社招面试经历(两年经验): 蚂蚁 头条 PingCAP

前言去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer。想着可以总结一下经验,分享一下自己这一段"骑驴找马"过的心路历程。当然,一家之言,难免粗浅,如有不妥,敬请指正。全文有点长,假如只对一家公司感兴趣的话可以直接跳过去:PingCAP准备过程我自己是本科毕业后在老东家干了两年多,老东家算是一家"小公司"(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因

2020-08-18 14:09:08 806

转载 CompletableFuture get方法一直阻塞或抛出TimeoutException

转:https://blog.csdn.net/xiaolyuh123/article/details/85023269问题描述最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响应很慢进而影响了其他系统的调用。问题分析首先我们知道CompletableFuture的get()方法值会阻塞主.

2020-08-14 16:20:53 1273 1

原创 Spring MVC的@PostMapping注解

@PostMapping映射一个POST请求是Spring MVC新特性 ,提供了对Restful风格的支持。相似的还有:@GetMapping,处理get请求@PostMapping,处理post请求@PutMapping,处理put请求@DeleteMapping,处理delete请求@PostMapping(value = "/user/login")等价于@RequestMapping(value = "/user/login",method = Re...

2020-08-13 14:23:08 1671

转载 @Component 和 @Bean 的区别

转:https://blog.csdn.net/qq_38534144/article/details/82414201Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。完成这两个动作有三种方式,一种是使用自动配置的方式、一种是使用JavaConfig的方式,一种就是使用XML配置的方式。@Compent 作用就相当于 XML配置@Componentpublic class Student { private String name = ..

2020-08-05 14:38:51 144

转载 Spring的基本配置和Spring与Mybatis的整合

转载:https://blog.csdn.net/qq_42371269/article/details/83505269Spring: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构...

2020-08-04 16:02:33 219

转载 两个数组的交集II(3种方法)

两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺...

2019-11-22 16:29:39 962

转载 CPU Cache Line伪共享问题的总结和分析

原文:吴一昊,杨勇Linux阅码场地址:CPU Cache Line伪共享问题的总结和分析Table of Contents1. 关于本文2. 背景知识2.1 存储器层次结构2.2 多核架构2.3 NUMA 架构CacheDRAMDevice2.4 Cache Line2.5 Cache 的结构2.6 Cache 一致性2.7 Cac...

2019-09-30 18:41:11 614

转载 c++语言中static关键字用法详解

转:https://blog.csdn.net/guotianqing/article/details/79828100概述static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。但是对于c语言初学者,static由于使用灵活,并不容易掌握。本文就static在c语言中的应用进行总结,供参考使用。错漏之处,请不吝指正。在程序中使用static...

2019-09-25 11:45:26 248

原创 SLAM中帧间匹配之2d2d与3d2d的区别

博主在自己写VO的时候遇到了一个问题,因为只使用2d2d恢复[R|t],然后画位姿的时候效果太差,见下面的效果图,对着部分产生疑问,遂来比较3d2d与2d2d之间的效果。不比不知道,一比吓一跳。上图左侧数据是执行3d2d的所恢复的帧间匹配,右侧是2d2d所恢复的帧间匹配,用到的图像是 rgbd_dataset_freiburg2_desk 数据集的两张图片和他们对应的深度图,...

2019-05-20 14:16:59 1778

2010第五届飞思卡尔杯智能汽车竞赛全国总决赛成绩

2010第五届飞思卡尔杯智能汽车竞赛全国总决赛成绩,对参赛的同学有 大的帮助

2014-12-14

空空如也

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

TA关注的人

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