自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java并发线程笔记目录

Java线程的实现一些概念linux系统的pthread_create函数初步猜想通过猜想模拟实现一次java的线程

2019-09-16 23:03:05 393 3

原创 Python3笔记⑬——爬虫示例

爬取豆瓣top250爬虫代码import urllib.requestimport urllib.parsefrom bs4 import BeautifulSoupimport reimport xlwtimport pymysqldef main(): baseurl = "https://movie.douban.com/top250?start=" print("-------------------开始爬取数据-------------------") d

2021-09-01 11:43:48 247

原创 【Python爬虫】Selenium篇②——三大等待

强制等待# 参数为等待的时间,单位为秒time.sleep(1)强制等待是不需要借助selenium中的函数实现的,其实就在之前一篇的示例中演示的,通过time.sleep()函数实现程序的wait操作。这个等待是python基础库中就有的函数。缺点: 过于死板,而且耗费时间过多优点: 编写简单,强制性的等待可能有其他用途隐式等待# 参数为等待的最大时间,单位为秒driver.implicitly_wait(10)对获取的浏览器驱动进行配置,配置其等待的最大时间缺点: 必须

2021-07-02 11:06:22 342 2

原创 【Python爬虫】Selenium篇①——安装和介绍

Selenium是一个自动化测试工具,支持多种浏览器。它采用Javascript单元测试工具JSUnit为核心,模拟真实用户操作,包括浏览页面、点击链接、输入文字、提交表单、触发鼠标事件等等,并且能够对页面结果进行种种验证。也就是说,只要在测试用例中把预期的用户行为与结果都描述出来,我们就得到了一个可以自动化运行的功能测试套件。(Selenium的核心是Javascript写的,他和浏览器进行通信,把测试用例的信息发送给浏览器执行,从而达到自动化测试的目的)...

2021-07-02 11:06:04 253 1

原创 【Python爬虫】Scrapy篇④——起点中文网书架列表爬取

111

2021-07-02 10:43:55 445

原创 【Python爬虫】Scrapy篇③——Scrapy Shell、settings文件和Pipeline回调函数

111

2021-07-02 10:43:32 268

原创 【Python爬虫】Scrapy篇②——Pipeline、日志模块、请求和Item

Pipelinepipeline是作为scrapy中保存数据或者处理数据的组件,也基本是爬虫最后一个步骤。如果想要使用pipeline,首先需要开启pipeline,这个是在settings.py文件中配置的,基本的配置如下,其中键名代表的是pipeline的位置,具体指的是mySpider文件夹下(这个是固定的根目录)pipelines文件中的MyspiderPipeline类,值就代表的是pipeline的执行顺序,值越小越先执行。所以这里是可以配置多个pipeline的,下面的MyspiderPi

2021-07-02 10:43:06 700

原创 【Python爬虫】Scrapy篇①——简介、安装和快速开始

Scrapy简介scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需实现少量的代码,就能够快速的抓取。scrapy使用了twisted异步网络框架,可以加快我们的下载速度。安装scrapy通过下面的命令安装scrapypip install Scrapy安装过程中出现的常见问题:《Microsoft Visual C++ 14.0 is required解决方法》《You are using pip version 20.0.2, however versio

2021-07-02 10:42:50 92

原创 文件模板导出(word和pdf)——使用easypoi和docx4j

代码依赖<dependencies> <!-- easypoi --> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>4.1.3</version> </dependency>

2021-06-29 17:27:13 2574 2

原创 2020.12.8笔记——Webflux高级应用

集成事务开启事务

2020-12-18 16:52:38 1144

原创 2020.12.6笔记——Webflux基础应用

webfiux工程servlet2.5时只支持同步的模式一定要servlet3.0以上的版本,因为只有这个版本才支持异步非阻塞模式,但是此时因为还需要获取获取方法的返回值,所以不能做到真正的异步在servlet3.1之后通过事件监听器的方式实现真正的异步webflux项目快速开始https://spring.io/guides/gs/reactive-rest-service/依赖<parent> <groupId>org.springframework

2020-12-15 16:56:31 560 4

原创 2020.12.3笔记——Webflux基础知识

反应式宣言https://www.reactivemanifesto.org/zh-CN背压https://www.reactivemanifesto.org/zh-CN/glossary#Back-Pressure当某个组件正竭力维持响应能力时, 系统作为一个整体就需要以合理的方式作出反应。 对于正遭受压力的组件来说, 无论是灾难性地失败, 还是不受控地丢弃消息, 都是不可接受的。 既然它既不能(成功地)应对(压力), 又不能(直接地)失败, 那么它就应该向其上游组件传达其正在遭受压力的事实.

2020-12-14 14:32:44 453

原创 2019.12.24笔记——SpringBoot整合Elasticsearch及其使用

三种es与java整合的方式restjestspring datarest原生客户端,很复杂springdata引入依赖canal导入数据只支持增量导入,不支持全量导入https://github.com/alibaba/canal/wiki/ClientExample...

2020-07-23 15:24:00 894

原创 2019.12.17笔记——elasticsearch集群搭建和读写请求流程

elasticsearch集群搭建注释掉node.name和http.port,启动时指定配置下面的集群信息然后创建各自的文件夹存储各自的data和logs文件启动方式一个节点可以存在多个和主分片一个节点不能存在两个同样的分片(无论主副)如果加入新的节点,主分片和副本都会重新分配如果有某个节点突然宕机,主分片会立刻迁移(副本升级为主分片),副本也会在一段时间后复原...

2020-07-23 15:23:26 203

原创 2020.4.2笔记——Sentinel应用③

feign和sentinel整合,通过sentinel实现降级sentinel持久化官方文档https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel对于push模式,sentinel只提供了...

2020-06-29 22:17:35 254

原创 2020.3.31笔记——Sentinel应用②

流控规则https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6流控效果快速失败,直接报错warm up 令牌桶算法平时为10/3,当qps激增时,操作预热时长后变成10排队等待 漏斗算法,匀速排队降级规则https://github.com/alibaba/Senti...

2020-06-29 22:17:19 239

原创 2020.3.29笔记——Sentinel应用①

Nacos集群部署两种方式,一种是通过nginx反向代理一种是客户端连接多个nacos服务端Nacos节点之间的数据同步是基于数据库实现的所以nacos部署集群主要就是配置数据库连接和各个节点之间连接灰度发布可以向指定ip的客户端发布,这种发布可以回滚也可以真正发布同步到所有的客户端sentinel中文文档https://github.com/alibaba/Sentin...

2020-06-29 22:17:08 224

原创 2020.3.26笔记——Nacos注册中心和配置中心

nacos如果想要整合spring cloud需要引入spring cloud和alibaba的依赖下面是依赖版本对应图注册中心的使用服务端搭建直接下载并启动客户端搭建spring cloud alibaba官方文档https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-clou...

2020-06-29 22:02:40 614 1

原创 2020.3.24笔记——Apollo配置中心

Apollo配置中心Apollo github官方网址:https://github.com/ctripcorp/apolloApollo快速启动官方网址:https://github.com/ctripcorp/apollo/wiki/Quick-Start

2020-06-29 21:45:33 771

原创 2020.3.22笔记——Spring Cloud gateway应用

官方文档https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.2.RELEASE/reference/html/gateway底层通讯是基于netty如果引入了gateway依赖,但是不想使用gateway可以配置如下属性spring.cloud.gateway.enabled=false断言的使...

2020-06-29 21:40:33 424

原创 2020.4.23笔记——RocketMQ应用④

消息重发重发的时间间隔是按照时间延迟级别得来的,重发时间依次变更,如下所示,第一次是1s,第二次是5s、、、、、、最后是2h,如果超过最大级别那么默认都是最大级别更改上面的延迟时间设置重试次数,每个消费者都有独有的重试次数重试之后的消息永远会回到0队列重试队列名和死信队列名都是根据组名来的在一个topic中只有存在过死信消息才会出现死信队列下面就是死信队列,其中perm默认是2...

2020-05-19 11:04:16 345

原创 2020.4.21笔记——RocketMQ应用③

生产者组根据创建实例时的组名分组如果回调时没有找到任何一个组内的生产者,那么它会等待一段时间在回调一次消费者组根据创建实例时的组名分组消息的分配方式,它们的接口都是AllocateMessageQueueStrategyAllocateMessageQueueAveragely分页AllocateMessageQueueAveragelyByCircle轮询Al...

2020-05-19 11:04:00 455

原创 2020.4.19笔记——RocketMQ应用②

延迟消费在生产者可以设置消息的延迟级别(并不能设定一个具体的值),批量发送发送一次消息,一次发送多条消息一次发送的消息最好不要超过1m,超过1m性能降低如果消息超过4mb,可以通过消息分割来发送消息分布式事务只能保证最终一致性...

2020-05-19 11:03:39 381

原创 2020.4.16笔记——RocketMQ应用①

rocketmq消息中间件启动管理控制台配置rocketmq客户端rocketmq的架构一个topic默认存在八个队列,4个读队列,4个写队列,写入的数据会随机放入队列,也可以指定某个队列rocketmq采用的是推加拉的机制获取数据,保持的长连接默认是5秒钟如果想要获取有序的消息需要满足两个条件,写入消息的时候指定写入单一队列,消费者读取消息是只使用单线程去...

2020-05-19 11:03:16 181

原创 RabbitMq笔记⑤——Linux中RabbitMq安装和RabbitMq集群搭建(转载)

linux中RabbitMq安装首先安装erlangRabbitMq集群搭建内存节点磁盘节点所有节都有一份队列和交换机的信息不过队列的信息有两种队列的元数据(队列的配置)队列中的消息对于所有节点都有一份队列的元数据,但队列的中的消息只存在一个节点中但某一节点接收到某个队列的消息,它非根据队列的元数据将消息发送到真正存有队列的消息的节点erlang语言天生支持分布式开发集群中...

2020-05-19 11:02:36 439

原创 RabbitMq笔记④——消费端分析和RabbitMq的常用配置

设置消费者,使用@Bean的方式可以设置消费者,同时设置相关参数SimpleMessageListenerContainer注解的方式也可以设置相关参数SimpleRabbitListenerContainerFactory先配置这个bean再到需要配置的消费者上注解中配置参数再接收消息的时候可以接收一个Channel对象,可以手动确认消息退回basicNack()批量退回...

2020-05-19 11:01:59 3142

原创 RabbitMq笔记③——发送端确认和失败回调、消息转换和备用交换机的使用

发送端确认会在发送方将消息发送到队列中的时候会存在发送端自己的确认,执行自己的回调方法发送端确认相当于将发送端发送到了交换机中,当不保证发送到了队列确认的回调方法失败回调失败回调更强调将消息发送到队列中去同样需要设置下面的方法开启失败回调设置回调方法消息转换器自己转换需要发送的消息可以用Message或者String接收消息,不过如果直接使用string接收会发现接...

2020-05-19 11:01:41 1290

原创 RabbitMq笔记②——消息交换机和接收端消息确认的使用和Spring Boot整合RabbitMq

消息队列中消息有几种状态已准备待确认已消费消息在消费者接收到时会默认自动确认,可以设置手动确认,这样就需要消费者发送确认信息,如果消费者没确认前与mq断开连接,那么会重回已准备的状态autoAck这个参数决定是否自动确认手动确认交换机的使用fanout交换机直接绑定到队列上,这样只要绑定了交换机的队列都可以接收到数据direct同样需要绑定交换机,同时会判断路由键是否相等...

2020-05-19 11:01:18 848

原创 RabbitMq笔记①——入门介绍(转载)

zzz

2020-05-19 11:00:57 196

原创 Spring中向集合中注入指定的bean(@Qualifier)

在《在bean中注入同一接口多个实现类的bean》中已经介绍了如何注入多个实现的bean,但是我们无法指定注入某些实现的bean,这里就会介绍如何注入指定的某些bean。完成上面的功能需要借助@Qualifier注解,还需要我们创建一个自定义注解,首先说一说我们需要达到的效果,存在如下一个接口和它的三个实现public interface Test { public void te...

2020-03-17 14:12:04 2117

原创 【源码分析】2020.3.12笔记——eureka的客户端(Hoxton版)

client的自动配置类eureka client的实例对象初始化client实例对象下面是判断客户端是否开启了服务发现和服务注册功能创建三个线程池,为后面的执行定时任务做准备下面是客户端从服务端拿取服务注册信息,fetchRegistry是服务发现的方法,如果没有发现,就会进入if判断通过fetchRegistryFromBackup从备用服务器获取服务注册下面就是客...

2020-03-14 11:56:48 163

原创 【源码分析】2020.3.10笔记——eureka服务端的自我保护机制和服务发现(Hoxton版)

自我保护机制下面的方法计算自我保护机制阈值就相当于剔除超过15%时就会触发下面是服务下架时重新计算,减1每隔15分钟(默认)自动计算服务发现eureka缓存架构设计,存储服务注册信息,3层缓存架构设计,因为eureka服务信息更频繁使用读操作,所以存在只读缓存带来效率的提高,但是不能保证数据的强一致95%只读缓存是可以关闭的下面是只读缓存,首先查询只读缓存下面...

2020-03-14 11:56:31 208

原创 【源码分析】2020.3.5笔记——eureka服务端的服务注册和心跳续约(Hoxton版)

eureka服务端的页面中mvc架构层是通过jersey框架实现的eureka框架的入口就是这个注解,而这个注解的核心就是这个import注解eureka的自动配置方式,通过SPI技术实现的下面就是eureka的自动配置类在这个配置类中就注入了jersey框架中的过滤器,并初始化了这个mvc框架在eureka源码中存在很多resource类,就相当于mvc中的controller...

2020-03-14 11:56:14 181

原创 【源码分析】2020.3.8笔记——eureka服务端的集群同步和服务剔除(Hoxton版)

集群同步下面是对于服务注册的集群同步操作方法,这个方法本身会调用自身,通过isReplication属性值可以跳出这个递归服务剔除通过一个定时任务去执行,这个定时任务在初始化的是否就开启了,下面就是定时任务下面就是服务剔除的操作,首先判断是否进入了自我保护机制下面的代码将所有的客户端实例拿出来并判断是否过期在筛选出所有的过期客户端实例后服务端并不会立刻将所有的客户端剔除...

2020-03-14 11:55:55 220

原创 【转载】微服务笔记⑧——分布式链路跟踪Sleuth和ZipKin的使用及微服务总结(Finchley版)

sleuth分布式服务追踪trace id 每个请求唯一spand id 每个服务唯一zipkin-server用来可视化sleuth收集到的数据图形化成页面zipkin-server也是用springboot搭建的zipkin-client在服务中引入zipkin-client这样才能将跟踪的信息发送到zipkin-server中去yml文件中zipkin的配置持...

2020-03-14 11:54:39 212

原创 微服务笔记⑦——监控中心HystrixDashbord和配置中心Spring-Cloud-Config的使用(Finchley版)

微服务监控Hystrix Metrics StreamCircuit Breaker: Hystrix Dashboard@EnableHystrixDashboard微服务配置中心@EnableConfigServer其他的服务可以通过这个配置中心读取云端配置读取github中的配置文件需要加上config依赖配置bootstrap.ymlconfig依赖中没有s...

2020-03-14 11:54:11 265

原创 微服务笔记⑥——Zuul组件(Finchley版)

zuul启动类上加@EnbleZuulProxy和eureka整合路由器可以配置路由规则默认的映射关系是可以配置映射关系过滤器不同种类的过滤器1.PRE_FILTER 在请求路由之前过滤,身份验证2.ROUTING3.POST4.ERROR继承ZuulFilter方法降级继承FallbackProvider监听的是整个微服务级别zuul集群可以用zuul、ri...

2020-03-14 11:53:50 149

原创 【转载】微服务笔记⑤——Hystrix断路器组件(Finchley版)

Hystrix@EnableHystrix方法降级熔断断路器存在半开状态限流

2020-03-14 11:53:34 148

原创 【转载】微服务笔记④——负载均衡算法(Finchley版)

随机算法添加权重影响轮询添加权重影响平滑加权轮询

2020-03-14 11:53:09 133

原创 微服务笔记③——Ribbon和Feign组件的使用(Finchley版)

ribbon服务调用负债均衡的实现在RestTemplate的注入上加上@LoadBalanced注解ribbon的负载均衡和nginx的负载均衡不同前一个是已经知道服务的地址,客户端直接调用服务器提供的服务,后者是通过nginx转发到其他的服务器ribbon的负载均衡的策略默认是轮询通过注入IRule接口通过选择不同的实现类 来选择负载均衡的策略自定义负载均衡策略实现Abst...

2020-03-14 11:51:56 254

空空如也

空空如也

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

TA关注的人

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