自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 诊断工具 Arthas 进阶教程

本博文来源于学习阿里云知行动手实验室笔记,写在前面,博主从17年接触到Java,开启半年自学入行,博客名为逆流者blog,希望一直可以保持乐观、积极的学习心态,在编程的世界里逆流而上。

2022-08-03 11:17:22 384 2

原创 Java 诊断工具 Arthas 基础教程

本博文来源于学习阿里云知行动手实验室笔记,写在前面,博主从17年接触到Java,开启半年自学入行,博客名为逆流者blog,希望一直可以保持乐观、积极的学习心态,在编程的世界里逆流而上。

2022-08-03 11:14:53 772

原创 org.eclipse.paho.client.mqttv3 源码研究

为了使消息传递可靠并能够承受正常和异常的网络中断以及客户端和服务器中断,客户端必须在传递消息时使用持久存储来保存消息。MQ遥测传输(MQTT)是一种基于代理的轻量级发布/订阅消息传递协议,旨在开放、简单、轻量级且易于实现。每个连接到MQTT服务器的客户端实例都必须具有唯一的客户端标识符。如果具有相同ID的客户端的第二个实例连接到服务器,则第一个实例将断开连接。连接时的cleansession选项对客户端的操作有很大的影响。包含一个编程接口,使应用程序能够与MQTT服务器进行通信。...

2022-07-15 21:59:15 1795

原创 十四、行为型 责任链模式(Chain of Responsibility Pattern)

责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。日志抽象类结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html...

2022-06-27 22:51:42 144

原创 十三、结构型 代理模式(Proxy Pattern)

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。接口真实对象代理对象测试类结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html

2022-06-26 23:28:51 95

原创 十二、结构型 享元模式(Flyweight Pattern)

享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。一个形状接口形状接口实现类:圆一个创建形状的工厂测试类结果:从结果中可以看出,同一种颜色的圆只会创建一次,执行了20次,最多也只有5个对象,这里随机测试结果是5个对象。参考:https://www.runoob.com/design-pattern/design-pattern-intro.html...

2022-06-26 17:33:27 84

原创 十一、结构型 外观模式(Facade Pattern)

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。形状接口形状实现类外观类测试类结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html...

2022-06-26 17:07:55 116

原创 十、结构型 装饰器模式(Decorator Pattern)

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。一个接口接口实现类装饰器抽象类也实现形状接口装饰器实现类使用 RedShapeDecorator 来装饰 Shape 对象结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html...

2022-06-26 13:33:36 95

原创 六、结构型 适配器模式(Adapter Pattern)

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。播放器统一的入口写一个适配器类,来适配高级媒体播放器播放器入口测试类结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html...

2022-06-26 09:48:14 164 1

原创 九、结构型 组合模式(Composite Pattern)

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html...

2022-06-25 22:43:27 74

原创 八、结构型 过滤器模式(Criteria Pattern)

过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。定义一个标准接口标准接口的实现类们过滤出男人的实现类过滤出女人的实现类过滤出单身的实现类同时满足两个标准的实现类只需满足一个标准的实现类测试类结果:根据上面不同的标准,可以过滤出来不同的结果,你学会了吗?java8中

2022-06-25 22:19:48 116

原创 七、结构型 桥接模式(Bridge Pattern)

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。桥接接口实现类抽象类抽象类的实体类测试类结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html...

2022-06-25 18:22:42 99

原创 设计模式简介

23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。这些设计模式特别关注对象之间的通信。参考:https://w

2022-06-25 18:00:23 74

原创 五、创建型 原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。创建扩展了上面抽象类的实体类。创建一个缓存测试结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html...

2022-06-21 11:35:44 73

原创 四、创建型 建造者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。结果:

2022-06-20 20:51:37 86

原创 二、创建型 抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。结果:参考:https://www.runoob.com/design-pattern/design-pattern-intro.html

2022-06-20 20:50:46 66

原创 Kafka Broker

1 Kafka Broker 工作流程1.1 Zookeeper 存储的 Kafka 信息[vagrant@localhost bin]$ ./zkCli.sh ....[zk: localhost:2181(CONNECTED) 1] ls /kafka[admin, brokers, cluster, config, consumers, controller, controller_epoch, feature, isr_change_notification, latest_produc

2022-03-27 13:48:37 2537

原创 Kafka 生产者

生产者消息发送流程发送原理在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 RecordAccumulator 中拉取消息发送到 Kafka Broker。batch.size:只有数据积累到batch.size之后,sender才会发送数据。默认16k ;linger.ms:如果数据迟迟未达到batch.

2022-03-13 17:03:24 2829

原创 Kafka 基础架构

Kafka 基础架构为方便扩展,并提高吞吐量,一个topic分为多个partition;配合分区的设计,提出消费者组的概念,组内每个消费者并行消费;为提高可用性,为每个partition增加若干副本,类似NameNode HA;ZK中记录谁是leader,Kafka2.8.0以后也可以配置不采用ZK;名词说明Producer:消息生产者,就是向 Kafka broker 发消息的客户端。Consumer:消息消费者,向 Kafka broker 取消息的客户端。Consumer Gr

2022-02-19 19:28:38 426

原创 kafka server.properties配置文件说明

完整配置文件:# Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements. See the NOTICE file distributed with# this work for additional information regarding copyright ownership.# The ASF licenses this file to You u

2022-02-19 18:40:44 1593

原创 Kafka 命令行操作

kafka-topics.sh 脚本使用参数列表:[vagrant@localhost kafka_2.12-3.0.0]$ bin/kafka-topics.shCreate, delete, describe, or change a topic.Option Description ------ -----

2022-02-19 18:22:30 1719

原创 Kafka集群安装

上传安装包 kafka_2.12-3.0.0.tgz 到服务器[vagrant@localhost ~]$ lltotal 276772drwxrwxr-x. 8 vagrant vagrant 158 Jan 2 15:24 apache-zookeeper-3.5.7-bin-rw-rw-r--. 1 vagrant vagrant 9311744 Jan 2 14:56 apache-zookeeper-3.5.7-bin.tar.gzdrwxrwxr-x. 8 vagr

2022-02-19 12:27:13 1059

原创 第1章 Elasticsearch 概述

1.1 Elasticsearch 是什么The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 ElasticStack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。

2022-01-30 02:00:00 131

原创 第 3 章 Zookeeper集群操作

apache-zookeeper-3.5.7-bin/conf/zoo.cfg# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getti

2022-01-28 14:38:33 2225

原创 第 2 章 Zookeeper 本地安装

安装包下载地址:https://zookeeper.apache.org/releases.html以 apache-zookeeper-3.5.7-bin.tar.gz 安装包为例配置文件apache-zookeeper-3.5.7-bin/conf/zoo.cfg# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phas

2022-01-08 16:32:16 1244

原创 第1章 Zookeeper简介

概述Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。Zookeeper工作机制:Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。特点Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。集群中只要有半数以上节

2022-01-08 16:02:42 59

原创 使用sprintboot 优雅的整合 mqtt

mqtt 有许多实现的产品,这里使用国内使用比较多的emqx,可以参考 emqx安装 来安装环境emqx 官方有提供java示例来连接mqtt:传送门下面我使用springboot 来优雅的整合下创建springboot 工程pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM

2021-11-26 22:49:59 1154 2

原创 使用docker安装zookeeper

zookeeper单机拉取镜像:docker pull zookeeper:3.6.3运行docker run -d -p 2181:2181 --name zookeeper --restart always zookeeper:3.6.3-d 后台运行-p 映射端口,主机端口:容器端口--name 指定容器名称--restart always docker 启动时 启动此容器...

2021-11-23 22:57:49 330

原创 16. Python3 使用API

使用Web APIWeb API 是网站的一部分, 用于与使用非常具体的URL请求特定信息的程序交互. 下面通访问github API来演示怎么使用python调用API.安装 requests# -i https://pypi.mirrors.ustc.edu.cn/simple/ 临时访问国内镜像源pip3 install --user requests -i https://pypi.mirrors.ustc.edu.cn/simple/GitHub API尝试访问github API

2021-11-23 22:56:54 846

原创 15. Python3 处理JSON格式数据(制作交易收盘价走势图)

处理JSON格式数据用具体案例(制作交易收盘价走势图)来学习处理下载收盘价数据btc_close_2017.json代码演示案例中也有下载地址btc_close_2017.py代码from __future__ import (absolute_import, division, print_function, unicode_literals)try: # python2.x 版本 from urllib2 import urlopenexcept: # python3.x 版本

2021-11-23 22:55:56 264

原创 14. Python3 使用csv模块处理CSV(逗号分割的值)格式存储的天气数据

CSV文件格式CSV文件格式是逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).datetime模块因为csv格式文件中含有日期格式, 我们使用datetime模块来解析.datetime模块中strptime函数可根据接受的实参规则来解析日期from datetime import datetimefirst_date = datetime.strptime('2020-10-2

2021-11-23 09:29:05 792

原创 13. Python3 使用Pygal生成矢量图形文件

简介Pygal是Python可视化包, 可以用来生成矢量图形文件, 专注于在数字设备上显示的图标.官方文档: http://www.pygal.org/en/stable/安装Pygal默认是从国外的pip源下载软件包, 下载速度太慢, 可以考虑切换为国内的pip源.https://pypi.tuna.tsinghua.edu.cn/simple/ # 清华大学https://mirrors.aliyun.com/pypi/simple/ # 阿里云https://pypi.douban.c

2021-11-23 09:27:22 225

原创 12. Python3 使用matplotlib绘制图表

简介matplotlib 是一个数学绘图库, 可用来制作简单的图表, 如折线图和散点图等等.安装matplotlibmac# -i https://pypi.mirrors.ustc.edu.cn/simple/ 临时访问国内镜像pip3 install --user matplotlib -i https://pypi.mirrors.ustc.edu.cn/simple/测试 matplotlibwushanghuideMacBook-Pro:~ wushanghui$ python3

2021-11-22 22:15:56 926

原创 11. Python3 测试代码

测试函数先看下测试代码name_function.pydef get_formatted_name(first, last, middle=''): """生成整洁的姓名""" if middle: full_name = first + ' ' + middle + ' ' + last else: full_name = first + ' ' + last return full_name.title()测试代码:from n

2021-11-22 22:13:51 299

原创 10. Python3 文件和异常

从文件中读取数据open()函数: 打开文件, 它会返回一个文件对象with 关键字 作用是在不需要访问文件后将其关闭读取整个文件先准备一个文件:china.txt我爱你中国 我和我的祖国 台湾是祖国不可分割的一部分# 读取整个文件with open('china.txt') as file_object: contents = file_object.read() print(contents)打印结果:我爱你中国 我和我的祖国 台湾是祖国不可分割的一部

2021-11-22 22:12:47 282

原创 9. Python3 类

创建和使用类创建Dog类class Dog(): """一次模拟小狗的简单尝试""" def __init__(self, name, age): """初始化属性name和age""" self.name = name self.age = age def sit(self): """模拟小狗被命令蹲下""" print(self.name.title() + ' 现在蹲下!') de

2021-11-22 22:11:00 442

原创 8. Python3 函数

定义函数def 函数名(参数列表): 函数体看一个例子:# 定义函数def greet_user(): """显示简单的问候语""" print("hello")greet_user()运行结果:hello"""显示简单的问候语""" 文档注释向函数传递信息# 向函数传递信息def greet_user(username): """显示简单的问候语""" print("Hello, " + username.title() + "!"

2021-11-22 22:10:06 126

原创 7. Python3 用户输入和while循环

用户输入使用input()函数input()让程序暂停运行, 等待用户输入一些文本. 获取用户输入后, Python将其存储在一个变量中, 需要注意的是这个变量是一个字符串, 如果用户输入的是一个数字, 那接收的就是字符串类型的数字.# input()message = input("请输入你的名称: ")print('hello ' + message)age = input("请输入你的年龄: ")age = int(age)print(age)对于接收年龄的变量, 可用int()

2021-11-22 22:09:05 318

原创 6. Python3 字典

一个简单的字典alien_0 = {'color': 'green', 'points': 5}print(alien_0)print(alien_0['color'])print(alien_0['points']){'color': 'green', 'points': 5}green5使用字典上面的列子中:alien_0 = {'color': 'green', 'points': 5}使用花括号{}表示字典, 里面是一系列键-值对访问字典中的值alien_0['color

2021-11-22 22:08:18 76

原创 5. Python3 if 语句

一个简单示例cars = ['bmw', 'audi', 'toyota', 'subaru']for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title())BMWAudiToyotaSubaru条件测试检查是否相等# 检查是否相等 (区分大小写)car = 'Audi'print(car == 'audi')# 不相等print(car

2021-11-22 22:06:57 116

frp_0.32.0_linux_all.zip

frp 内网穿透合集 frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

2020-03-30

空空如也

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

TA关注的人

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