自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yingqi的博客

个人的学习总结,一些原因请看第一篇

  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于spring boot高性能高并发秒杀系统方案及优化(第一部分:初步方案+分布式会话+参数效验解析)

目录项目初步搭建重点:redis的API封装,(设计模式适配器模式)重点:通用异常和通用响应实现用户登录以及分布式session功能重点:集成Jsr303参数效验重点:分布式session的设计重点:自定义参数注入(参数解析器)秒杀功能开发及管理后台基于spring boot高性能高并发秒杀系统方案及优化(第二部分:秒杀优化演进+接口隐藏+接口限流)项目源码...

2019-11-24 17:42:23 2728

原创 基于 SpringCloud 微服务架构的广告系统(第一部分:eureka、zuul、通用模块)

目录广告系统架构图一、eureka服务二、zuul网关zuul启动与自定义过滤器(实现访问记录)示意图三、通用模块(统一响应与统一异常)统一响应(对象)示意图统一响应示意图统一异常(对象)示意图通用索引表这不是一个完整的广告系统,主要涉及两方面 广告检索 、广告投放 ,这两个方面我感觉是最重要的,但是也使用Kafka的消息传递,为剩下的曝光见监测、报表 ...

2019-11-05 16:15:34 1838 1

原创 借助 Visual Studio Code 将 Docker 容器用作开发环境

这个微软教程写的真不错。推荐一波。中文连接,可能翻译有点小错误:https://docs.microsoft.com/zh-cn/learn/modules/use-docker-container-dev-env-vs-code/英文版本:https://docs.microsoft.com/en-us/learn/modules/use-docker-container-dev-env-vs-code/...

2021-07-19 17:55:44 539

原创 ssh无密码登陆

安装ssh无密码登陆方便我们后续的无密码登陆别的机器,例如要登陆Hadoop、spark、hive等等,也方便我们在公司使用多台服务器。ssh无密码登陆的原理:典型的非对称加密,跟pgp加密是类似的。1.A私匙生成A公钥,A公钥发往B机器,B机器保存好信息公钥; 2.A机器先B机器发起登陆通讯,B机器使用刚刚保存的公钥信息,生成登陆密文,发回给A机器; 3.A机器使用私钥解密 ...

2020-03-09 20:51:54 404

原创 腾讯云服务器Linux系统--安装python3.7.6

window版的安装比较简单,注意安装界面把 add path 这个选项勾上,一路确定就可以了。这里主要将Linux安装python3,pip。先说一个坑吧! 自己参照网上的博客去安装,可以正常的运行python3 ,但是pip一直都运行不了,显示没有安装。重复了几遍,贼累!(环境问题)其实也是编译需要的库,本地没有,但是可以编译成功,这些坑你不用就不会知道,你要解决的时候,又需要重新编译...

2020-02-08 16:00:21 2101

原创 airflow使用MySQL数据库(第三方数据库详解)

airflow 是一个python写的调度平台,大致的认识是 : 定义一些任务(脚本、命令、连接...),airflow调度平台可以自动去运行,后面会给出运行日志(UI界面)等,这个UI界面(WEB端)有一些复杂的分析图谱,可以做的事情就很多了。下面是介绍airflow使用非默认的数据库,默认是SQLite ,官方的介绍不够仔细,这篇是个人总结。官方地址:http://airflow.ap...

2020-02-03 22:08:33 5559

原创 复习:GoF的23种设计模式之Decorator模式(结构型)

Decorator模式(装饰、修饰)定义:一种动态地往一个类中添加新地行为(功能)的设计模式。装饰模式相比生成子类更灵活,这样可以给某个对象而不是整个类添加一些功能。Decorator模式和Composite模式很类似,都是实现容器与内容、装饰与被装饰的一致性,可以再次查看文章:复习:GoF的23种设计模式之Composite模式(结构型)。Decorator模式实现类继承再编译时增加行为...

2019-12-26 16:03:01 172

原创 复习:GoF的23种设计模式之Composite模式(结构型)

Composite模式(合成、混合)Composite模式例子这个模式和我们的文件系统类似,我们将文件夹当作容器,单一文件当作内容,文件夹中可以迭代放入文件夹,文件夹可以放入内容。Composite模式:能够使容器与内容具有一致性,创造出递归结构。示例代码:public class CompositeTest { public static void main(S...

2019-12-25 10:08:54 195

原创 复习:GoF的23种设计模式之Strategy模式(行为型)

Strategy模式(策略)策略模式:指对象的某种行为,对象在不同的场景有不同实现算法。如 自己 在女朋友身边会表现充满爱意,一种想保护的行为; 自己 在妈妈身边会表现感恩父母养育,一种不愿父母继续辛苦工作的行为; 自己 在陌生女性身边会表现,会先思考对方是否需要帮助的状态。上面自己在不同场景三种行为,也可看作整体地替换算法。自己是抽象地,在不同场景实现不同算法。...

2019-12-24 19:44:55 164

原创 复习:GoF的23种设计模式之Bridge模式(结构型)

Bridge模式(桥梁)谈这个模式前,我们先讨论一下,子类继承父类这个问题?当父类存在抽象方法时,子类继承父类,子类一般是实现父类的抽象方法。 当父类非抽象类时,子类继承父类,子类一般是增加功能(方法)。假如:我们经常继承父类,有实现父类抽象方法的,也有继承父类增加方法(功能)的。那么会出现如下图的层次结构:不恰当的层次结构这个一种不恰当的层次结构,因为第二次实现抽象类方法的...

2019-12-23 11:25:51 137

原创 复习:GoF的23种设计模式之AbstractFactory模式(创建型)

AbstractFactory模式(抽象工厂)在23种模式中,我感觉是最难的,当时还循环看了几次。you准备好!!抽象工厂定义;提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂简单讲:就是一组Factory Method模式(工厂方法)的集合,要是不认识工厂方法模式,或者没回忆起工厂方法模式的你,请右转复习:GoF的23种设计模式之Factory Metho...

2019-12-22 16:19:21 138 1

原创 复习:GoF的23种设计模式之Builder模式(创建型)

Builder模式(生成)我们创建复杂的对象时,会使用到此Builder模式,定义:它可以将复杂对象的初始化过程 抽象出来,使这个抽象过程的不同实现方法可以构建不同的表现(属性)对象。通过一步步构建,最终完成对象的构建。后面可以与抽象工厂做对比。其实,还是有点绕,那就先认定一点builder模式==创建复杂对象,再往下看。灵魂作图示例代码:public class Bui...

2019-12-21 15:30:42 147

原创 复习:GoF的23种设计模式之Prototype模式(创建型)

闲扯一下,我们都吃过月饼吧,那大家知道月饼是怎么制作出来的吗?(以前的工艺)我小时候有经历过月饼的制作,提前买好面粉、糖、摸具、鸭蛋黄等,将面粉揉成团然后再用杆搓成面皮,将鸭蛋黄、糖配料什么的一股脑的卷成一团,用面皮包裹好,再使用模具整好形状,烤至金黄,出锅开吃。Prototype模式(原型)上面讲的使用模具整理好月饼,也可以看做一个原型模式,我们制作模具的过程,就已经完成了一个形状满...

2019-12-20 15:01:18 135

原创 复习:GoF的23种设计模式之Singleton模式(创建型)

Singleton模式(单例)此模式也是我们不知不觉就会使用到的设计模式,例如我们将 配置文件映射为对象时,全局获取配置信息都使用此相同的对象。单例模式,使用在,单例对象的类确保任何情况下都绝对只有同一个实例,整个系统都使用同一个对象。也就是 一个类只能有一个引用和一个实例方法。单例模式在Java中有两种方式根据单例对象的类初始化的不同分为两种构建方式:懒汉方式,指系统启动完成...

2019-12-19 23:42:10 149

原创 复习:GoF的23种设计模式之Factory Method模式(创建型)

Factory Method模式(工厂方法)这个模式我们有一个熟悉的名称,叫工厂模式,将生成实例的框架和实际负责生成实例的类解耦。概念比较难理解,我大概用自己的语言总结一下,一个工厂,必然就有产品,假如就是一个大闸蟹吧,现在大闸蟹那么贵,以至于每一个大闸蟹都有一个身份验证码,由这个码我们可以查到地址、水质、健康状态等等信息。现在有个问题,我们怎么生成这个码呢?也就是怎么生成大闸蟹这个类...

2019-12-19 21:30:02 188

原创 复习:GoF的23种设计模式之Template Method模式(行为型)

Template Method模式 (模型)我们先介绍什么是模板就如我们打开CSDN的每一个页面,都有一个已备案提醒的尾标,每一个页面都有,那么是不是每个页面都去添加相同的代码呢?答:不是的,我们先写一个模板,此模板就具有尾标,我们每个页面都是借助这个母模板,那么我们就不需要手动的去添加了。那什么是 Template Method(模型)模式答:在父类中定义处理流程的框架...

2019-12-18 23:48:57 123

原创 复习:GoF的23种设计模式之adapter模式(结构型)

adapter模式(适配器模式)什么是适配器模式呢?? 我先讲一个小小的生活常识吧,我们现在的家用电源是交流电220V的,电子元件大都是使用直流电的,就好比笔记本电脑,电源线上加有一个大大的适配器。此适配器的作用:将220V的交流电(被适配)转换(适配器)为24V的直流电(需求)。在设计模式中,适配器模式,是将一个类的接口转换成用户所需要的,使得两个不同接口的类能再次一起工作。有两类适...

2019-12-17 11:56:36 118

原创 复习:GoF的23种设计模式之iterator模式(行为型)

iterator模式(迭代器模式)就如java集合中的iterator类似,是一种最简单也是最常用的设计模式。它可以让用户通过的特定接口轮询容器中的每一个元素,而不需要了解底层实现。例如: 遍历一个数组 int count = 5; String[] att = new String[count]; for (int i = 0; i &...

2019-12-16 14:17:56 116

转载 多线程文章记录

多线程使用不多,用的时候有些细节不清楚,加个多线程收藏夹针对实际使用场景,做的精炼:https://www.cnblogs.com/pengdai/p/12026959.html源码,或者细节的介绍:https://www.pdai.tech/md/java/thread/java-thread-x-juc-tool-countdownlatch.html...

2019-12-12 22:03:10 103

原创 基于spring boot高性能高并发秒杀系统方案及优化(第二部分:秒杀优化演进+接口隐藏+接口限流)

目录页面级高并发秒杀优化(Redis缓存+静态化分离)重点:手动渲染商品列表做页面缓存重点:页面静态化(利用浏览器的缓存) 即前后端分离非编程的优化,静态资源优化重点:秒杀接口第一次优化服务级高并发秒杀优化(RabbitMQ+接口优化)重点:秒杀接口第二次优化图形验证码及恶意防刷重点:接口地址隐藏重点:接口防刷限流(同一ip一秒钟访问多少次)秒杀压测-J...

2019-11-25 00:09:29 2095 1

原创 检验controller的入参是否符合我们的规范,@Valid与@Validated

我们编写Controller层时,经常需要前端传入 参数,我们使用@BodyRequest填充为我们需要的对象。但是这个填充的过程,需要效验这些参数是否合法,如:手机号码21234567890 明明不合法的,通过http的客户端传入此类非法请求,前端过滤不了的,所以需要我们后端再次进行过滤。@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpM...

2019-11-12 20:49:59 1309 1

原创 SpringBoot基础(五、整合Kafka及原生api使用)

目录Kafka原生API使用创建生产者利用生产者发送消息 :无脑发模式利用生产者发送消息 :同步发送利用生产者发送消息 :异步发送利用生产者发送消息 :异步发送,并使用自定义分区分配器创建消费者 配置信息利用消费者消费信息:自动提交位移利用消费者消费信息:手动提交位移利用消费者消费信息:手动异步提交当前位移利用消费者消费信息:手动异步提交位移带回测...

2019-11-07 00:32:42 1762

原创 基于 SpringCloud 微服务架构的广告系统(第三部分:索引构建与检索、binlog更新、Kafka投递)

目录六、search模块(广告索引)构建索引示意图(例子)加载全量索引示意图binlog构建增量索引预定义json模板及解析 示意图binlog解析及Kafka投递 示意图广告检索服务媒体方请求、检索服务响应的结构图检索服务示意图再次回顾整个编码实现第一部分:eureka、zuul、通用模块(不讲代码实现,下载代码自己看。)第二部分:广告投放、微服务...

2019-11-06 11:44:49 679 1

原创 基于 SpringCloud 微服务架构的广告系统(第二部分:广告投放、微服务调用与断路器)

目录广告系统架构图四、sponsor模块(广告投放)sponsor模块(广告投放)介绍图数据库对应的实体类 (例子)Dao接口实现 (例子)service实现(例子)controller 控制层(例子)sponsor(广告投放)示意图(单个-例子)五、Feign与Ribbon微服务相互访问(RPC)与hystrix断路器使用Ribbon+Hystrix方式...

2019-11-05 23:51:19 1144

原创 kafka公网连接的一些记录

目录第一个问题:配置/config/server.properties 文件的listeners问题第二个问题:PLAINTEXT://your.host.name:9092、zookeeper.connect=your.host.name:2181配置问题第三个问题:org.apache.kafka.common.KafkaException: Failed to construct...

2019-11-02 10:21:30 682

原创 腾讯云服务器Linux系统--安装Kafka

个人习惯创建一个目录专门用于存放软件创建安装目录,下载软件我用华为的镜像,下载比较快, 并且是而二进制文件,不用编译了,解压配置后,直接使用。[root@VM_0_16_centos /]# mkdir /usr/lib/kafka//下载[root@VM_0_16_centos kafka]# wget https://mirrors.huaweicloud.com/apach...

2019-10-30 16:20:24 639 1

原创 linux系统下,开启mysql的binlog日志

因为在做一个广告系统的项目,涉及到广告投放 与 检索 的解耦(增量索引),类时于主从备份之类的。登陆mysql,检查是否开启binlogSHOW VARIABLES LIKE 'log_%'; 可以看见log_bin为OFF(关闭),log_bin_basename为空修改my.conf[root@VM_0_16_centos ~]# vim /etc/my.cnf...

2019-10-24 19:46:38 811

原创 腾讯云服务器Linux系统--安装redis

redis是开源的,C语言开发的,安装步骤:先下载源码,再编译(依赖gcc环境),再安装设置检查是否安装gcc环境[root@VM_0_16_centos ~]# rpm -qa|grep gcc*//无则安装。[root@VM_0_16_centos ~]# yum install gcc-c++创建目录,下载源码(通过华为镜像),解压源码[root@VM_0_16_ce...

2019-09-15 23:25:10 1035

原创 腾讯云服务器Linux系统--安装MySql

检查Linux服务器是否有Mysql[root@VM_0_16_centos ~]# rpm -qa|grep mysql*[root@VM_0_16_centos ~]# rpm -qa|grep -i mysql如有,必须卸载干净,否则后面安装会报各种错误。我们还是通过华为云镜像进行下载 MySql-Server、MySql-Client这两个服务,其他(开发库、兼容库、测试组...

2019-09-15 21:23:16 1798 5

原创 腾讯云服务器Linux系统--安装Tomcat

创建安装目录,下载tomcat ,用清华镜像比较快。[root@VM_0_16_centos ~]# mkdir /usr/lib/tomcat[root@VM_0_16_centos ~]# cd /usr/lib/tomcat[root@VM_0_16_centos tomcat]# wget https://mirrors.cnnic.cn/apache/tomcat/tomca...

2019-09-15 00:16:16 812

原创 腾讯云服务器Linux系统--安装Oracle JDK

先查询是否安装了Java[root@VM_0_16_centos ~]# java-bash: java: command not found假如有,就删除[root@VM_0_16_centos ~]# yum remove *openjdk*下载JDK,官方下载是很慢的,可以通过国内云镜像进行下载,比如华为、网易的镜像。创建下载目录,并通过华为云镜像下载[roo...

2019-09-14 11:12:40 1033

原创 算法:字典树(Trie)-理论与实战

回想我们百度一下的过程,输入几个单词后,自动搜索出可能的选择,当没有完全匹配的搜索结果,可以返回前缀最相似的可能。这个功能实现原理是上面呢?字典树这个功能的原理是字典树,通过匹配前缀,再通过一些内部算法,达到相似的可能,再输出给我们选择。字典树是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节...

2019-09-09 14:06:45 593

原创 算法:贪心算法与二分查找-理论与实战

目录贪心算法leetcode122:买卖股票的最佳时机 II二分查找leetcode:求69X的平方根二分查找的递归通用写法贪心算法概念:是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择。贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最...

2019-09-07 20:42:42 934

原创 算法:深度、广度优先搜索算法与剪枝-实战

目录leetcode:102. 二叉树的层次遍历方法一:BFS方法二:DFSleetcode:104. 二叉树的最大深度方法一:DFS方法二:BFSleetcode:111. 二叉树的最小深度方法一:DFS方法二:BFSleetcode:22. 生成正确括号方法一:搜索加剪枝附加:回溯leetcode:51. n皇后问题方法一:搜索加剪枝...

2019-09-06 13:37:59 975

原创 算法:深度、广度优先搜索算法与剪枝-理论

目录深度优先搜索算法(DFS)深度优先搜索算法伪代码广度优先搜索算法(BFS)广度优先搜索算法-代码剪枝深度优先搜索算法(DFS)百度百科:事实上,深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.通过栈实现。简单讲就是一路走到底,再换支路...

2019-09-04 21:57:32 1091

原创 算法:递归和分治-实战

目录leetcode:50实现pow(x,n),即计算 x 的 n 次幂函数。方法一、直接调用库函数方法二、暴力方法三、递归分治的做法leetcode:169求众数。方法一:暴力方法二:哈希表 ,元素出现次数存入map中方法三:分治方法四:扩展 Boyer-Moore 投票算法leetcode:50实现pow(x,n),即计算 x 的 n 次幂...

2019-09-02 10:18:24 201

原创 算法:递归和分治-理论

目录引入递归什么是递归一个例子:计算 n!。什么是分治一个例子:小写字母转化为大写字母另一个例子:leetcode:144二叉树的前序遍历引入递归一说起循环,大家都会说一个例子:“从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山...” 这是一个死循环,假如加上一个终止条件,第五个和尚就结束故事了,那...

2019-08-10 16:22:19 144

原创 算法:二叉树遍历-理论

目录什么是前中后序遍历前序遍历方法一:递归方法二:迭代中序遍历方法一:递归方法二:迭代后序遍历方法一:递归方法二:迭代1方法二:迭代2前中后序遍历在平时用的不多,实际上用到更多是深度优先和广度优先算法,那为什么要遍历二叉树呢!好像也就仅仅输出数据而已,但是对于二叉搜索树,中序遍历,就可以输出一个有序的结果了。什么是前中后序遍历1. 前序(Pr...

2019-08-09 17:13:25 234

原创 算法:树和图-实战

leetcode:98. 验证二叉搜索树思路:回到二叉搜索树,当前节点大于左子树,小于右子树。假如此树是二叉搜索树,那么应该满足这种有序的状态。递归递归思路,需要注意右子树的最小值为父亲节点,左子树的最大值也为父亲节点。class TreeNode { int val; TreeNode left; TreeNode right; Tree...

2019-08-08 19:15:07 895

原创 算法:树和图-理论

目录引入树树二叉树⼆叉搜索树红黑树java的树(TreeMap)是怎么实现的?上面是正常二叉树插入操作,下面是整理二叉树形成红黑树操作。引入图图引入树在说树之前,我们先回想一下链表,在当前节点保存下一节点的引用,类时的如下:class ListNode { int val; ListNode next; ListNode(...

2019-08-05 16:27:34 5224

w3school离线手册(2019.01.20)

W3School离线手册(2019.01.20) W3School离线手册更新: 该文档为本人于2019年01月20日中文从W3School官网下载整理制作的CHM电子书文档。

2019-01-20

空空如也

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

TA关注的人

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