自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 资源 (2)
  • 收藏
  • 关注

原创 spring-security的基本概念和原理

前言Servlet安全性:宏观视图本节讨论基于Servlet的应用程序中的Spring Security高层架构。我们在引用的“身份验证、授权、防止攻击保护”部分中构建这种高层次的理解。Filters的回顾Spring Security的Servlet支持基于Servlet Filter,因此首先了解Filter的作用是有帮助的。下图显示了单个HTTP请求的处理程序的典型分层。客户端向应用程序发送请求,容器创建一个FilterChain,其中包含Filter和Servlet,该Servlet应该

2021-06-14 21:35:04 51

原创 spring-验证、数据绑定和类型转换

前言数据填充将验证视为业务逻辑有利有弊,Spring为验证(和数据绑定)提供了一种不排除其中任何一种的设计。具体来说,验证不应该绑定到web层,而且应该易于本地化,而且应该可以插入任何可用的验证器。考虑到这些问题,Spring提供了一个Validator契约,它既基本又在应用程序的每一层都非常有用。数据绑定对于将用户输入动态绑定到应用程序的域模型(或用于处理用户输入的任何对象)非常有用。Spring提供了恰当命名的DataBinder来完成这一任务。Validator和DataBinder组成了val

2021-03-13 13:13:43 52 1

原创 spring-aop切面

前言切面(Aspect)是类(Class)的一个补充,两者正交互补,让spring的Ioc容器功能得到大大的增强。使用Spring进行面向方面的编程面向方面编程(AOP)是对面向对象编程(OOP)的补充,它提供了考虑程序结构的另一种方式。在OOP中模块化的关键单元是类,而在AOP中模块化的单元是方面。方面支持对跨多种类型和对象的关注点(如事务管理)进行模块化。(在AOP文献中,这种关注通常被称为“横切”关注。)Spring的一个关键组件是AOP框架。虽然Spring IoC容器不依赖于AOP(这意味

2021-02-17 22:02:41 98

原创 visuAlgo-排序算法

前言

2020-12-06 23:36:55 128

原创 powershell-发布模块到gallery

前言

2020-11-21 20:40:57 95

原创 redis-各种数据类型和类比

前言redis提供丰富的数据接口,那么这些数据结构可以类比jdk中的哪些数据结构呢?

2020-11-21 20:26:49 66

原创 mysql-一些常识

前言对软件系统的理解和认知,决定了开发者使用它们的高度,下面来简单聊聊关于mysql的一些常识。编码utf8mb4(most bytes 4)才是真正的utf8。时间戳修改字段为当前时间戳,需要用alter table change column语法。ALTER TABLE `table` CHANGE COLUMN `column` `column` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'comment';ALTER TABLE `

2020-11-08 12:04:55 58

原创 java-jdk中的工具使用介绍

前言

2020-11-08 12:01:11 174

原创 速度-常见的优化思路

前言空间换空间缓存https://www.jianshu.com/p/bbf684456eeb

2020-11-07 18:59:27 148

原创 git-变基(rebase)的原理和最佳实践

前言在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。其中merge是一个三方(分支master最新快照,分支dev最新快照,分支master和dev的共同祖先快照)合并的方式来整合修改,并且整合之后会生成新的提交快照。merge之前的三方(c4,c5及共同祖先c2):merge之后产生新的提交快照(c6)merge之后,iss53分支的c3和c5提交快照消失了。为了避免提交快照因为合并而移除的问题,发明了rebase方法来整合不同分支的修改。更多mer

2020-11-01 12:37:43 246

原创 maven-生命周期

构建生命周期由阶段组成每个构建生命周期都是由不同的构建阶段列表定义的,其中一个构建阶段表示生命周期中的一个阶段。例如,默认的生命周期包括以下几个阶段(完整的生命周期阶段列表,请参考生命周期参考):validate:确认项目是正确的,所有必要的信息都是可用的compile:编译项目的源代码test:使用适当的单元测试框架测试已编译的源代码。这些测试不应该要求打包或部署代码package:将编译后的代码打包成可分发的格式,比如JARverify:对集成测试的结果进行任何检查,以确保满足质量标准

2020-10-31 21:21:02 112

原创 mathematica-J/Link用户指南

J/Link简介欢迎访问J/Link,这是一个集成了Wolfram语言和Java的产品。J/Link允许您以一种完全透明的方式从Wolfram语言调用Java,它还允许您从Java程序使用和控制Wolfram语言内核。对于Wolfram语言用户来说,J/Link使整个现有和未来的Java类成为对Wolfram语言环境的自动扩展。对于Java程序员来说,J/Link将Wolfram语言转换为脚本shell,允许您一次一行一行地试验、构建和测试Java类。它还使Java成为编写使用Wolfram语言的计算服务

2020-10-25 21:01:51 145

原创 spring cloud-基本架构

前言spring cloud是把大的服务分解为小的服务,形成一个分布式的集群,各个服务之间相互依赖,由注册中心统一管理,网关统一发布,配置中心统一配置。总体形成以下的架构图:

2020-10-17 19:53:45 49

原创 redis-分布式锁的使用方法

前言但单机环境,锁的实现基本上是java的JUC框架和synchronized volatile等关键字。整个JUC框架包含了基本的抽象类(AQS)和锁的实现类(ReentrantLock)以及并发工具类(CountDownLatch、CyclicBarrier和Semaphore等),这些都为日常开发中对于过程同步问题提供了不少的便利。在分布式系统中,有些过程也需要同步,然后串行执行。那么有没有好用的框架可以提供这种便利性呢?答案是有的,那就是spring-integration的spring-inte

2020-10-17 19:51:31 150 2

原创 JPA-常见的优化点

前言JPA作为主流的持久层框架,被广大程序员所使用,基本的使用方法请参考JPA的常见用法。虽然JPA在编码上提供了很多的便利,但是其接口提供的插入数据的方法效率非常低,下面就简单介绍下效率低的原因和解决办法。save和saveAll方法单从方法签名来看,save方法用来插入单个数据,而saveAll方法插入多个数据。但是仔细看saveAll的方法实现,会发现saveAll里面是循环调用save方法来插入数据,所以很自然地以为saveAll和save方法插入数据的时间差不多。但是实际测试的结果却表明两者

2020-10-17 18:59:26 472

原创 docker-部署logstach

前言logstach是一个采集日志的框架,本文介绍如何在docker上部署logstash系统。更多信息请参考官方文档。管道配置必须将管道配置放在Logstash可以找到的位置。默认情况下,容器将在/usr/share/logstash/pipeline/中查找管道配置文件。在本例中,我们使用绑定装载的卷通过docker run命令提供配置:docker run --rm -it -v ~/pipeline/:/usr/share/logstash/pipeline/ docker.elastic

2020-10-04 20:16:23 189

原创 docker-部署kibana

前言kibana是elasticsearch可视化工具,能够方便地使用elasticsearch的搜索数据,下面详细介绍如何使用docker安装kibana。更多信息请参考官方教程。拉取镜像docker pull docker.elastic.co/kibana/kibana:7.9.2在Docker上运行Kibana进行开发Kibana可以快速启动并连接到本地Elasticsearch容器用于开发或测试使用以下命令:docker run --link YOUR_ELASTICSEARCH_C

2020-10-04 20:15:46 500

原创 docker-部署Elasticsearch

前言Elasticsearch是一款开源的搜索引擎框架,提供强大的搜索功能。下面简单介绍如何使用docker来部署Elasticsearch。更多信息请参考官方文档。

2020-10-04 20:15:21 317 1

原创 docker-部署filebeat

前言filebeat是一个轻量级的日志收集工具,相比logstash,功能更加单一,但是占用的资源较小,下面介绍如何使用docker来部署filebeat。更多信息请参考官方文档。拉取镜像docker pull docker.elastic.co/beats/filebeat:7.9.2运行Filebeat设置运行Filebeat设置命令将创建索引模式和负载可视化,指示板和机器学习工作。运行这个命令:docker run \docker.elastic.co/beats/filebeat:7

2020-10-04 17:40:02 354

原创 wsl-常见问题

基于wsl2的docker如何迁移镜像文件默认基于wsl2的docker desktop的镜像是有wsl2管理的,而wsl2一般在c盘。当下载的镜像多了之后,就会把C盘爆满。具体解决方法参考:github解决方法。

2020-10-04 11:56:31 884

原创 jcs-基本概念和使用

前言如果一个计算非常耗时,每次获取都重新计算,会消耗很多额外的计算资源。对于这些耗时的计算结果,可以存储在缓存中,下次需要的时候,直接访问缓存中的内容,而不是再重新计算一遍。对于易变性还比较高的数据,可以设置数据有效期,一旦超过有效期,缓存数据被移除,触发重新计算。下面来看看apache的缓存实现:java cache system。基本概念元素(elements)元素是放入缓存中的对象,可以通过键来访问。区域(regions)缓存是多个字典的集合,每个字典被称为region,每个region

2020-09-12 23:15:43 616

原创 docker-日志文件

前言部署docker的服务器,好好的磁盘突然就满了。从根目录查看每个文件夹和文件大小,发现是/var/lib/docker/containers下的容器的日志文件占了大量的磁盘空间,单单一个容器的日志就占了40G的24G。使用du -sh *来查看当前目录的所有文件和文件夹大小配置docker单个容器的日志大小既然找到了原因,解决方法自然明确了:限制docker单个容器的日志文件大小。compose.yml文件配置定义日志文件的大小,参考官网。logging: driver:

2020-09-11 20:24:36 80

原创 jedis-事务和锁

前言通过使用事务,可以保证想要执行的多个命令要么全部被执行,要么一个都不执行。下面演示如何用jedis进行事务操作。样本代码直接开启事务开启并提交事务void testTransaction() { Transaction transaction = pool.getResource().multi() for (int i = 0; i < 100; i++) { transaction.set("transaction" + i, "transaction

2020-08-30 18:10:29 74

原创 jedis-pipeline批量操作

前言redis作为一个缓存服务器,每个命令都要经过网络才能到达服务器。而命令在网络传输的过程中必然消耗时间,如果命令在网络传输的时间和命令执行的时间在一个数量级(甚至更多)的话,会造成大量的无效时间浪费。为了解决这个问题,redis引入了pipeline的概念,即把多个命令打包一起发送服务器,然后把多个结果一起返回。下面演示如何使用jedis进行pipeline批量操作。样本代码单条发送void testNormal() { long s = System.currentTimeMillis

2020-08-29 17:38:34 196

原创 maven-settings.xml详解

前言http://maven.apache.org/settings.html

2020-08-23 18:24:36 100

原创 forkjoin-分叉合并框架

前言

2020-08-22 21:50:01 75

原创 spring-单元测试概要

前言

2020-08-19 10:09:48 65

原创 wsl-windows subsystem for linux环境搭建

前言现在windows系统除了装虚拟机运行linux环境之外,还可以创建wsl来运行linux环境。apt加速sudo cp /etc/apt/sources.list /etc/apt/sources.list.bakdeb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic main restri

2020-08-08 22:24:12 106

原创 cloud-注册中心

注册中心

2020-08-03 10:44:34 147

原创 spring cloud commons-分布式程序概述

前言Cloud Native是一种应用程序开发风格,它鼓励在持续交付和价值驱动开发领域轻松采用最佳实践。一个相关的规程是构建12因素应用程序,其中开发实践与交付和操作目标保持一致——例如,通过使用声明式编程、管理和监视。Spring Cloud以许多特定的方式促进了这些风格的开发。起点是一组特性,分布式系统中的所有组件都需要方便地访问这些特性。Spring Boot包含了其中的许多特性,Spring Cloud构建在Spring Boot之上。Spring Cloud还提供了两个库:Spring Clo

2020-08-03 09:36:14 356

原创 powershell-基础语法和常用函数说明

前言平常日常开发过程中,经常需要做一些命令式的步骤,比如上传打包,上传服务器,运行程序等。这些步骤本身不难,如果重复做的话,容易出错。所以最好封装成命令文件,一键执行即可。命令行windows有cmd,linux有bash等,难道就没有一个跨平台的命令行吗?答案是有的,这就是powershell。powershell本来是windows下的脚本,2016年之后支持跨平台。跨平台打开powershell的安装文档,会发现powershell支持的平台蛮多:查看版本get-host查看帮助

2020-08-02 19:55:43 446

原创 ssh-window上的免密登录

前言通常通过ssh实现远程主机的通信。一般有很多开源和收费的软件,提供图形界面,非常方便。但是有时,对于项目中特定的几个操作,直接包装成脚本可能更加方便。这时就需要直接执行ssh命令了:ssh,scp,sftp。安装ssh安装ssh的方法一般有:下载ssh安装包,解压安装首先安装包管理工具scoop,再安装ssh免密登录ssh免密登录,需要把本机器的公钥复制到远程机器上。是否有秘钥首先查看本机器是否已经生成了秘钥。cd ~/.sshls如果目录下有:id_rsaid_rs

2020-07-30 14:01:29 230

原创 cloud-追踪中心

前言在一个分布式系统中,服务之间相互依赖调用。一个请求有时需要经过几次转发之后才能到达最终的处理服务。这样,每个请求经过了哪些服务,每个服务消耗了多长时间,是后台开发人员迫切关系的问题。zipkin就是这样的一个分布式追踪系统。术语Span:基本工作单位。例如,发送RPC是一个新跨度,就像发送对RPC的响应一样。span由一个惟一的64位ID标识,并由另一个64位ID标识该span所在的跟踪。Span还有其他数据,比如描述、带时间戳的事件、键值注释(标记)、产生它们的跨越的ID和进程ID(通常是IP地

2020-07-14 14:48:26 55

原创 cloud-配置中心

前言每个spring-boot程序都依赖于一些特定的第三方数据源,在一个分布式系统中,需要有一个这样的数据源服务器,其他的微服务能够从这个数据源拿到最新的数据。spring cloud中实现这个功能的组件就是spring cloud config server。spring cloud config serverSpring Cloud配置服务器为外部配置(名称-值对或等效的YAML内容)提供了基于HTTP资源的API。通过使用@EnableConfigServer注释,服务器可以嵌入到Spring引

2020-07-13 15:47:35 142

原创 Spring Cloud Bus-用法和意义

前言Spring Cloud Bus用轻量级消息代理连接分布式系统的节点。然后可以使用此代理广播状态更改(如配置更改)或其他管理指令。一个关键的想法是,总线就像一个扩展的Spring引导应用程序的分布式执行器。不过,它也可以用作应用程序之间的通信通道。该项目为AMQP经纪人或Kafka提供启动器作为运输工具。快速启动如果Spring Cloud Bus检测到自己在类路径上,那么它通过添加Spring Boot autconfiguration来工作。要启用总线,请将A或B添加到依赖项管理中。其余的工作

2020-07-13 11:17:17 2522

原创 cloud-网关

前言分布式系统中,网关是非常重要的角色。一个优秀的网关需要提供以下的特性:构建于Spring Framework 5、Project Reactor和Spring Boot 2.0之上。能够匹配任何请求属性上的路由。谓词和过滤器是特定于路由的。Hystrix断路器集成。Spring Cloud发现客户端集成。易于编写谓词和过滤器。请求速率限制。路径重写。spring cloud gatewayspring cloud gateway就是这样一个满足上诉所有特性的网关。下面是基本的配

2020-07-11 10:50:05 89

原创 mongodb-聚合管道

管道MongoDB聚合管道由多个阶段组成。每个阶段在文档通过管道时转换文档。管道阶段不需要为每个输入文档生成一个输出文档;例如,有些阶段可能会生成新的文档或过滤掉文档。管道阶段可以在管道中出现多次,但$out、$merge和$geoNear阶段除外。有关所有可用阶段的列表,请参见聚合管道阶段。MongoDB在mongo shell中提供db.collection.aggregate()方法和用于运行聚合管道的聚合命令。例如,聚合管道的使用,请考虑使用用户首选项数据和邮政编码数据集进行聚合。从Mon

2020-07-03 10:17:27 105

原创 mongodb-聚合查询

前言

2020-07-03 10:14:50 148 5

原创 mysql-内置函数

前言日常情况下,需要进行一些复杂的查询,常规的字段选择和参数比较不再能满足需求。这时候,就需要mysql函数来支持。有人说,把数据查询到内存在处理不是一样的吗?这么做也可以实现效果,但是有很大的缺陷,最明显的就是数据量大的时候会占用太多的内存和较多的网络数据传输量;其次是mysql内置函数经过了很多优化,性能会好一些。最新最全的mysql函数请参考mysql函数。下面就常用的mysql函数进行说明。表达式可以在SQL语句中的多个地方使用,例如在SELECT语句的ORDER BY或HAVING子句中,在

2020-06-22 17:53:26 89

原创 redis-存储n个键rdb文件的大小

前言使用jedis,测试下redis的rdb文件大小和键数量之间的关系。结果键的个数rdb文件大小耗时1000069K11026ms100000947K108313ms100000010615K1018632ms10000000107294K2~3h可视化rdb文件和键数量的关系...

2020-06-15 07:48:21 395

powershell_7.0.3-1.ubuntu.16.04_amd64.deb

ubuntu.16.04 powershell安装包,从gitlab下载太慢了,传一份到这里节省时间成本,不谢啊

2020-07-25

mesos设计的论文

We present Mesos, a platform for sharing commodity clusters between multiple diverse cluster computing frameworks, such as Hadoop and MPI. Sharing improves cluster utilization and avoids per-framework data replication. Mesos shares resources in a fine-grained manner, allowing frameworks to achieve data locality by taking turns reading data stored on each machine. To support the sophisticated schedulers of today’s frameworks, Mesos introduces a distributed two-level scheduling mechanism called resource offers. Mesos decides how many resources to offer each framework, while frameworks decide which resources to accept and which computations to run on them. Our results show that Mesos can achieve near-optimal data locality when sharing the cluster among diverse frameworks, can scale to 50,000 (emulated) nodes, and is resilient to failures.

2020-02-02

空空如也

空空如也

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

TA关注的人 TA的粉丝

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