07 2021 档案

摘要:一、四种常见的线程池 CachedThreadPool:可缓存的线程池,该线程池中没有核心线程,非核心线程的数量为Integer.max_value,就是无限大,当有需要时创建线程来执行任务,没有需要时回收线程,适用于耗时少,任务量大的情况。 SecudleThreadPool:周期性执行任务的线程 阅读全文
posted @ 2021-07-27 22:30 古兰精 阅读(1174) 评论(0) 推荐(0) 编辑
摘要:一、线程池介绍 我们知道,线程的创建和销毁都需要映射到操作系统,因此其代价是比较高昂的。出于避免频繁创建、销毁线程以及方便线程管理的需要,线程池应运而生。 1、线程池优势 (1)降低资源消耗:线程池通常会维护一些线程(数量为 corePoolSize),这些线程被重复使用来执行不同的任务,任务完成后 阅读全文
posted @ 2021-07-27 18:59 古兰精 阅读(310) 评论(0) 推荐(0) 编辑
摘要:在项目中使用 @Async 注解,发现异步任务没生效,最后发现是线程池没配置或配置的有问题,所以准备研究下Java里的异步 在项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能够并行执行,我们可以使用多线程来并行的处理任务,也可以使用spring提供的异步处理方式@ 阅读全文
posted @ 2021-07-27 14:57 古兰精 阅读(4439) 评论(0) 推荐(0) 编辑
摘要:SpringBoot使用@scheduled定时执行任务的时候是在一个单线程中,如果有多个任务,其中一个任务执行时间过长,则有可能会导致其他后续任务被阻塞直到该任务执行完成,也就是会造成一些任务无法定时执行的错觉。无论@scheduled是用在一个类的多个方法还是用在多个类中的方法,默认都是单线程的 阅读全文
posted @ 2021-07-27 13:30 古兰精 阅读(5050) 评论(0) 推荐(0) 编辑
摘要:定时任务相当于闹钟,在什么时间做什么事情(执行什么命令/脚本)。 @EnableScheduling 在配置类上使用,开启计划任务的支持 —— 用于类上。 @Scheduled 来声明这是一个任务,包括cron、fixDelay、fixRate等类型 —— 用于方法上,需先开启计划任务的支持 一、如 阅读全文
posted @ 2021-07-27 12:25 古兰精 阅读(4039) 评论(0) 推荐(1) 编辑
摘要:OpenFeign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问HTTP请求。 一、如何配置 OpenFeign 1、配置 pom.xml 阅读全文
posted @ 2021-07-26 22:10 古兰精 阅读(679) 评论(0) 推荐(0) 编辑
摘要:先贴下学习笔记思维导图 一、计算机存储原理 在理解索引这个概念之前,我们需要先了解一下计算机存储方面的基本知识。 我们知道数据持久化之后存在了数据库里,那么我现在的问题是数据库将数据存在了哪里?答案显然是存在了计算机的存储设备上。就个人电脑而言,数据被存在了我们的电脑存储设备上。 计算机的存储设备有 阅读全文
posted @ 2021-07-24 23:47 古兰精 阅读(1368) 评论(0) 推荐(0) 编辑
摘要:在分布式应用程序中,应用程序的不同部分被称为“服务”。例如,如果有一个视频共享网站,它可能包括一个用于将应用程序数据存储在数据库中的服务,一个在用户上传东西后在后台进行视频转码的服务,一个用于前端页面的服务等等。 服务实际上只是“生产中的容器”。每个服务只运行一个映像,但它编码了镜像的运行方式 - 阅读全文
posted @ 2021-07-23 22:33 古兰精 阅读(5311) 评论(0) 推荐(0) 编辑
摘要:网页开发中我们经常要处理用户交互,我们会用 addEventListener 添加事件监听器来监听各种用户操作,比如 click、mousedown、mousemove、input 等,这些都是由用户直接触发的事件。 那么对于一些不是由用户直接触发的事件呢? 比如元素从不可见到可见、元素大小的改变、 阅读全文
posted @ 2021-07-23 10:12 古兰精 阅读(949) 评论(0) 推荐(0) 编辑
摘要:@ResponseStatus注解是spring-web包中提供的一个注解,其主要作用就是为了改变HTTP响应的状态码,具有value、code、reason 三个属性,如下: 一、@ResponseStatus注解用法 @ResponseStatus注解有两种用法,一种是加载自定义异常类上,一种是 阅读全文
posted @ 2021-07-22 22:47 古兰精 阅读(5397) 评论(0) 推荐(1) 编辑
摘要:一、@ResponseBodyAdvice的理解 1、ResponseBodyAdvice接口类 —— 其描述大致解释下: 允许在执行{@code@ResponseBody}或{@code ResponseEntity}控制器方法之后,但在使用{@code HttpMessageConverter} 阅读全文
posted @ 2021-07-22 21:46 古兰精 阅读(13765) 评论(0) 推荐(3) 编辑
摘要:一、统一异常处理 1、统一异常处理的 2 个注解 系统有一个统一异常处理的功能,可减少重复代码,又便于维护。用@ControllerAdvice和@ExceptionHandler两个注解来做异常的统一处理。 @ControllerAdvice:作用于所有@Controller标注的Controll 阅读全文
posted @ 2021-07-22 21:25 古兰精 阅读(2252) 评论(0) 推荐(0) 编辑
摘要:公司要开发一些工具,放在企业微信侧边栏,方便运营者去使用。之前没了解过,故而学习下是个什么东西。 一、怎么打开企业微信侧边栏?企业微信聊天侧边栏不显示是什么原因? 在企业微信中,我们可以在聊天页面使用侧边栏功能,方便当与联系人聊天时可以提供更快捷的服务。那么怎么打开企业微信侧边栏呢?在手机端和电脑端 阅读全文
posted @ 2021-07-22 13:37 古兰精 阅读(1010) 评论(0) 推荐(0) 编辑
摘要:HTTPS的目标就是解决网络通信的安全问题。先来一张学习总结的思维导图: 一、网络存在的风险 1、消息监听 —— 我们发送的消息需要经过很多的中间路由器,我们无法确保网络中每一个节点都是安全的,所以我们发送的数据会被恶意的对象截取到。假如我们的消息没有经过任何加密,那么恶意用户就可以监听到我们通信的 阅读全文
posted @ 2021-07-21 22:35 古兰精 阅读(544) 评论(0) 推荐(0) 编辑
摘要:一、单服务器组发布 1、蛮力发布 —— 简单粗暴,主要靠手工完成 先将老版本 V1 全部下掉,再将新版本发到机器上去。这种方式会引入服务中断(停机),会直接影响用户的使用体验。 2、金丝雀发布 —— 在蛮力发布基础上的一种简单改进发布方式,目前仍然是不少成长型技术组织的主流发布方式。 (1)实践要点 阅读全文
posted @ 2021-07-21 16:51 古兰精 阅读(549) 评论(0) 推荐(0) 编辑
摘要:一、域名备案 二、一个域名可以绑定几个ip 我们需要了解的是:(1)一个域名只对应一个 IP;(2)一个 IP 可以绑定多个域名;(3)域名相当于一个楼房的门牌号,不可能重复使用;(4)域名绑定的 IP 到期或者更换时,可以重新绑定。(5)在域名服务商那里,我们可以把服务器群里提供相同服务的多个 服 阅读全文
posted @ 2021-07-21 13:22 古兰精 阅读(5241) 评论(0) 推荐(0) 编辑
摘要:最近做的那个需求涉及到 SSH 连接,不大清楚,所以研究了一下,推荐阅读这 4 篇文章,以下来自于这 4 篇文章的学习总结: 1、SSH原理与运用(一):远程登录 —— https://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 2、S 阅读全文
posted @ 2021-07-20 23:15 古兰精 阅读(777) 评论(0) 推荐(0) 编辑
摘要:转载于:https://www.modb.pro/db/69232 java常见的http请求库有HttpURLConnection、httpclient、RestTemplate、OKhttp,更高层次封装的 feign、retrofit 一、HttpURLConnection HttpURLCo 阅读全文
posted @ 2021-07-20 21:58 古兰精 阅读(2490) 评论(0) 推荐(0) 编辑
摘要:一、需求背景 我们要做一个在线能力实验平台,xterm 连接服务器进行 ssh 连接及相关操作实现了(见之前博客)。现在需要的是不同用户选择不同场景(比如不同数据库)进行练习。起初想到的是通过 ssh 连接服务器,然后再通过命令行模式进入容器:docker run -it ubuntu /bin/b 阅读全文
posted @ 2021-07-19 22:33 古兰精 阅读(4527) 评论(0) 推荐(0) 编辑
摘要:除了 jnr-unixsocket,后来我发现有一个 Java Docker 的库使用还挺普遍的,就是 docker-java,github 有 2k 多star,使用也挺普遍的,一搜很多资料文章。 一、docker-java 配置 1、版本支持 <dependency> <groupId>com. 阅读全文
posted @ 2021-07-19 22:11 古兰精 阅读(4748) 评论(0) 推荐(0) 编辑
摘要:一、Unix domain socket(UDS)是什么 Unix domain socket 又叫 IPC(inter-process communication 进程间通信)socket,用于实现同一主机上的进程间通信。 socket 原本是为网络通讯设计的,但后来在 socket 的框架上发展 阅读全文
posted @ 2021-07-19 22:00 古兰精 阅读(2794) 评论(0) 推荐(0) 编辑
摘要:想要在 Java 中或是在其他地方以其他方式访问 Docker API (比如在 Java 应用中访问 docker api 去操作容器、或者在 Jenkins 里配置 docker 映射去设置集群等)都需要设置一个端口。 1、首先,运行以下命令:进入 docker.service vim /lib 阅读全文
posted @ 2021-07-19 21:43 古兰精 阅读(993) 评论(0) 推荐(0) 编辑
摘要:curl 是常用的命令行工具,用来请求 Web 服务器,它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。 可以看下阮一峰的博客:curl网站开发指南、curl 的用法指南 一、curl 阅读全文
posted @ 2021-07-19 18:39 古兰精 阅读(624) 评论(0) 推荐(0) 编辑
摘要:一、varchar(100) 和 varchar(10) 的区别在哪里 一般初学者会认为,二者占用的空间是一样的。比如说我存储5个char,二者都是实际占用了5个char了【不准确的想法:varchar在实际存储的时候会多一个byte用来存放长度】。 但是深入一下,设计数据库的时候,二者一样吗?答案 阅读全文
posted @ 2021-07-18 21:45 古兰精 阅读(1922) 评论(1) 推荐(0) 编辑
摘要:先看下具体效果:相当于就是一个网页版的 Xshell 工具,操作起来跟 Xshell 操作一样。前端主要使用 Vue + Xterm + Websocket/Stomp,后端主要使用 SpringBoot + Websocket/Stomp + JSch,下面可以看下具体实现代码,demo 代码主要 阅读全文
posted @ 2021-07-17 22:21 古兰精 阅读(7221) 评论(3) 推荐(0) 编辑
摘要:一、JSch 是什么及其作用 JSch 是SSH2的一个纯Java实现。它允许你连接到一个 sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的程序中,同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器。 说白了就是以 Java 的方式通过 jsch 阅读全文
posted @ 2021-07-17 13:26 古兰精 阅读(16543) 评论(0) 推荐(0) 编辑
摘要:最近在做一个web terminal的需求,自己也写了 demo ,使用 websocket + stomp 进行前后端通讯,其中遇到一个问题,就是我的前后端连接正常及 ssh 连接也正常了,但是我需要把 ssh 连接返回的信息,再返回给客户端。了解到使用 SimpMessagingTemplate 阅读全文
posted @ 2021-07-17 12:04 古兰精 阅读(11124) 评论(0) 推荐(0) 编辑
摘要:一、Xterm.js 介绍 xterm 是一个使用 TypeScript 编写的前端终端组件,可以直接在浏览器中实现一个命令行终端应用。Xterm.js 适用于大多数终端应用程序,如 bash,vim 和 tmux,这包括对基于curses的应用程序和鼠标事件的支持。Xterm.js 非常快,它甚至 阅读全文
posted @ 2021-07-16 18:49 古兰精 阅读(24201) 评论(2) 推荐(4) 编辑
摘要:一、问题背景及.gitignore文件不起作用 当我们用 git 时常常会习惯把我们不想上传到远程代码库中的一些本地文件(夹)放在一个叫做 .gitignore 的文件中,例如常见的本地 build 文件夹,一些 IDE 如Intellig、Eclipse的项目管理文件,比如下面一些配置 // 此为 阅读全文
posted @ 2021-07-15 22:05 古兰精 阅读(24695) 评论(0) 推荐(5) 编辑
摘要:我在写 xterm.js demo 的时候碰到 \x1B[1;3;31mxterm.js\x1B[0m 这个,不知道是什么,但是界面展示是红色的斜体的 xterm.js 所以了解一下这个东西。 一、ANSI 转义码 如果可以在 terminal 上面印出各中颜色的字符串,可以方便与迅速定位到关键信息 阅读全文
posted @ 2021-07-15 14:13 古兰精 阅读(7562) 评论(0) 推荐(3) 编辑
摘要:一、报错:Error: Terminal requires a parent element. 按官网例子,我最初是在 created() 里加载的方法 // html <div id="terminal"></div> // js import { Terminal } from "xterm"; 阅读全文
posted @ 2021-07-15 13:15 古兰精 阅读(3120) 评论(0) 推荐(0) 编辑
摘要:最近项目需要实现那种在线实训平台,所以会记录一下技术选型然后学到的了解到的相关东西。看下这篇知乎文章:实验楼这个网站是怎样实现的在线linux虚拟机?https://www.zhihu.com/question/29557878,这里面有涉及一些思路。 华为云也有个沙箱实验室的东西,如图: 我估计华 阅读全文
posted @ 2021-07-14 22:49 古兰精 阅读(2558) 评论(0) 推荐(0) 编辑
摘要:对于企业跟个人来说,都有遇到过PC硬盘、手机内存不够的情况,这时候普遍的操作都是去加硬盘、加内存或者买移动硬盘解决。但是对于喜欢深入了解的人来说就会了解到NAS网络存储服务器。 一、NAS 网络存储主要作用 NAS 网络存储核心作用有数据集中存储、数据共享、数据保护几点。它可以通过网络传输的形式进行 阅读全文
posted @ 2021-07-13 22:01 古兰精 阅读(2877) 评论(0) 推荐(0) 编辑
摘要:一、图片裁剪 推荐一款轻量级图片裁剪插件 kpsImageCuster:https://ext.dcloud.net.cn/plugin?id=1076。 其原理就是利用 uni.canvasToTempFilePath() 把当前画布指定区域的内容导出生成指定大小的图片,并返回文件路径。 官方介绍 阅读全文
posted @ 2021-07-13 16:44 古兰精 阅读(5135) 评论(0) 推荐(0) 编辑
摘要:Mode 用来指定当前的构建环境是:production、development、还是none。设置 mode 可以使用 webpack 的内置函数,默认值是 production。 mode 的内置函数功能如下: 模式(mode):提供 mode 配置选项,告知 webpack 使用相应模式的内置 阅读全文
posted @ 2021-07-12 15:16 古兰精 阅读(2109) 评论(0) 推荐(0) 编辑
摘要:一、问题背景 网站上自己有设置广告位,结果在部分电脑上不显示图片,及广告位。 部分电脑是安装了 Adblock 广告拦截插件的电脑。 二、问题原因 最后发现原因是因为安装了 Adblock 广告拦截插件。关于 Adblock 可以看官网:Adblock Plus | 世界排名第一的免费广告拦截程序 阅读全文
posted @ 2021-07-12 14:15 古兰精 阅读(596) 评论(0) 推荐(0) 编辑
摘要:主要来源于这篇文章:写给中高级前端关于性能优化的9大策略和6大指标 | 网易四年实践,算是这篇文章的学习笔记。 性能优化:从过程趋势来说,可分为网络层面和渲染层面;从结果趋势来说,可分为时间层面和体积层面。 一、网络层面 网络层面的优化就是让资源体积更小,加载更快。 1、构建策略 —— webpac 阅读全文
posted @ 2021-07-11 14:53 古兰精 阅读(251) 评论(0) 推荐(0) 编辑
摘要:qiankun 微前端改造成功之后,有几个固定的步骤,但都是在 SPA 页上改造成功的。所以昨天在 SPA 改造之后,我也在想如何能应用到我们项目上去,但是我们项目是有很多 SEO 的需求,所以采用的 SSR 渲染的 NuxtJS 改造的。 NuxtJS 项目和 SPA 的VUE项目还是有挺大差别的 阅读全文
posted @ 2021-07-11 13:20 古兰精 阅读(1942) 评论(3) 推荐(0) 编辑
摘要:一、问题背景 当主应用登录后,再进去微应用发现还需要登录,相当于登录状态没有同步。 二、解决方案 —— 主应用与微应用通信 qiankun微前端应用间的通信,我们要利用qiankun框架的initGlobalState和MicroAppStateActions api,相关的api介绍如下: (1) 阅读全文
posted @ 2021-07-10 22:19 古兰精 阅读(3904) 评论(0) 推荐(1) 编辑
摘要:微前端就是应用分割,独立运行,独立部署,将原本把所有功能集中于一个项目中的方式转变为把功能按业务划分成一个主项目和多个子项目,每个子项目负责自身功能,同时具备和其它子项目和主项目进行通信的能力,达到更细化更易于管理的目的。 总的来说微前端就是:一个完整应用划分成一个主应用和一个或多个微应用,应用间相 阅读全文
posted @ 2021-07-10 21:57 古兰精 阅读(4436) 评论(0) 推荐(2) 编辑
摘要:一、适配 PC 或移动设备 根据用户设备不同返回不同样式的站点,以前经常使用的是纯前端的自适应布局,但无论是复杂性和易用性上面还是不如分开编写的好,比如我们常见的淘宝、京东......这些大型网站就都没有采用自适应,而是用分开制作的方式,根据用户请求的 user-agent 来判断是返回 PC 还是 阅读全文
posted @ 2021-07-10 12:44 古兰精 阅读(4459) 评论(0) 推荐(0) 编辑
摘要:一致性算法的定义:一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。 一、为什么需要一致性 1、数据不能存在单个节点(主机)上,否则可能出现单点故障。 2、多个节点(主机)需要保证具有相同的数据。 3、一致性算法就是为了解决上面两个问题。 二、一致性分类 1、强一致性 说 阅读全文
posted @ 2021-07-09 22:32 古兰精 阅读(1583) 评论(0) 推荐(0) 编辑
摘要:这篇博客写的很好,可以参考学习: Docker三剑客之Docker Swarm Dcoker Swarm 集群部署:https://www.cnblogs.com/zhujingzhi/p/9792432.html#_label6 阅读全文
posted @ 2021-07-08 22:02 古兰精 阅读(48) 评论(0) 推荐(0) 编辑
摘要:一、基础学习笔记 1、工作模式是怎样的。 2、有2种节点类型:管理节点、工作节点。其操作都在manager节点上 3、Raft一致性算法是什么 4、初始化节点:docker swarm init 加入一个节点:docker swarm join 获取令牌:docker swarm join-toke 阅读全文
posted @ 2021-07-08 21:31 古兰精 阅读(761) 评论(0) 推荐(1) 编辑
摘要:一、问题背景 报错信息:java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(ArrayList. Exception in thread "main" java.lang.I 阅读全文
posted @ 2021-07-07 18:57 古兰精 阅读(2577) 评论(0) 推荐(0) 编辑
摘要:官方描述:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin 一、crossOrigin属性总结 使用步骤: 1、在html标签中加了crossorigin=“anonymous”属性(如在img标签加了该 阅读全文
posted @ 2021-07-07 18:44 古兰精 阅读(1334) 评论(0) 推荐(0) 编辑
摘要:在公众号深圳湾码农里看的一篇文章:一行可以让项目启动快 70% 以上的代码 - https://mp.weixin.qq.com/s/x8eFAFdTbzlCR1InxZSO2w 一、利用 cache 及 hard-source-webpack-plugin 优化构建速度 1、结果:将项目启动时间从 阅读全文
posted @ 2021-07-07 17:04 古兰精 阅读(1321) 评论(1) 推荐(0) 编辑
摘要:一、需求分析 在同一个系统中,我们可能只允许一个用户在一个终端上登录,一般来说这可能是出于安全方面的考虑,但是也有一些情况是出于业务上的考虑。要实现一个用户不可以同时在两台设备上登录,我们有两种思路: 后来的登录自动踢掉前面的登录,就像大家在扣扣中看到的效果。 如果用户已经登录,则不允许后来者登录。 阅读全文
posted @ 2021-07-07 15:27 古兰精 阅读(1001) 评论(0) 推荐(0) 编辑
摘要:一、npm 演进 npm 从 v1 -v3- v5 版本的迭代都有重大的改变,一起来下看吧~。 1、npm v1 嵌套 npm 在 v3 之前 node_modules 里的包都是嵌套的。 node_modules ├── A@1.0.0 │ └── node_modules │ └── B@1.0 阅读全文
posted @ 2021-07-07 14:01 古兰精 阅读(633) 评论(0) 推荐(0) 编辑
摘要:一、Docker Stack 常用命令 命令描述 docker stack deploy 部署新的堆栈或更新现有堆栈 docker stack ls 列出现有堆栈 docker stack ps 列出堆栈中的任务 docker stack rm 删除一个或多个堆栈 docker stack serv 阅读全文
posted @ 2021-07-06 23:26 古兰精 阅读(2258) 评论(0) 推荐(0) 编辑
摘要:本篇文章翻译自adobe Web Platform Team的博客:CSS animations and transitions performance: looking inside the browser,虽然是一篇旧文,但是里面谈到的知识点很有用,对CSS的性能优化有很大帮助。 在这篇文章中, 阅读全文
posted @ 2021-07-06 22:27 古兰精 阅读(1088) 评论(0) 推荐(0) 编辑
摘要:在网上看到一个这样的问题: transform与position:absolute 有什么区别?查阅资料后发现这道题目其实不简单,涉及到重排、重绘、硬件加速等网页优化的知识。 一、问题背景 过去几年,我们常常会听说硬件加速给移动端带来了巨大的体验提升,但是即使对于很多经验丰富的开发者来说,恐怕对其背 阅读全文
posted @ 2021-07-06 22:05 古兰精 阅读(2546) 评论(0) 推荐(0) 编辑
摘要:今天遇到一个现象,设置了 position:fixed; 但是发现其行为却随文档流滚动,而不是相对于 viewport 固定在某处,所以查了一下,发现是个知识点。 一、现象背景 我理解的fixed元素是这样的:摘自 CSS布局基础 固定定位与absolute定位类型类似,但它的相对移动的坐标是视图( 阅读全文
posted @ 2021-07-06 14:49 古兰精 阅读(4491) 评论(0) 推荐(0) 编辑
摘要:Compose 项目是Docker官方的开源项目,负责实现Docker容器集群的快速编排,开源代码在https://github.com/docker/compose 上,官方文档:https://docs.docker.com/compose/ Dockerfile文件、images、容器等之类的 阅读全文
posted @ 2021-07-02 18:58 古兰精 阅读(2788) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示