自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

转载 跟我学SpringCloud | 第十四篇:Spring Cloud Gateway高级应用

SpringCloud系列教程 | 第十四篇:Spring Cloud Gateway高级应用Springboot: 2.1.6.RELEASESpringCloud: Greenwich.SR1如无特殊说明,本系列教程全采用以上版本上一篇我们聊了Gateway和注册中心的使用,以及 Gataway 中 Filter 的基本使用,这篇文章我们将继续介绍 Filter 的一些高级功能。熔断限流重试1. 限速路由器限速在高并发场景中比较常用的手段之一,可以有效的保障服务的...

2020-06-30 15:21:06 106

转载 关于爬虫平台的架构设计实现和框架的选型(一)

关于爬虫平台的架构设计实现和框架的选型(一)关于爬虫平台的架构设计实现和框架的选型(二)--scrapy的内部实现以及实时爬虫的实现首先来看一下一个爬虫平台的设计,作为一个爬虫平台,需要支撑多种不同的爬虫方式,所以一般爬虫平台需要包括1、 爬虫规则的维护,平台在接收到爬虫请求时,需要能按照匹配一定的规则去进行自动爬虫2、 爬虫的job调度器,平台需要能负责爬虫任务的调度,比如定时调度,轮询调度等。3、 爬虫可以包括异步的海量爬虫,也可以包括实时爬虫,异步爬虫指的是爬虫的数据不会实时返...

2020-06-30 08:20:07 623 1

转载 AppBoxFuture: 二级索引及索引扫描查询数据

  数据库索引对于数据查询的重要性不可言喻,因此作者在存储层实现了二级索引,以及利用索引进行扫描的功能。目前仅实现了分区表与非分区表的本地索引(数据与索引共用一个Raft组管理),全局索引及反向索引待以后再实现。一、存储结构:  在介绍索引前先了解一下数据与索引是以何种结构存储于RocksDB内的,每个节点的RocksDB实例都包含以下两个ColumnFamily,每个列簇的存储结构如下:1. TableCF: 存储实体数据1.1 Key存储编码:TableId(with OrderFl...

2020-06-29 08:20:06 174

转载 【设计模式】Composite

目录前言安卓View的实现ViewBeyond setContentViewsetContentView做了什么事情?如何将xml文件变成对象的?小结View的绘制流程三个流程三个过程如何触发MeasureLayoutDrawComposite设计模式measure, layout, draw的调用总结参考链接前言Composite设计模式,将物体组合成一个树结构,让单个对象和组合对象使用起来都一样,组合对象负责将实际的操作分发给每一个组件。这篇博文分析了安卓的View相关的类,它们可以说是...

2020-06-28 20:21:09 436

转载 Spring Boot 2.x引入JS,CSS 失效问题

我的SpringBoot版本是2.0,启动后发现页面奇丑无比:看下目录结构:SpringBoot默认扫描Static文件夹下的文件,这里把CSS,JS以及图片文件都放在了asserts文件夹下。我的MVC配置文件:package com.myspringbootweb.Config; import com.myspringbootweb.Component.LoginHandlerInterceptor;import org.springframework.co...

2020-06-28 15:21:03 198

转载 创建型设计模式--工厂模式、抽象工厂模式

一、小案例分析1、功能需求:  实现一个发送信息的功能,要便于扩展与维护。(1)发送信息的工具有很多,比如短信、微信、邮件、QQ等。(2)选择某个工具进行信息发送。2、小菜鸡去实现:(1)定义一个发送工具的父类(接口),并将各种发送工具作为子类(实现类)。(2)定义一个选择发送工具的类,用于调用发送工具(直接new个子类对象)。(3)代码实现:package creative.pattern.factory.noFactory;import java.util.Scanner;...

2020-06-27 20:21:14 208

转载 C#代码实现IoC(控制反转)设计,以及我对IoC的理解

一. 什么是IoC当在A类中要使用B类的时候,我们一般都是采用new的方式来实例化B类,这样一来这两个类就有很强的依赖关系,不符合低耦合的设计思想。这时候我们可以通过一个中间容器来实例化对象,需要的时候就可以通过容器获取一个B类的对象。这种思想就是IoC(控制反转),其实我觉得叫控制转移更为合适,因为它是把程序创建对象的控制权转移给了第三方(IoC容器)。以上是我的个人见解,如有不对的地方还望指正,谢谢二. 代码实现IoC思想首先进行分析,因为我们是通过IoC容器来获取对象的,但是IoC容...

2020-06-26 20:21:13 1228

转载 错误日志之观察者模式

星期一情景早晨,项目组长来到小明身边,“有人反映咱们的项目有Bug” “什么Bug?” “不知道,你添加一个日志模块自己看记录去。” ”...“分析在MVC全局过滤器中自己添加有异常过滤器。Global.asax 1 public class MvcApplication : System.Web.HttpApplication 2 { 3 protected void Application_Start() 4 { 5 ...

2020-06-26 08:20:09 161

转载 设计模式

  没有什么设计模式是完美无缺的,一个设计模式就是解决一类的问题,通常设计模式在解决一类问题的同时,还会带来别的问题,我们设计者要做的事,就是扬长避短。1、创建型设计模式,5个===》关注对象的创建2、结构型设计模式,7个===》关注类与类之间的关系3、行为设计模式,11个====》关注对象和行为的分离  设计模式六大原则:单一职责、里氏替换原则、依赖倒置原则、迪米特法则、接口隔离原则、开闭原则。这些只能叫原则,是建议,没有实际的招数。  面向对象23中设计模式:    面向对象语言开...

2020-06-25 08:20:04 66

转载 SSH框架之Spring第二篇

1.1 基于注解的IOC配置 既注解配置和xml配置要实现的功能都是一样的,都是要降低程序间的耦合.只是配置的形式不一样. 1.2 环境搭建 1.2.1 第一步:拷贝必备的jar包 需要多拷贝一个spring-aop-4.2.4.RELEASE.jar 1.2.2 创建xml文件,导入约束 <?xml version="1.0" encoding="UTF-8"?> ...

2020-06-24 15:21:04 88

转载 动态代理类的实现和解析

静态代理类:   由程序员创建或由特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了动态代理类:    与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成...

2020-06-24 08:20:09 190

转载 命令模式

命令模式关注动作本身,通过将动作封装成对象实现调用者和底层实现相分离。调用者只需要简单的下达命令,然后等待命令完成即可,对底层发生了什么完全不知情。关于命令模式一个很直观的例子就是点餐:当我们点餐时,我们只用关心将选好的菜品下单,然后等待送餐即可,我们不关心饭菜是怎么做的,不关心厨师是男是女。下面通过一个万能遥控器的例子进一步认识命令模式。步入物联网时代,很多家电都可以实现远程控制,我们想看电视,听音乐,打扫房间,只需要按一下遥控器上对应的按键,相应的家电就会自动工作。那么这样的一款遥控器要怎...

2020-06-23 15:21:05 159

转载 迭代器模式

迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部实现。 有过Java编程经验的人对这种模式应该比较熟悉,因为Java内置的许多集合类型:List、Set、Map等都提供了迭代器接口,可以使用统一的方式遍历集合中的元素。下面将通过一个例子说明迭代器的使用场景,并了解一下迭代器模式的原理。 包子店卖的有包子和饮品,对于包子和饮品的每一个条目,我们用Item来表示,Item只包含name和price两个字段: 1 public class...

2020-06-23 08:20:07 94

转载 SpringCloud-服务注册与实现-Eureka创建服务提供者(附源码下载)

场景SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102535957上面已经搭建好服务注册中心,开始创建服务提供者。当 Client 向 Server 注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka Server 从每个 Client 实例接收心跳消息。 如果心跳超时,则通常将该实例从注册 Server 中删除。...

2020-06-21 20:21:14 155

转载 在 Java 中如何比较日期?

在 Java 中有多种方法可以比较日期,日期在计算机内部表示为(long型)时间点——自1970年1月1日以来经过的毫秒数。在Java中,Date是一个对象,包含多个用于比较的方法,任何比较两个日期的方法本质上都会比较日期的时间。本文主要介绍以下五种方式:使用 Date.compareTo()使用 Date.before()、Date.after() 和 Date.equals()使用 Calender.before()、Calender.after() 和 Calender.equals...

2020-06-21 15:21:06 381

转载 Java的反射技术

1、Java 反射技术  Java反射技术应用广泛,它能够配置:类的全限定名、方法和参数,完成对象的初始化,甚至是反射某些方法。这样可以大大增强Java的可配置性,如Spring IoC 的基本原理也是反射,当然Spring IoC 的代码要复炸得多,还有其他的技术结合。  Java 的反射内容繁多, 包括对象的构建、反射方法、注解、参数、接口等。这次主要讲一下对象的构建和反射的方法。在Java中,反射是通过包java.lang.reflect.* 来实现的。2、通过反射构建对象  在...

2020-06-20 20:21:09 110

转载 hadoop伪分布模式的配置和一些常用命令

大数据的发展历史3V:volume、velocity、variety(结构化和非结构化数据)、value(价值密度低)大数据带来的技术挑战存储容量不断增加获取有价值的信息的难度:搜索、广告、推荐大容量、多类型、高时效的数据处理场景,使得从数据中获取有价值的信息变得非常困难hadoop理论概述hadoop发展简史apache nutch项目,是一个开源网络搜索引擎谷歌发表GFS,是HDFS的前身谷歌发表了mapreduce分布式编程思想nutch开源实现了mapredu...

2020-06-20 15:21:04 264

转载 RabbitMQ安装

  安装RabbitMQ,可以选择使用Docker或者在CentOS下安装RabbitMQ。这里就不介绍这些高大上的安装,就介绍在本地安装吧。第一步、下载并安装erlang  为什么要先下载安装erlang呢?因为RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装RabbitMQ的前提是安装Erlang。  下载地址:http://www.erlang.org/downloads  根据自己的电脑选择下载的安装版本。下载下来的是一个exe的安装文件,双击运行,即可进...

2020-06-20 08:20:11 67

转载 设计模式 - 策略模式

在理解策略模式之前我们假设有这样一个需求场景:我们在写订单支付场景的代码时,客户可以选择多种支付方式,有银联支付、支付宝支付、微信支付、京东白条等等。然后我们就很可能就会编写出类似下面这样的代码:/** * 订单类,拥有一个支付方法 * * @author eamon.zhang * @date 2019-11-06 上午9:18 */public class Order { // 订单id private String orderId; // 支付方式 ...

2020-06-19 20:21:15 177

转载 从代码的视角深入浅出理解DevOps

对于DevOps的理解大家众说纷纭,就连维基百科(Wikipedia)都没有给出一个统一的定义。一般的解释都是从字面上来理解,就是把开发(Development)和运维(Operations)整合到一起,来加速产品从启动到上线的过程,并使之自动化。这个是对DevOps的广义解释,而且大多数人都是认可的。但这个解释太宽泛了,几乎包括了IT的所有内容,使之没有太大意义。 而DevOps是近几年才兴起的(2014年才开始流行),它是对某种项目模式的描述,是有着其特定内涵的。任何项目都可以分成开发和运维两...

2020-06-19 15:21:08 197

转载 Java 线程的基本使用

线程的2种实现方式1、继承Thread类,重写run()方法public class Thread1 extends Thread{ @Override public void run() { //要执行的代码 while (true){ System.out.println("thread1 is running...."); } }} Thread1 thread1 = ...

2020-06-18 15:21:03 68

转载 第一部分:趣味算法入门;第八题:冒泡排序(并与选择排序对比)

100个不同类型的python语言趣味编程题在求解的过程中培养编程兴趣,拓展编程思维,提高编程能力。第一部分:趣味算法入门;第八题:8.冒泡排序:对N个整数(数据由键盘输入)进行升序排序冒泡排序的思想:首先从表头开始往后扫描数组,在扫描的过程中逐对比较相邻的俩个元素的大小。若相邻的两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个逆序,在扫描的过程中不断的将两相邻元素中的大者往后移动,最后就将数组中的最大者换到了表的最后,然后在剩下的数组元素中(n-1)个元素重复上面的过...

2020-06-18 08:20:05 232

转载 python初学者-使用for循环用四位数组成不同的数

digits = (1,2,3,4)  for i in digits:   for j in digits: if j==i: continuefor k in digits: if k==i or k==j: continue print(i*100+j*10+k)

2020-06-17 15:21:07 1233

转载 初始Django—Hello world

1. 准备环境> python -VPython 3.7.3> pip -Vpip 20.0.2 from c:\python3\lib\site-packages\pip (python 3.7)> pip install django> python -m django --version2.2.92. 创建along项目> django-admin startproject along将会创建一个along目录,它的目录结构大致如...

2020-06-16 15:21:06 86

转载 excel相关

xlrd openpyxl 库应该是自带了,反正我是没安装,csv也可制作表格,关于csv以后介绍基本操作import xlrdbook = xlrd.open_workbook('filename')book.nsheets # 表单数量book.sheet_names() # 表单名要读取某个表单里单元格中的数据,必须要先获取 表单(sheet)对象 。# 表单索引从0开始,获取第一个表单对象book.sheet_by_index(0)# 获取名为...

2020-06-15 20:21:14 78

转载 爬虫之selenium

selenium基本操作概念:基于浏览器自动化的模块appnium:基于手机自动化的模块的应用环境的安装pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple跟爬虫之间的关联?可以实现模拟登陆便捷的捕获动态加载数据(可见即可得)基本操作导包:from selenium import webdriver(web浏览器,driver驱动)必须提供对应浏览器的驱动程序(谷歌,火狐...)谷...

2020-06-15 15:21:11 195

转载 Python连接MYSQL数据库类

Python连接MYSQL数据库类DBHelper.py:import pymysqlimport loggingimport sysfrom mySQL.db_config import db_config# 加入日志# 获取logger实例logger = logging.getLogger("baseSpider")# 指定输出格式formatter = logging.Formatter('%(asctime)s\ %(levelname...

2020-06-15 08:20:07 417

转载 java多线程实现奇数和偶数的交叉打印

1.实现奇数和偶数的交叉打印2.打印时间间隔1秒public class TestThread02 {   public static void main(String[] args) {     Thread t1 = new EvenThread();     Thread t2 = new EvenThread();     t1.setName("奇数线程");     t2.setName("偶数线程");     t1.start();     t2.start(); ...

2020-06-14 20:21:12 245

转载 Java 14 开箱,它真香香香香

Java 14 已经发布有一周时间了,我准备来开个箱,和小伙伴们一起来看看新特性里面都有哪些好玩的。我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。先来看看 Java 14 都有哪些新特性吧!红色线划出来的是我比较感兴趣的,其余的对我没什么太大的吸引力,就暂且略过。01、下载 JDK 14要想开箱,得先下载 JDK 14,不然拿什么开箱呢,对吧?有 2 处地方可供下载,Oracle 上可以下载商用版, jdk.java.net 上可以下载开源版。我们就选择后者吧。我...

2020-06-13 08:20:04 105

转载 SpringBoot启动的时候切换配置文件命令

Spring Boot 在服务器部署可以使用下面命令,这时使用 -- 开头引入 spring 中的 application 的值,即可在命令行配置 Spring Boot。java -jar xxxx-0.0.1-SNAPSHOT.jar我们可以通过在命令行增加配置的方式给 Spring Boot 添加配置,命令行配置优先于 application.yml 执行。如下配置了一个端口,使用 --server.port=8088 配置 来实现命令行配置java -jar xxxx-0.0...

2020-06-11 20:21:11 330

转载 python中timer定时器常用的两种实现方法

方法一,使用线程中现成的:这种一般比较常用,特别是在线程中的使用方法,下面是一个例子能够很清楚的说明它的具体使用方法:#! /usr/bin/python3#! -*- conding: utf-8 -*-import threadingimport timedef fun_timer(): print(time.strftime('%Y-%m-%d %H:%M:%S')) global timer timer = threading.Timer(2,fun_t...

2020-06-11 08:20:05 579

转载 Spring02——Spring 中 Bean 的生命周期及其作用域

在前一篇文章中,我们已经介绍了 Spring IOC 的相关知识,今天将为个位介绍 Spring 中 Bean 的相关知识。关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点。Bean 的生命周期Spring 生命周期有四个阶段,分别是:实例化 Instantiation属性赋值 Populate初始化 Initialization销毁 Destruction实例化通过构造器或工厂方法创建 Bean 实例,也就是我们常说的给自己 new ...

2020-06-10 20:21:09 102

转载 原创 记录一次线上Mysql慢查询问题排查过程

背景前段时间收到运维反馈,线上Mysql数据库凌晨时候出现慢查询的报警,并把原始sql发了过来:--去除了业务含义的sqlupdate test_user set a=1 where id=1;表数据量200W左右,不是很大,而且是根据主键更新。问题排查排查Mysql数据库我看到sql后第一反应就是是不是数据库出问题了,每个小时都有业务,偏偏白天业务高峰时间段正常,凌晨业务量很少时候出问题,让运维先检查了数据库的状态,反馈是数据库正常。排查业务代码(第一次)这块业务代码比较复杂...

2020-06-09 20:21:11 245

转载 正则表达式

正则表达式英文为Regular expression,简称:regex或regexp。含义:按照某种规则去匹配符合条件的字符串正则表达式由两种基本字符类型构成:原义文本字符元字符元字符是在正则表达式中有特殊含义的非字母字符:* + ? ^ $ . | \ () {} []等常用字符集:\t:水平制表符\v:垂直制表符\n:换行符\r:回车符\0:空字符\f:换页符|:或字符类:由元字符[]创建。字符类取反:由^创建,反向类,[^123]表示不是字符1或2或3的内容范围类:[a-...

2020-06-08 20:21:11 117

转载 7.数组

一、数组的概述1.定义  多个相同数据类型的数据按照一定的顺序排列的集合,使用一个名字命名,并通过编号的方式对这些数据进行统一管理。2.特点  ①数组是有序排列的;  ②数组本身是引用数据类型,数组中的元素既可以是基本数据类型,也可以是引用数据类型;  ③创建数组会在内存中开辟一整块连续的空间,而数组通过数组名引用的是这块连续空间的首地址;  ④数组一旦初始化完成,其长度就确定了;数组的长度一旦确定,就不能修改;  ⑤通过索引来访问数组中的元素,速度很快3.分类按照维数:一维数...

2020-06-07 08:20:06 292

转载 10.面向对象-----类的成员之方法(method)

一、定义  类或对象行为特征的抽象,用来完成某个特定的功能。二、作用  将功能封装进对象,实现代码重用,简化代码。三、分类四、具体说明1.方法的声明格式其中:①权限修饰符:可以被private、缺省、protected、public等修饰②返回值类型:  > 没有返回值:void修饰(如果一定要返回的话,使用return;表示结束此方法的意思)  > 有返回值:必须声明其返回值类型,在方法体中必须使用“return 数据”的方式返回数据③方法名:...

2020-06-06 15:21:07 222

转载 Python拼接字符串的7种方法总结

前言忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串。相信不少同学会有同感。在Python中,我们经常会遇到字符串的拼接问题,几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型。而拼接字符串是必备的一种技能。今天,我跟大家一起来学习Python拼接字符串的七种方式。下面话不多说了,来一起看看详细的介绍吧1、来自C语言的%方式print('%s %s' % ('Hello', 'world'))>>> Hello world...

2020-06-06 08:20:07 1061

转载 旋转数组-python

旋转数组给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释: 向右旋转 1 步: [99,-1...

2020-06-05 15:21:38 309

转载 C语言数组指针的理解方式

2020-06-05 08:20:05 65

转载 为什么大家都选择go语言?

今天小编就给大家分享的文章是为什么大家都选择用go语言?我觉得选择用go语言的原因有很多,go语言用于服务器端开发,适合很多程序员一起开发大型的软件,并且在软件的不断增长过程中,他能让程序员更容易的惊醒修改,想要go语言入门和学习go语言的小伙伴一定要看看了,希望对大家有帮助。静态,go是一门静态语言,有着强类型约束,所以我们不太可能出现在Python中变量在运行时类型不匹配(譬如int + string)这样的runtime error。 在编译阶段就能够帮我们发现很多问题,不用等到运行时。...

2020-06-04 15:21:05 255

空空如也

空空如也

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

TA关注的人

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