- 博客(33)
- 收藏
- 关注
原创 OSI七层模型简单介绍
osi七层模型 前四层都是端到端,后三层说点到点应用层所有能和用户交互产生网络流量的程序都是应用层ex: qq,浏览器页面等表示层用于处理在两个通信系统中交换信息的表示方式(语义和语法)功能一:数据格式变换由于不同的系统数据格式不同 为了能够实现数据的一个交换ex:不同国家的人之间的交流 需要有人做翻译 翻译成他们能够听懂的话功能二:数据加密解密ex: 如果说密码的传输 不加密的话 被人截取会出现问题功能三:数据压缩和恢复:会话层向表示层实体/用户进程提供建立连接并且在
2022-04-23 23:34:35
3507
原创 使用InnoDB存储引擎的表进行单表访问的访问方法及含义
完整的访问方法有:system,const,eq_ref,ref,fulltext,ref_or_null,index_merge,unique_subquery,index_subquery,range,index,ALL本文就只介绍几个常见的方法及含义,所用表的储存引擎为InnoDbsystem表中只有一条记录切该表使用的储存引擎的统计数据是精确的,那么对该表的访问就是system,但是不同的是 在innodb中是allconst根据主键或者唯一二级索引与 常数进行等职匹配的时候,.
2022-02-08 21:57:14
199
原创 ElasticSearch篇1 - 简单的增删改查
本文所演示案例均以es7条件下一、es 添加数据添加的基本语法,使用post或者put进行添加POST[PUT] /{index}/_doc/{id}{xxxxx}如果指明id 则id随机生成POST /user/_doc/1{ "name":"hq", "age":"1000", "hobby":["吃","喝"]}或者PUT /user/_doc/2{ "address":"杭州"}二、es 删除删除id为2的文档DELETE /user/.
2021-12-03 20:33:57
1276
1
原创 go协程并发demo
自己使用的一个纪录,不做其他package mainimport ( "fmt" "io/ioutil" "net/http" "time")func main() { Urls := []string{ "/article/124945882", "/article/124961487", "/article/124960863", "/article/124806928", "/article/124960791", "/article/124.
2021-12-01 23:13:07
233
原创 go 日志库zap的使用
Goland中使用zap日志库运行下面的命令安装zapgo get -u go.uber.org/zap一 简单的logger实例通过调用zap.NewProduction()/zap.NewDevelopment()或者zap.Example()创建一个Logger在性能很好但不是很关键的上下文中,使用SugaredLogger。它比其他结构化日志记录包快4-10倍,并且支持结构化和printf风格的日志记录。在每一微秒和每一次内存分配都很重要的上下文中,使用Logger。它甚至比S
2021-09-22 22:38:52
1004
原创 Gorm新手入门教程
Gorm新手入门教程官网:gorm中文官网教程所在github地址:一、 环境配置安装go get -u gorm.io/gorm# mysql驱动 本文以mysql驱动为例go get -u gorm.io/driver/mysql# sqlite 驱动go get -u gorm.io/driver/sqlite二 、mysql数据库连接dsn := "用户名:密码@tcp(ip:port)/dbName?charset=utf8mb4&parseTime=True&
2021-09-12 22:55:10
2742
原创 python 多线程
本篇文章会对python的多线程 中 join方法、守护线程的设置在不同的情况下做一个讲解情景一:同时简单的运行两个线程def say(name): print('你好%s at %s' % (name, time.ctime())) time.sleep(2) print("结束%s at %s" % (name, time.ctime()))def listen(name): print('你好%s at %s' % (name, time.ctime()).
2021-04-27 12:35:06
93
1
原创 docker 常用命令 -- 个人笔记
docker run -it centos bash 进入一个centos 容器命令 进入交互模式docker run -d centos 后台启动问题 会发现centos 停止了docker 容器使用后台运行,就必须有一个前台程序,docker没有发现前台应用的时候会发现centos停止了exit 退出并停止容器ctrl + P +Q 只是退出容器docker rm 容器id 删除指定容器docker rm -f $(docker ps -aq) 删除所有的容器docker .
2021-04-12 23:40:31
127
原创 Collection容器 高频面试题
1 ArrayList和LinkedList的区别都是线程不同步的ArrayList底层使用的是Object数组,LinkedList使用的是双向链表增加和删除,当执行普通的增加和删除时,其时间复杂度近似o(1),当指定位置插入/删除时,ArrayList其时间复杂度近似o(n-1),因为其后面的元素需要向后移/向前移,LinkedList的时间复杂度近似o(n)是否支持快速随机访问,ArrayList由于底层是数组,天然的支持随机访问。LinkedList底层是联表,访问某个具体的
2021-04-06 16:25:22
62
原创 ArrayList扩容机制
java 版本:1.8类查看的流程:add()ensureCapacityInternal()ensureExplicitCapacity()grow()ArrayList源码:这里只贴出最重要的需要分析的代码// 默认的一个容量大小private static final int DEFAULT_CAPACITY = 10;// 以下三个留个印象 主要用于列表的初始化使用private static final Object[] EMPTY_ELEMENTDATA = {}; .
2021-03-23 16:42:59
236
原创 springcloud篇八之网关zuul
搭建步骤1.新建maven项目2. 导入依赖3. 编写配置4. 启动类注解5. 启动生产者消费者 及注册中心 在启动网关类6. 测试1.新建maven项目2. 导入依赖 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-
2021-03-05 10:44:43
190
5
原创 springcloud篇之七dashboard数据流展示面板
配置流程:1 、服务端 引入hystrix及actuator依赖2、controller层@HystrixCommand注解的存在3、主启动类中必须有@EnableCircuitBreaker注解及ServletRegistrationBean的处理@SpringBootApplication@EnableEurekaClient@EnableCircuitBreakerpublic class ApplicationProviederDept_8002 { public stati
2021-03-04 14:29:49
344
1
原创 springcloud篇六之 熔断 降级
服务熔断->服务端操作服务降级->客户端操作有关详情点击查看熔断的使用很简单1、引入依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> <version>1.4.6..
2021-03-03 17:43:44
227
2
原创 springcloud篇五之feign接口式服务调用
feign和ribbon 原理最后都是为了负载均衡两者不同点如下1.ribbon:通过应用名实现服务端的调用2.feign:底层也是用了ribbon的负载均衡机制,但是调用服务端采用了接口的方式,这种方式更符合java的调用开始干活:为了区分及保留原来的消费者,新建一个maven项目新项目结构图如下:1、修改pom文件:<dependencies> <dependency> <groupId>org.examp.
2021-03-03 11:56:03
308
原创 sprigcloud篇四之ribbon负载均衡 基于服务名的调用
sprigcloud篇四之ribbon 基于服务名调用负载均衡设备根据一定的算法会讲客户端的请求分配到其中一个服务器,避免了所有请求由一个服务器实现,减小了服务器的压力负载均衡的实现:1、引入依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId>
2021-03-02 16:12:05
463
原创 springcloud篇三之注册中心eureka
一、新建maven项目作为注册中心使用项目结构:这个项目只需要以下几个步骤即可1、导入依赖org.springframework.cloudspring-cloud-starter-eureka-server1.4.6.RELEASEorg.springframework.bootspring-boot-devtools
2021-03-02 14:56:32
144
原创 springcloud篇二之生产者与消费者
一、springcloud篇之生产者与消费者1.1、新建一个maven项目作为父工程,只留pom配置文件以下是我们会用的一些依赖,使用的是依赖管理,springcloud和springboot版本对用很重要 别出错了<packaging>pom</packaging><properties> <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
2021-03-02 11:07:35
1194
原创 springcloud篇一之什么是springcloud
友情链接:springcloud学习文档一、springcloud是什么? 通俗的讲就是构建微服务开发和治理的一个集合框架,也可理解为springboot的扩展框架二 、什么是微服务 微服务是一种架构风格,即将单位应用划分为小型的服务单元,微服务之间使用http和api进行资源访问与操作微服务架构的好处: 1.服务的独立部署 2.服务的快速启动 3.更加适合敏捷开发 4.职责转义,服务拆分 5.代码复用 6.根.
2021-03-01 14:06:17
165
1
原创 Spring篇一:ioc容器之bean的自动装配及通过注解自动装配
新手学习spring 勿喷谢谢 若有不对之处请多多指教Spring的三种装配方式 1、在xml中显示的装配 autowire 可以通过bytype和byname的方式实现 必须得有set方法 2、在java中显示配置 用的很少 3、隐式的自动装配bean【重要】项目依赖:<dependency> <groupId>org.springframework</groupId> .
2021-01-05 16:13:16
305
原创 mybatis篇五:mybatis缓存
1、一级缓存mybatis默认开启的是一级缓存但是由于一级缓存只是存在于会话中 也就是sqlsession连接和关闭的这段时间测试一级缓存demopojo实体层public class User { private int id; private String name; private String password; public User() { } public User(int id, String name, String passw
2020-12-30 12:58:08
120
5
原创 mybatis篇四:多对一联表查询
此demo实现 学生实体及老师实体之间的联表查询多个学生对应一个老师实现的目标:查询多个学生对应的老师信息及学生信息项目结构:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KGUGLt73-1609228713814)(C:\Users\hq\AppData\Roaming\Typora\typora-user-images\image-20201229145219512.png)]pojo层实体类Student.java/** 多个学生对应一个老师* .
2020-12-29 16:00:03
97
原创 mybatis篇三:一对多联表查询demo
此demo实现 学生实体及老师实体之间的联表查询一个老师对应多个学生,实现的目标:查询指定老师下的所有学生信息及老师信息项目结构:pojo层实体类Student.javapackage com.hq.pojo;public class Student { private int id; private String name; private int tid ; public Student() { } public Student(int .
2020-12-29 14:43:16
163
原创 mybatis篇二:mybatis实现简单的curd
2 、mybatis curdid对应接口的方法名 参数类型是user时 写全类名 ,增删改默认返回类型为int,其参数类型是全类名的时候,其属性可以直接拿2.1、新增用户userDao//增加一个用户int insertUser(User user);UserMapper.xml<insert id="insertUser" parameterType="com.hq.pojo.User" > insert into user(id,name,pass
2020-12-25 17:04:23
104
原创 mybatis篇一、mybatis简单搭建demo
mybatis为防止mapper.xml文件找不到时会报错 可在pom.xml中写入 文件过滤配置,文件过滤xml配置如下: <build> <resources> <resource> <directory>src/main/java</directory> <includes> &
2020-12-25 17:00:43
207
原创 redis 主从复制+高可用sentinel哨兵模式-来自菜鸟的解释
一、安装与下载历史版本官网下载github各版本下载二、解压目录结构最后的sentinel.conf是我自己创建的三 、redis的主从复制redis 一主二从 一个master端 多个slave端,很类似scrapy的分布式爬虫。 - master端可读可写 - slave端只可读,不可写解决的主要问题(本人看来): 就是分担一个redis服务器读的压力,还有就是redis在复制 时候是非阻塞的,意味着在主从复制的时候 ,仍然可以处理命令还存在的一些问题 因为
2020-07-29 10:19:56
152
原创 scrapy 万能sql插入语句
作者: Qiang He邮箱:1422127065@qq.comscrapy万能插入sql写法本次示例为scrapy 爬取的豆瓣top250网站(https://movie.douban.com/top250)item.pytitle=scrapy.Field()comment = scrapy.Field()link = scrapy.Field()quote = scrapy....
2019-12-24 09:58:15
332
原创 python数据采集之自动化测试库 selenium
python数据采集之自动化测试库 selenium使用selenium之前需要搭建selenium的环境:python3环境,selenium环境(推荐谷歌驱动,火狐也可以),浏览器(推荐谷歌浏览器)需要注意的是selenium的版本需要和浏览器版本相对应详情及下载 https://www.cnblogs.com/yfacesclub/p/8482681.htmlselenium安装 ht...
2019-11-29 15:54:03
260
原创 python数据采集之requests
python数据采集之requests利用requests库发起get或者post请求使用代码范例import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport jsonimport time#随机请求头ua=UserAgent()# get请求def get_url(url)...
2019-11-29 15:53:09
347
原创 python 高级初识socket网络编程
python 高级初识socket网络编程简单实现服务端和客户端之间的通信 实现多人聊天首先创建一个server.pyimport socketimport threadingserver=socket.socket(socket.AF_INET,socket.SOCK_STREAM)host=socket.gethostname()port=8888server.bind((h...
2019-11-29 15:52:26
464
原创 scrapy 图片下载
scrapy 图片下载使用scrapy 下载图片代码示例spider.pyimport scrapyfrom DownloadPhoto.items import DownloadphotoItemclass TupianSpider(scrapy.Spider): name = 'tupian' allowed_domains = ['daimg.com'] ...
2019-11-29 15:26:53
185
原创 scrapy爬取CSDN文章
爬取思路首先csdn的文章列表页都是需要刷新或者点击加载才会显示更多的内容,并且返回的是json数据这里有两种爬取思路:1 用构造get请求2 用selenium 模拟驱动浏览器的js函数通过不断下拉进度条来加载页面(思路简单 但是不推荐)下面介绍如何通过构造get请求来实现文章通过chrome的检查 下面是请求的urlhttps://www.csdn.net/api/artic...
2019-08-12 20:19:34
544
2
原创 基于redis的分布式爬虫案例--糗事百科
糗事百科采用分布式爬取1:scrapy-redis的工作原理2:准备工作3:我们开始吧(从图片入手)4:修改设置文件5:redis数据库的选择(不同系统下redis配置在config设置有些不同,本次测试全部基于windows环境下,其他环境请自行百度)6:master端数据库连接7:最后让我们开始运行我们的项目吧7.1:本地redis篇7.2:远程篇 本机作为slave端8:总结1:scrap...
2019-04-04 16:14:06
507
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人