自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 布隆过滤器-简述

为什么不用Map:当处理海量数据,比如千万上亿时,Map占用的内存极高,性能变差,出现碰撞的Hash碰撞的概率过高时,可能会变回链表。用途布隆过滤器用于判断海量数据内,某个对象是否一定不存在(不存在误判),或者可能存在(存在一定的误判率)原理布隆过滤器器是一个Bit向量或者说是一个Bit数组,数组的每个位置都只有0和1,0代表不存在,1代表存在。当一个key要入库时,布隆过滤器不存储这个key,而是对这个key做N次Hash后得到N个值,这N个值对应数组内的N个位置,并在数组内将这几个.

2021-12-04 16:53:06 126

原创 浅谈 Redis 的两种数据持久化方案 RDB 和 AOF

RDB(默认)备份流程:RDB 的方式是定时从主进程 fork 出一个子进程,将子进程的数据写入到硬盘中的临时文件(即所谓的快照),写入完成后替换掉旧的数据文件,默认文件名为:dump.rdb;并且这个过程中主进程还是在继续接收客户端发送过来的数据;触发条件:RDB 方式的的定时时间是可以设置的:save 900 1 : 表示15分钟(900秒钟)内至少一个键被更改则进行快照save 300 10 : 表示5分钟(300秒)内至少10个键被更改则进行快照备份方式:RDB 模式下,我们可以通

2021-11-14 01:37:10 559

原创 Docker 容器文件存储驱动 Overlay2

写在前面Docker 文件存储驱动有很多种,比如 overlay2、aufs等,可以通过命令 docker info 查看:> # docker info> Storage Driver: overlay2镜像是只读的,而容器是可读可写的(这将体现在)几个关键目录docker 默认路径:/var/lib/docker[root@VM-0-7-centos docker]# tree -L 2.├── buildkit│ ├── cache.db│ ├──

2021-11-13 16:50:24 1485

原创 Sleuth/Brave+Zipkin 实现链路日志

码字不易,转载请注明出处!!链路日志sleuth术语span(跨度):sleuth 的基本工作单元。每个 sleuth 有一个唯一的64位ID作为标识。此外还有一些其它的数据,如时间戳、标签、描述等。trace(跟踪):由一组 span 组成的树桩结构称为一个 trance。annotation(标注):表示一个行为。CS (client sent);客户端发起一个请求,这是一个 span 的开始。SR (server received):服务器接收并准备处理它。SS (serv

2021-09-04 18:31:46 407

原创 Nacos 配置中心(NacosConfig)

码字不易,转载请注明出处!!NacosConfig读取规则NacosConfig 有自己的配置文件 bootstrap.yml原因:和 application.yml 区分开来可以实现配置中心部署一套 nacos 集群(通过 spring.cloud.nacos.config.server-addr 指定),服务注册用另外一套 nacos 集群(通过 spring.cloud.nacos.discovery.server-addr 指定),互不影响。NacosConfig 采用约定大

2021-09-04 18:28:54 993

原创 SpringCloudGateway 网关

码字不易,转载请注明出处!!SpringCloudGatewaySpringCloudGateway 是 SpringCloud 的第二代网关,基于 Netty、Reactor、WebFlux构建,将会取代第一代的网关 Zuul(性能相比提升了1.6倍)注意:SpringCloudGateway 无法在 servlet 容器(如 tomcat)下工作,也无法打成 war 包,且只支持 SpringBoot 2.0+。核心概念Route(路由):转发规则,包含ID、目标URL、Predica

2021-09-04 18:26:54 1040

原创 消息驱动的微服务(RocketMQ/RabbitMQ/Kafka 整合 Spring 消息 和 SpringCloudStream 编程模型)

码字不易,转载请注明出处!!RocketMQRocketMQ 中文手册 链接同类产品比较对比 Kafka、RocketMQ、RabbitMQ 链接windows 免安装部署 RocketMQ服务端分为 NameServer 和 Broker 两个服务。可以另外单独部署可视化控制台界面。下载包RocketMQ 链接控制台界面 链接启动 RocketMQ配置环境变量 ROCKETMQ_HOME 为解压路径后 bin 文件夹所在路径,如:D:\tool\RocketM

2021-09-04 18:24:05 208

原创 Sentinel 笔记

码字不易,转载请注明出处!!SentinelSentinel中文手册 链接雪崩效应现象:A服务停服,导致B服务线程池所有线程超时,B服务也停服,以此类推。别名:级联失效、级联效应、cascading failure解决方式:超时:缩短B服务请求超时时间,加快B服务线程释放速度限流:限制B服务的流量,超过限制直接拒绝,留一部分线程提供其它支持仓壁模式:B服务每个模块维护自己的线程池,互相隔离(鸡蛋不放在一个篮子里)断路器模式:B服务设置一个规则,踩线就打开断路器,不在请求A

2021-09-04 18:18:24 427

原创 Nacos 注册中心 整合 Ribbon 和 Feign

码字不易,转载请注明出处!!常用链接Spring 生态官网 链接Alibaba 版本依赖 链接NacosNacos中文手册 链接Nacos 领域模型namespacegroupserviceclusterinstance元数据服务注册服务发现Ribbon手动实现客户端RestTemplate负载均衡通过 Ribbon 实现RestTemplate客户端调用负载均衡(@LoadBalanced)设置/重写 Ribbon 暴露的配置接口实现方式

2021-09-04 18:15:18 412

原创 Windows进程(PID)管理命令

查看端口占用情况netstat -ano | findstr 9091查看进程号(pid)对应的进程tasklist | findstr 14544删除进程号(pid)所在的进程taskkill /F /pid 14544查看帮助taskkill /?

2021-08-01 18:37:48 1094

原创 (原创)领域模型中贫血模型与充血模型的简单区别

目录一、领域模型二、区分1.贫血模型2.充血模型一、领域模型领域模型(Domain Model)是对现实世界中对象的表示,又称为领域对象模型、概念模型、业务实体,它通常都具有目标对象的特征和行为,当多个领域模型结合在一起时,就可以完成各种业务逻辑,其实也是对现实世界中对象之间关联关系的一种还原。这里主要理解领域模型中的两种相对的模型:贫血模型、充血模型。二、区分...

2020-03-16 22:53:56 2012

原创 (原创)Spring 切面编程 - 简单理解 AOP 框架

目录一、AOP 常用术语二、术语理解1.连接点(Jion point)2.切点(Pointcut)3.通知(Advice)4.切面(Aspect)5.织入(Weaving)6.引入(Introduction)一、AOP 常用术语连接点(Join point) 切点(Pointcut) 通知(Advice) 切面(Aspect) 织入(Weaving)...

2020-03-08 15:48:22 122

原创 (原创)Spring 依赖注入 - 运行时进行值注入的两种方法

目录一、背景二、用法介绍1.属性占位符2.Spring表达式语言(SpEL)一、背景通常我们讨论依赖注入时,指的都是将一个 bean 引用注入到另一个 bean 的属性或构造器中,它通常是指对象与对象之间的关联。除此之外,bean 的装配还可以将一个值注入到 bean 的属性或构造器中。但是值注入经常会造成硬编码,如下代码所示:@Beanpublic People ...

2020-03-04 23:23:23 495

原创 (原创)Spring 依赖注入 - 通过控制作用域解决 bean 的重用或污染问题

一、背景在默认情况下,Spring 上下文中所有的 bean 都是以单例的形式创建。但是在一些场景中,会发现一个 bean 是可能带有状态的,因此重用并不安全。或者是某些场景下,希望 bean 能带有某些不同的值,如会话中不同用户的信息。这时候就需要控制 bean 的作用域了。二、分类Spring 中定义了 bean 有以下几个作用域:单例(Singleton):整个上下文中,每个...

2020-03-04 16:07:53 159

原创 (原创)Spring 依赖注入 - 自动装配歧义性的两种解决方式

一、背景在进行自动装配中,Spring 发现存在多个符合依赖条件的 bean 时,会产生歧义性,并抛出异常。例如:// 自动装配@Autowiredpublic void setPeople(People people) { this.people = people;}// 组件1@Componentpublic class Boy implements Peop...

2020-03-01 17:37:06 261

原创 (原创)Spring 依赖注入 - @Conditional 注解实现条件化创建 Bean

目录一、背景二、使用方法一、背景Spring 4 开始引入了一个新的 @Conditional 注解,它可以用到带有@Bean注解的方法上,以实现该 bean 在特定条件下创建。值得一提的是,Spring 4 之后,@Profile 注解也进行了重构,使其基于 @Conditional 来实现。二、使用方法在带有 @Bean 注解的方法上添加 @Conditional 注解...

2020-03-01 16:19:15 435

原创 (原创)Spring 依赖注入 - 使用 Profile 解决环境迁移问题

一、场景在软件开发过程中经常需要将应用程序从一个环境迁移到另一个环境中,比如从开发环境迁移到测试,再从测试发布至生产环境,而这些环境的数据库配置,加密算法甚至与其他系统的对接集成配置可能都是不一样的。若不希望每次迁移都重新修改配置,重新重新编译构建,则可以考虑使用 Spring 提供的 Profile 解决方案。需要注意的是,Profile 并不是在构建时做出决策,而是在运行时才进行判断。...

2020-03-01 15:36:30 235

原创 (原创)Spring 依赖注入 - 简单总结 bean 的装配方法

目录一、Spring依赖注入(DI)的本质:装配二、综述1.Spring提供三种主要的装配机制:三、要点记录1.自动装配1.1 用于将POJO纳入Spring容器管理的注解含义:1.2 启动组件扫描1.3 自动装配注解2.基于Java风格的显示配置3.基于XML的显示配置4.JavaConfig和XML在配置中的相互引用一、Spring依赖注入(DI...

2020-03-01 14:27:04 245

原创 (原创)Java冷知识

《2018.06.14》1.break和continue可以使用标签跳出多层。2.使用foreach循环迭代数组元素时,对元素进行修改或赋值只是修改了临时变量,离开循环体这个作用域后,数组的值不会改变。3.int是基本类型,但int[]是引用类型。4.数组初始化时不能同时指定长度和初始值,即静态初始化和动态初始化不能同时使用。5.数组初始化时(即new时),一定要让系统明白它的...

2020-03-01 11:22:14 164

原创 (原创)MySQL各种约束的简单区别

1.主键约束1.1 主键分类单字段主键和多字段联合主键两种。1.2 主键列的值不能为空1.3 主键可以提升查询速度2.外键约束2.1 子表(从表)中的外键可以为空值,若不为空,则必须为父表(主表)中主键的某个值。2.2 外键约束不能跨引擎使用。3.非空约束3.1 可以将多列设为非空。4.唯一性约束4.1 UNIQUE的列要求值唯一,允许为空,但是只能有一行为...

2019-05-12 16:42:47 177

原创 (原创)Java常用加密技术区别

目录一、单向加密1.MD52.SHA二、双向加密A.对称加密1.DES2.AESB.非对称加密1.RSA三、其他1.Base64一、单向加密特点:又称“哈希算法”,或“摘要算法”,做信息摘要,加密结果长度固定,且无法解密。同一个文件加密结果相同,不同文件可能出现相同的加密结果,但是概率很小,这种出现相同结果的现象称之为:碰撞。 用途:单向加密主...

2018-08-21 16:47:22 601

原创 (原创)安卓原生加载框的简单示例

1.定义一个全局的变量(为了取消加载框的时候找得到它)//加载框变量private ProgressDialog progressDialog;2.显示加载框public void showProgressDialog(Context mContext, String text) { if (progressDialog == null) {

2017-11-15 09:40:59 3914

原创 (原创)狄克斯特拉算法

一、用途1.广度优先搜索用于计算非加权图中的最短路径2.狄克斯特拉算法用于计算加权图中的最短路径(不能带有负权边)备注:当图的每条边都带有一个数字时,这些数字成为权重。带权重的图称为加权图,反之称为非加权图。二、实现步骤1.从起点开始。2.找到该点最便宜的邻居节点。3.若该节点的开销优于之前记录的开销,则更新该节点的开销及该节点的父节点。4.找到第二

2017-11-13 21:10:36 371 2

原创 (原创)广度优先搜索解决最短路径问题

一、用途广度优先搜索用于解决两种问题:1.从某点到某点是否存在路径?2.若存在,最短的是哪条?二、简单介绍图1.图有点和边组成。2.当图中的所有边的指向都是单向的,这种图叫做有向图。若A指向B,则B为A的邻居。3.当图中存在一条或一条以上的没有箭头的边,即A指向B,且B指向A,这种图成为无向图。其中,A和B互为邻居。4.如下图,其中若从A出发,则B、C、D是

2017-11-13 20:23:10 6373 1

原创 (原创)散列表 hash table

一、什么是散列表散列表是一种结合了散列函数和数组的数据结构。二、散列函数散列函数是一种将输入映射到数字的函数,它的执行时间为O(1)。散列函数需要满足一下要求:a. 映射必须是一致的,即相同的输入,必须得到相同的输出。b. 它应当尽可能的将不同的输入映射到不同的输出。为什么是尽可能呢?后面我们会在冲突部分提到。那么,散列函数输出的数字有什么用呢?我们可以将该数字对应到数组的

2017-11-08 22:38:14 241

原创 (原创)选择排序与快速排序及D&C算法的延伸

一、选择排序(尊重原创,转载请注明出处。)选择排序是一种速度较慢的排序算法,运行时间为O(n2),这里只进行简单的逻辑分析和实现。大致是对待分析的数组(或者其它数据结构)尽心一遍遍的遍历,每次都找出里头最大或最小的那个,然后放入一个新的数组。实现如下:def find_max(list): max = list[0] index = 0; for i in ra

2017-11-08 21:21:10 564

原创 (原创)递归

一、递归的核心在于基线条件和递归条件例如:下面是一个由1加到n的函数:def add_self(n): if n<=1: return n else: return n+add_self(n-1)其中,第二行的if就是基线条件,else就是递归条件。二、调用栈递归在计算机的内部的实现是通过调用栈实现的。当函数进入递归,调用

2017-11-08 20:45:12 176

原创 (原创)数组与链表

一、区别1 数组:1.1 优势:数组在内存中的存放是且必须是相连的,这使得其在随机读取的时候有得天独厚的优势。假设某个数组的起始地址为:00,当我们需要读取第5个值时,只需要进行简单的数学运算,就能知道这个值所在的地址是:04,而不需要进行遍历。1.2 劣势:也是因为数组需要的相连存放,所以在插入与删除时效率低于链表。假设当数组申请开辟的空间为10个,当你需要add第11个元素时,就需

2017-11-08 20:04:01 192

转载 [C语言]低代价优先返回原则

void select(p) { a = calA(p); b = calB(p); c = calC(p); d = calD(p); if (a>0 && b 0 && c 100 && d > 5) { OK } else { FAIL }}估计很多人都很乐意写这样的代码,感觉上就是逻辑清晰,计算数据,筛选数据,两

2017-08-22 11:23:31 269

原创 (原创)CentOS环境下搭建Nagios系统

一、本次搭建的环境:操作系统:centos6.5 minimal(64位 精简版)镜像:CentOS-6.5-x86_64-minimal.isoCentos6.5minimal版64位iso下载链接:http://www.centoscn.com/plus/download.php?open=2&id=2196&uhash=2af220a6805385dda088ff03

2017-06-29 10:05:13 709

原创 (原创)微信公众号开发的简单模板及配置流程简介

/**公司需要,学了一下微信公众号开发,写这篇博客的时候已经开发结束半个月了*回来记录一下,采用php语言(现学的)进行开发,不足之处还望提出来共同探讨*/(原创不易,转载请注明出处!)提示:目前微信公众号包含订阅号和服务号两种。详细区别官网有介绍,这里要说的是订阅号如果自己配置服务器url的话,是没有自定义菜单栏功能的,因此配置服务器url后只能接受用户的手动

2017-06-01 22:19:08 5072

转载 linux启动过程

转载:http://blog.itpub.net/7668319/viewspace-856199/linux系统的启动过程是由很多步骤组成的,但是,无论你是启动一个标准的x86桌面计算机,还是一个嵌入式PowerPC的目标板,大多数的流程是惊 人得相似的。这篇文章,探索了linux从最初的启动准备到用户空间中某个程序被开启之间的启动过程,跟随这个流程,你还能学到其他许多与启动有关的知 识,例

2016-11-17 14:31:49 267

ionic-datepicker-oysq

这是一个封装好的ionic日期选择器,下载解压,点击date.html即可查看效果。

2017-06-02

空空如也

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

TA关注的人

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