自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP链接为什么要必须要四次挥手,为什么链接三次握手即可?

简言之:快递员接到电话的那一刻就准备好了听小王后面的话。所以答复小王“听到了”和“你能听到我说话吗”,可以合并成一次一句话说出去。简言之:小王说挂电话,但是快递员此时还没输完取件码。此时快递员还没准备好挂电话。因为可能取件码不对,还需要小王重新说一遍。背景:小王要寄快递,早上上班把快递放在门口,等上午快递员到门口拿到快递。小王打电话给快递小哥告诉他取件码。这个交互其实就是TCP 传输过程在现实生活中的例子。两个问题:为什么握手只要三次?那断开链接为什么不能成一句话回复呢?

2023-10-26 07:19:14 154

原创 kafka初体验基础认知部署

Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。Kafka是一个分布式的发布-订阅消息系统,可以快速地处理高吞吐量的数据流,并将数据实时地分发到多个消费者中。Kafk消息系统由多个**broker(服务器)由生产者、消费者和主题(topic)**组成。生产者可以将数据发布到指定的主题,而消费者可以订阅这些主题并消费其中的数据。

2023-10-06 15:56:57 552

原创 Dubbo服务导出

书接上回dubbo整合spring后会往Spring里面添加ServiceBean.class的beanDefinition。当ServiceBean被Spring实例化后,会回调其Bean的生命周期方法onApplicationEvent() @Override public void onApplicationEvent(ContextRefreshedEvent event) { // 当前服务没有被导出并且没有卸载,才导出服务 if (!isEx.

2022-05-25 20:19:20 254

原创 Dubbo服务导出

书接上回dubbo整合spring后会往Spring里面添加ServiceBean.class的beanDefinition。当ServiceBean被Spring实例化后,会回调其Bean的生命周期方法onApplicationEvent() @Override public void onApplicationEvent(ContextRefreshedEvent event) { // 当前服务没有被导出并且没有卸载,才导出服务 if (!isEx.

2022-05-25 20:16:12 284

原创 dubbo与spring整合源码

@EnableDubbo 注解spring整合dubbo开启dubbo服务的入口注解@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documented@EnableDubboConfig@DubboComponentScanpublic @interface EnableDubbo {.....}@EnableDubboConfig该注解主要加载dubbo的配置,并将配置分好类 应

2022-05-22 12:03:20 215

原创 Dubbo-SPI源码看这篇就够了

JAVA SPI 与API 对比SPI的全称是Service Provider Interface,是Java提供的可用于第三方实现和扩展的机制,通过该机制,我们可以实现解耦,SPI接口方负责定义和提供默认实现,SPI调用方可以按需扩展API的全称是Application Programming Interface,广义上来看就是接口,负责程序与程序之间进行协作的通道,就好比上面给的例子,【我们封装好了一套服务,通过API的形式提供给他人使用,别人使用API就能得到想要的】所以他们俩的区别就很明显

2022-05-18 16:08:33 460

原创 rocketmq源码④-Consumer的启动、接受消息、broker路由

前提介绍:一定要先看前面的几篇文章,了解rocketmq的基本概念和架构设计之后再看本篇消费模式消费者以消费者组的模式开展。消费者组之间有集群模式和广播模式两种消费模式。然后消费模式有推模式和拉模式。推模式是由拉模式封装组成。集群模式下,消费队列负载均衡的通用原理:一个消费队列同一时间只能被一个消费者消费,而一个消费者可以同时消费多个队列。消息顺序:RocketMQ只支持一个队列上的局部消息顺序,不保证全局消息顺序。 要实现顺序消息,可以把有序的消息指定为一个queue,或者给Topic只指定

2022-04-20 17:17:37 440

原创 rocketmq源码③-Producer的启动、发送消息、路由broker

前提介绍:一定要先看前面的几篇文章,了解rocketmq的基本概念和架构设计之后再看本篇Producer 分类Producer有两种。 一个是普通发送者DefaultMQProducer。这个只需要构建一个Netty客户端。还一个是事务消息发送者: TransactionMQProducer。这个需要构建一个Netty客户端同时也要构建Netty服务端(用于接受broker的回查)。DefaultMQProducer 启动官方提供的Producer例子/* * Licensed to

2022-04-19 23:27:53 1675

原创 rocketmq源码②-broker的启动注册与数据存储

启动加载配置创建关键组件BrokerControllerorg.apache.rocketmq.broker.BrokerStartup#createBrokerController通过读取配置 包括BrokerConfig、NettyServerConfig、 《Netty服务端占用了10911端口。》NettyClientConfig、MessageStoreConfig等等配置后封装了BrokerController 。BrokerController 代表了整个brokerBro

2022-04-13 16:39:39 1228

原创 rocketmq源码①-NameServer是什么以及他的启动流程

前提请大家先浏览我前面转载的官网的一些rocketmq的基本概念和架构设计之后再阅读本文。NameServer 是什么官网解释:NameServer 充当路由消息的提供者。生产者或消费者能够通过名字服务查找各主题相应的Broker IP列表。多个Namesrv实例组成集群,但相互独立,没有信息交换。白话文:生产者和消费者怎么知道每个broker的地址以及broker上消息分别存放在集群中的那台机器上?NameServer就是为了解决这个,可以理解为就是一个数据库。NameServe

2022-04-07 21:15:14 1387

转载 rocketmq设计

设计(design)1 消息存储消息存储是RocketMQ中最为复杂和最为重要的一部分,本节将分别从RocketMQ的消息存储整体架构、PageCache与Mmap内存映射以及RocketMQ中两种不同的刷盘方式三方面来分别展开叙述。1.1 消息存储整体架构消息存储架构图中主要有下面三个跟消息存储相关的文件构成。(1) CommitLog:消息主体以及元数据的存储主体,存储Producer端写入的消息主体内容,消息内容不是定长的。单个文件大小默认1G ,文件名长度为20位,左边补零,剩余为起始

2022-04-06 21:03:47 199

转载 rocketmq架构

架构设计1 技术架构RocketMQ架构上主要分为四部分,如上图所示:Producer:消息发布的角色,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色,支持分布式集群方式部署。支持以push推,pull拉两种模式对消息进行消费。同时也支持集群方式和广播方式的消费,它提供实时消息订阅机制,可以满足大多数用户的需求。NameServer:NameServer是一

2022-04-06 20:56:34 1547

转载 rocketmq特性

特性(features)1 订阅与发布消息的发布是指某个生产者向某个topic发送消息;消息的订阅是指某个消费者关注了某个topic中带有某些tag的消息,进而从该topic消费数据。2 消息顺序消息有序指的是一类消息消费时,能按照发送的顺序来消费。例如:一个订单产生了三条消息分别是订单创建、订单付款、订单完成。消费时要按照这个顺序消费才能有意义,但是同时订单之间是可以并行消费的。RocketMQ可以严格的保证消息有序。顺序消息分为全局顺序消息与分区顺序消息,全局顺序是指某个Topic下的所有消

2022-04-06 20:54:01 210

转载 rocketmq的基本概念

基本概念1 消息模型(Message Model)RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中

2022-04-06 20:50:39 117

原创 通过人脸识别,操作鼠标跟随人脸(有啥用自己想象)

需要的库pip install opencv-pythonpip install xlibpip install pyautoguiimport cv2 as cvimport pyautoguidef face_detect_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) face_detector = cv.CascadeClassifier("./haarcascade_frontalface_de

2021-11-30 17:17:04 2590

原创 python爬虫02-urllib使用和简版爬虫案例

文章目录urlliburlopen爬取http请求response 对象data 参数timeout参数RequesterrorurlparseurlencodequoteunquoteRobots 协议urllib3处理大文件设置代理设置请求头图片上传实际案例(爬取小姐姐图片)案例中遇到的问题1、无法打开控制台查看网页代码macOS python urllib3 HTTPS请求证书校验报错urllib在 Python 2 中,有 urllib 和 urllib2 两个库来实现请求的发送。而在 Pyt

2021-10-14 11:33:25 1463

原创 python爬虫01-爬虫原理与通讯

文章目录爬虫基础原理爬虫的概念爬虫三部曲发起请求提取信息保存数据爬虫最核心的httpURI 和 URL超文本http 和 httpshttp请求请求方法请求地址请求头http响应响应状态码响应头响应体cookie 和session爬虫基础原理爬虫的概念网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。爬虫三部曲发起请求提取信息保存数据

2021-10-13 16:28:49 239

原创 python基础⑯-网络编程socket进阶

文章目录如何解决客户端与服务端多次收发消息服务端客户端如何一个服务端支持多个客户端服务端客户端服务端并发处理客户端连接通过单线程(协程)来解决服务端通过多线程来执行通过 tcpsocketserver 服务器多进程没有意义 参考多线程实现就可实际案例(远程在服务器上执行命令)subprocess服务端客户端粘包问题粘包案例服务端客户端解决粘包问题服务端客户端UDP通讯服务端客户端socketserver 模块实现多线程并发服务端服务端如何解决客户端与服务端多次收发消息服务端import socket

2021-10-12 11:18:03 269

原创 python基础⑮-网络编程socket

文章目录网络基础OSI七层协议(学网络编程最重要的底子)socket套接字基于tcp协议的socket通讯服务端客户端思考:网络基础C/S架构C/S: Client客户端--------基于网络----------Server服务端你 --------------- 电商 ---------- 商家有一个地址不固定 有一个地址固定多个 只有一个(稳定)服务端需

2021-10-11 14:52:13 525

原创 python基础⑭-进程池、线程池、协程

文章目录进程池提交任务的两种方式:线程池协程为什么要有进程池和线程池?开辟进程线程比较耗费资源。那些已经执行完任务的进程和线程不应该被关闭。而是应该利用起来给别的任务执行使用进程池计算机开进程或者线程受限于计算机本身的硬件,所以就有了进程池和线程池限制最大进程或者线程数不会造新的进程或者线程,不会浪费内存空间提交任务的两种方式:同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结果后,再执行下一行代码,会导致任务是串行执行的提交任务的方法,串行是任务的运行状

2021-10-09 15:55:36 260

原创 python基础⑬-多线程

文章目录什么是线程线程开启线程线程特性守护线程什么是线程1 什么是线程进程其实一个资源单位(开启一个内存空间,里面放应该执行的代码,代码运行产生的数据),而进程内的线程才是cpu上的执行单位进程是资源单位 qq资源 相当于一个车间 造发动机和造轮胎能共享吗线程其实指的就是代码的执行过程(开空间没关系,数据往进程去要)线程就是车间流水线 跟车间要至少有一个线程 一个车间也可以有多少流水线2 为何要用线程线程vs进程1. 同一进程下的多个线程共享该进程内的资源2. 创建线程的开销要

2021-10-09 15:04:20 174

原创 python基础⑪-继承与派生

文章目录继承继承解决代码冗余子类重写OR复用父类的方法子类重写OR复用父类的方法二单继承单继承的属性和方法的查找多继承的属性和方法查找常用的魔法方法__str____del____call__继承1 什么是继承继承一种新建类的方式,新建的类称之为子类/派生类,被继承的类称之为父类\基类\超类python中继承的特点:1. 子类可以遗传/重用父类的属性 或者方法2 为何要用继承减少类与类之间代码冗余3 如何用继承class Parent(父类): passclass Pare

2021-10-06 16:13:57 573

原创 python基础⑩-面向对象

文章目录何为面向对象python类的使用定义类以及 __dict__方法类的属性对象的使用通过类创建对象对象的属性对象生成的__init__方法类的属性与对象属性的关系对象属性查找优先级类的属性变更与对象属性变更类的方法与对象的方法绑定方法与非绑定方法一切皆对象何为面向对象参考百度百科https://baike.baidu.com/item/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/2262089?fr=aladdinpython类的使用类本质是一个用来存放变

2021-10-06 15:45:12 231

原创 python基础⑨-迭代器和生成器

文章目录迭代器分清楚迭代与循环可迭代对象迭代器文件对象也是迭代器iter() next()for循环原理迭代器总结range函数原理生成器生成一个斐波那契数列迭代器分清楚迭代与循环偏理解知道for循环后面跟什么 *****生成器的作业什么是迭代器迭代就是更新换代迭代器指的是迭代取值的工具为何要用迭代器器是工具迭代器提供了一种通用的且不依赖于索引的迭代取值方式的功能### 迭代器的使用#单纯的重复不是迭代# i = 0# while True:# prin

2021-10-04 20:57:50 185

原创 python基础⑫-多进程

文章目录进程开启一个进程JOIN方法进程之间空间隔离进程的常用方法current_process 查看pid(进程id)os.getpid() 查看进程id进程其他方法和属性守护进程互斥锁进程间通信(IPC机制)JoinableQueue 来实现生产消费者进程什么是进程进程指的是一个程序的运行过程,或者说一个正在执行的程序所以说进程一种虚拟的概念,该虚拟概念起源操作系统一个CPU 同一时刻只能执行一件事开启一个进程from multiprocessing import Process

2021-10-04 20:22:04 412

原创 python基础⑧-异常

文章目录基础用法常见异常合并捕获多种异常万能捕获断言finally 必然执行'''1.异常 异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常 没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止 异常包含三个部分: 1.异常的追踪信息 File "D:/python代码1/day7/异常.py", line 8, in <module> 2.异常的类型 NameError 3. 异常的

2021-10-04 19:07:09 166

原创 python基础⑦-字符编码与文件操作

文章目录字符编码文件操作文件其他常用操作只读只写追加模式t与b的区别字符编码参考百度百科:https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81/8446880?fr=aladdin文件操作'''1 什么是文件 文件是操作系统为用户/应用程序提供的一种操作硬盘的抽象单位2 为何要用文件 用户/应用程序对文件的读写操作会由操作系统转换成具体的硬盘操作 所以用户/应用程序可以通过简单的读\写文

2021-10-04 18:52:39 284

原创 python基础⑥-函数

文章目录函数基础各种函数无参函数有参函数实参位置传参关键字传参默认参数不定长参数带*参数带**参数** 与* 混合使用函数包装多种参数混合函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。—摘抄https://www.runoob.com/python/python-functions.html函数基础# 函数的三大特性# 功

2021-10-03 18:43:06 214

原创 python基础⑤-控制流程

文章目录IF判断if 三种常用用法IF与逻辑运算配合嵌套if逻辑运算if并行while循环基本使用和breakdebugcontinueif和while一起使用FOR循环(很重要)普通遍历列表遍历字典range 迭代for循环 break continuefor循环打印99乘法表IF判断if 三种常用用法#语法1:# if 条件:# 代码体# code1# code2# code3# ....# 语法记忆方法# if+空格+条件+冒号#

2021-10-03 12:06:10 165

原创 python基础④-数据类型常用的操作和方法列表、元组、字典、集合

文章目录列表类型列表元素查取1、按索引存取值(正向存取+反向存取):即可存也可以取2、切片(顾头不顾尾,步长)3.len长度 列表元素的多少列表元素的修改1、增加元素2、删除元素3、修改元素4、排序(很重要)元组类型字典类型定义生成方式1、增加元素2、删除元素3、修改元素4、查找元素(非常重要)集合类型基本使用增删改查集合去重总结列表类型#一:基本使用# 1 用途:存放多个值,可以根据索引存取值# 2 定义方式:在[]内用逗号分割开多个任意类型的值# l=['dahai','lxx','yxx

2021-10-03 10:58:02 395

原创 python基础③-数据类型常用的操作和方法 字符串、数值、bool

文章目录最重要的字符串查看字符串类型常用操作+内置的方法切片(顾头不顾尾,步长)查找字符串当中的一段值 [起始值:终止值:步长]最重要的字符串#字符类型:str#作用:记录描述性质的数据,比如人的名字、性别、家庭地址、公司简介#定义:在引号内按照从左到右的顺序依次包含一个个字符,引号可以是单引号、双引号、三引号res = str('小王')ses1 = '小王'print(res)print(ses1)查看字符串类型res2=str([1,2,3])print(res2)pri

2021-10-03 09:56:14 229

原创 python基础②-常用的各种数据类型初认知

文章目录变量什么是变量type()函数字符串交互字符串的格式化输出数值类型数值的计算bool类型列表类型字典元组类型集合变量什么是变量计算机中用来存储值的可以存储值。也可以获取存储的值type()函数用来查看变量的类型aaa = '111'print(type(aaa))字符串作用:记录描述性质的数据,比如人的名字、性别、家庭地址、公司简介定义:在引号内按照从左到右的顺序依次包含一个个字符,引号可以是单引号、双引号、三引号一定要在英文状态下写代码name='你好'

2021-10-02 21:18:12 204

原创 python基础①-基础环境搭建和工具使用

文章目录python环境安装pycharm安装python环境安装python安装 建议:所有资源下载的时候建议使用迅雷,速度稍微快些打开官网https://www.python.org点击下载 根据自己的操作系统选择往下找3.7的版本 建议选择 executable 下载x86-64 表示64位操作系统zip file 压缩包形式executable 断网可安装的执行文件 web-based 联网的可执行文件双击下载的文件安装直接下一步

2021-10-02 20:41:06 198

原创 诡异问题:Hessian序列化问题

问题描述:在我们线上使用的RPC序列化是Hessian。参数子类和父类有相同的属性时。用Hessian序列化和反序列化时。会丢失该属性的值(为什么会有子类和父类相同属性?这是我老板以前写的代码。哈哈哈哈)@Dataclass A implements Serializable{ /** * 相同属性 */ private String str; private Integer integer;}@Dataclass B extends A {

2021-07-02 21:34:22 492

原创 zookeeper⑨ zk源码-watch机制怎么实现的

系列文章目录文章目录系列文章目录内容正在创作中,请稍等内容正在创作中,请稍等

2021-05-12 19:40:45 125

原创 zookeeper⑧ zk源码-集群中有节点挂了

系列文章目录文章目录系列文章目录内容正在创作中,请稍等内容正在创作中,请稍等

2021-05-12 19:38:56 149

原创 zookeeper⑦ zk源码-zk数据实现

系列文章目录文章目录系列文章目录内容正在创作中,请稍等内容正在创作中,请稍等

2021-05-12 19:37:39 87 2

原创 zookeeper⑥ zk源码-启动后数据同步

系列文章目录文章目录系列文章目录内容正在创作中,请稍等内容正在创作中,请稍等

2021-05-12 19:36:15 77

原创 zookeeper⑤ zk源码-选举核心逻辑

系列文章目录文章目录系列文章目录内容正在创作中,请稍等内容正在创作中,请稍等

2021-05-12 19:35:14 83

原创 zookeeper④ zk源码-选举前置准备

系列文章目录文章目录系列文章目录内容正在创作中,请稍等内容正在创作中,请稍等

2021-05-12 19:34:19 85 1

空空如也

空空如也

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

TA关注的人

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