- 博客(40)
- 收藏
- 关注
原创 Web服务客户端之Feign
前文介绍了实现客户端负载均衡的Ribbon,但直接使用Ribbon的API来实现服务间的调用相对较为繁琐,服务间的调用能否像本地接口调用一样便捷、透明,更符合编程习惯呢?Feign就是用来干这事的。FeignFeign是一个声明式的Web服务客户端,让服务之间的调用变得非常简单——定义带@FeignClient注解的接口,本地直接@Autowired 接口,通过调用接口的方法来实现远程服务...
2020-01-20 11:37:46
279
原创 Dubbo 2.7.5在线程模型上的优化
文章中说这是Dubbo的一个里程碑式的版本。在阅读了相关内容后,我发现这确实是一个里程碑式的跨域,对于Dubbo坎坷的一生来说,这是展现其强大的生命力和积极探索精神的一个版本。强大的生命力体现在新版本发布后众多的或赞扬、或吐槽的社区反馈。探索精神体现在Dubbo在多语言和协议穿透性上的探索。在文章中列举了9大改造点,本文仅介绍2.7.5版本中的一个改造点:优化后的消费端线程模型。...
2020-01-20 11:37:08
1225
2
原创 实战_Spring_Cloud
前言开发环境 部署环境:阿里云ECS服务器 操作系统:CentOS 7.7 64位 IDEA 版本:2019.3.1 docker 版本:1.13.1 docker-compose版本:1.25.0 spring cloud 版本:Hoxton.SR1 spring boot 版本:2.2.2.RELEASE mysql 版本:5.7 redis 版本:5...
2020-01-20 11:36:01
190
原创 我与Git的那些破事--分支模型
话不多上,干货顶上。分支模型上述这张图便是一张完整的分支模型。乍看上去,似乎有点复杂,其实理解后非常简单,并且十分经典。如果你所在项目代码管理较为混乱,我相信,该模型会对你有所帮助。主要分支对于完整的项目来讲,有两个主要分支,它们的生命周期与项目等同,即一直会存在:master分支 develop分支master:我相信,每个git用户都非常熟悉该分支,没错,这是创建项...
2020-01-18 14:07:17
240
1
原创 垃圾收集器与内存分配策略
垃圾收集器与内存分配策略垃圾收集(Garbage Collection, GC)是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如Scala等)程序员在提升开发效率上获得了惊人的便利。理解GC,对于理解JVM和Java语言有着非常重要的作用。并且当我们需要排查各种内存溢出、内存泄漏问题时,当垃圾收集称为系统达到更高并发量的瓶颈时,...
2020-01-18 14:06:20
119
原创 整理drawable(shapdrawable)
前言bitmapdrawable 与nithpathdrawable 完结,接下来是shapedrawable。shapedrawable是使用频率最高的drawable 可见其重要性。shapedrawableshapedrawable 有 rectangle、oval、line、ring分别对应 矩形、椭圆、横线、圆环。矩形先看一段:<?xml vers...
2020-01-18 14:05:50
168
原创 常见基本数据结构——散列
散列表的实现通常叫做散列。散列是一种用于以常数平均时间执行插入、删除和查找的技术。但是任何排序的信息都不会得到有效的支持。所以FindMax(),FindMin(),以及以线性时间打印的操作都是散列所不支持的。理想的散列表数据结构值不过是一个包含有关键字的具有固定大小的数组。关键字映射的函数叫做散列函数,通常散列函数应该运算简单并且保证任何两个不同的关键字映射到不同的单元。不过这是不可能的...
2020-01-18 12:41:22
285
原创 SpringBoot多数据源:动态数据源
2. 动态数据源流程说明Spring Boot 的动态数据源,本质上是把多个数据源存储在一个 Map 中,当需要使用某个数据源时,从 Map 中获取此数据源进行处理。而在 Spring 中,已提供了抽象类AbstractRoutingDataSource来实现此功能。因此,我们在实现动态数据源的,只需要继承它,实现自己的获取数据源逻辑即可。动态数据源流程如下所示:用户访问应用,在需...
2020-01-18 12:40:23
562
原创 关于Log4Net的使用及配置方式
0.简介Log4Net库是Apache log4j框架在 .NET平台下的实现,其开源免费。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。 官网地址:http://logging.apache.org/log4net/index.html Log4Net开源地址:https://github.com/apache/logging-log4net/1.安装程序包...
2020-01-18 09:33:10
561
原创 RocketMQ客户端加载流程
这节介绍RocketMQ客户端的启动流程,即Consumer和Producer的启动流程。1. 客户端demo 首先先看下客户端的demoProducer:public class SyncProducer { public static void main (String[] args) throws Exception { // 实例化消息生产者Pr...
2020-01-18 09:32:24
274
原创 Netty之缓冲区ByteBuf解读(一)
Netty 在数据传输过程中,会使用缓冲区设计来提高传输效率。虽然,Java 在 NIO 编程中已提供 ByteBuffer 类进行使用,但是在使用过程中,其编码方式相对来说不太友好,也存在一定的不足。所以高性能的 Netty 框架实现了一套更加强大,完善的 ByteBuf,其设计理念也是堪称一绝。ByteBuffer 分析在分析 ByteBuf 之前,先简单讲下 ByteBuffer...
2020-01-18 09:31:45
678
原创 一文搞定Spring Boot + Vue 项目在Linux Mysql环境的部署(强烈建议收藏)
本文介绍Spring Boot、Vue 、Vue Element编写的项目,在Linux下的部署,系统采用Mysql数据库。按照本文进行项目部署,不迷路。1. 前言典型的软件开发,经过“需求分析”,“概要设计”,“详细设计”,“开发及单元测试”,“前后端联调”,“生产环境上线”。到了发布到生产环节的环节,紧张的神经,终于可以松一口气了!!!且慢,部署也是很重要的一环,稍有不慎就会“前功...
2020-01-18 08:09:19
447
原创 什么是注解?
一、概念Java 注解是在 JDK5 时引入的新特性,注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。注解类型定义指定了一种新的类型,一种特殊的接口类型。 在关键词 interface 前加 @ 符号也就是用 @interface 来区分注解的定义和普通的接口声明。目前大部分框架(如 Spring Boot 等)都通过使用注解...
2020-01-18 08:08:47
322
原创 Python3.7之Python介绍
一、编程语言编程语言总体分为机器语言、汇编语言与高级语言。1.机器语言计算机内部只能接受二进制代码,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。机器语言依赖于具体机种,局限性很大,属于低级语言。2.汇编语言和机器语言一样,都是直接对硬盘进行操作。指令采用英文缩写的...
2020-01-16 15:58:06
416
原创 活动安排-贪心算法-可视化
前情提要有n个活动(假设n很大,人力安排较困难)n个活动的开始时间和结束时间已经知道但我又想充分利用资源,安排最多数量的活动贪心算法语言:python可视化依赖的第三方库:numpy,matplotlib开始活动安排之旅贪心算法概述:创建活动类(或结构体),按照用户输入实例化为一个个活动对象,按照活动的结束时间增序对活动整体排序,挑选活动时,活动的结束...
2020-01-16 15:57:22
441
原创 django查询表数据是否存在
一.查询函数通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询。 (这里objects是django为我们实现的一个模型管理类的对象)(1)get返回满足条件的一条且只有一条数据。返回值是一个模型类的对象。参数中写查询条件。1)如果查到多条数据,则抛异常MultipleObjectsReturned。2)查询不到数据,则抛异常:DoesNotEx...
2020-01-16 14:50:33
7806
1
原创 用脚本创建django-orm数据库表数据
脚本创建数据库表数据import osimport sysimport djangobase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(base_dir)# 将配置文件的路径写到 DJANGO_SETTINGS_MODULE 环境变量中os.environ....
2020-01-16 14:49:12
121
原创 Django框架:设计模型
1. 设计模型我们之前操作数据库是通过写sql语句,那么能不能不写sql语句就可以操作数据库呢? 当然可以,这就要使用ORM框架了。1.1 ORM框架O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表...
2020-01-16 14:47:56
401
原创 Python实现云服务器防止暴力密码破解
云服务器防止暴力密码破解云服务器暴露在公网上,每天都有大量的暴力密码破解,更换端口,无济于事,该脚本监控安全日志,获取暴力破解的对方ip,加入hosts黑名单路径说明描述 路径 登录安全日志 /var/log/secure hosts黑名单 /etc/hosts.deny hosts白名单 /etc/hosts.allow 逻辑介绍通过...
2020-01-16 10:58:08
415
原创 在python中最常见的:print的真正用法
一、print()函数概述print() 方法用于打印输出,是python中最常见的一个函数。该函数的语法如下:print(*objects, sep=' ', end='\n', file=sys.stdout)参数的具体含义如下: objects --表示输出的对象。输出多个对象时,需要用 , (逗号)分隔。 sep -- 用来间隔多个对象。 end...
2020-01-16 10:57:05
809
原创 四种Python 列表反转显示方法
第一种,使用reversed 函数,reversed返回的结果是一个反转的迭代器,我们需要对其进行 list 转换listNode = [1,2,3,4,5]newList = list(reversed(listNode))print(newList)#结果[5,4,3,2,1]第二种,使用sorted函数,sorted是排序函数,它是对一个列表进行排序后生成一个新的lis...
2020-01-16 09:35:42
920
原创 Django模板继承下的动态数据传递—上下文处理器
模板继承可以减少页面内容的重复定义,实现页面内容的重用。我的个人博客右侧的导航栏都是继承base页面从而让代码得到最大程度的复用。但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的。我们可以通过自定义上下文处理器来解决。Django上下文处理器(Context Processor)上下文处理器是接收HttpRequest为参数并返回dict形式的数据的函数。它的主要用途...
2020-01-16 09:35:06
640
原创 Django框架:后台管理
1. 后台管理在Java中,想要实现后台管理,是非常的麻烦的,但是在python中只需要几行代码,就可以实现数据库的增删改查了。Django能够根据定义的模型类自动地生成管理页面。1.1 管理界面本地化本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,中国大陆地区使用简体中文,时区使用亚洲/上海时区,注意这里不使用北京时区表示。打开djangotest/s...
2020-01-16 09:34:36
1018
原创 我是如何做到springboot自动配置原理解析
一前言springboot 2.0.0版本分析,整体的自动配置流程如下:具体配置参考官方文档:springboot-doc二 @SpringBootApplication核心注解@SpringBootConfiguration其实就是@Configuration注解,表示是个配置类;@EnableAutoConfiguration表示springboot的自动配置机制;@Com...
2020-01-15 12:35:57
68
原创 python爬虫——requests库使用代理
在看这篇文章之前,需要大家掌握的知识技能:python基础 html基础 http状态码让我们看看这篇文章中有哪些知识点:get方法 post方法 header参数,模拟用户 data参数,提交数据 proxies参数,使用代理 进阶学习安装上requests库pip install requests先来看下帮助文档,看看requests的介绍,用p...
2020-01-15 12:34:18
415
原创 python中__call__方法
在 Python 中提供了__call__ 方法,允许创建可调用的对象(实例)。如果类中实现了 __call__ 方法,则可以像使用函数一样使用类。例如简单的封装一个接口 get/post 方法: 1 import requests 2 3 class Run(): 4 def __init__(self): 5 pass 6 7 # __...
2020-01-15 12:33:46
100
原创 无知的我 How ignorant.
1.使用“\d+”匹配全数字代码:1 import re2 3 zen = "Arizona 479, 501, 870. Carlifornia 209, 213, 650."4 5 m = re.findall("\d+", zen)6 7 print(m)结果:['479', '501', '870', '209', '213', '650']但是上述这种...
2020-01-15 12:12:43
126
原创 python二维列表求解所有元素之和
相信很多初学小伙伴都会遇到二维列表求解所有元素之和问题,下面给出两种两种常见的求和方法。方法1:思想:遍历整个二维列表元素,然后将所有元素加起来 1 def Sum_matrix(matrix): 2 sum=0 3 for i in range(len(matrix)): 4 for j in range(len(matrix[i])): 5...
2020-01-15 12:11:45
3591
原创 用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!
写在前面考研在即,想多了解考研er的想法,就是去找学长学姐或者去网上搜索,贴吧就是一个好地方。而借助强大的工具可以快速从网络鱼龙混杂的信息中得到有价值的信息。虽然网上有很多爬取百度贴吧的教程和例子,但是贴吧规则更新快,目的不一样,爬取的内容也不一样,所以就有了这个工具。目的爬取1000条帖子→判断是否是广告或者垃圾信息→分析语言情感→生成词云一、分析1.1 先查看贴吧的规则,果...
2020-01-15 09:08:38
468
1
原创 爬虫框架 Scrapy 入门基础:对接 Selenium 实战
引言Scrapy 抓取页面的方式和 Requests 类库是一样的,都是直接模拟 HTTP 请求,对于由 JavaScript 动态渲染的页面就有些显得无能为力了。我们前面抓取由 JavaScript 动态渲染的页面是使用 Selenium 对接浏览器进行页面抓取,当然,在 Scrapy 中同样也可以对接 Selenium 。通过这种方案,我们无需关心一个页面加载是发送的请求,也无需关...
2020-01-15 09:07:28
561
原创 Python 进行 OCR识别 -- pytesseract库
报错:tesseract is not installed or it's not in your path下载安装 Tesseract-OCR https://pan.baidu.com/s/1qXumxdltxOnb0geaE_1U-Q 修改 pytesseract 源码中的路径 文件位置: Python安装目录 \Lib\site-packages\pytesseract\p...
2020-01-14 16:06:28
2877
2
原创 【python】两行代码实现近百年的正反日期查询--20200202
到2020年了。有个日期也火了,记得上一次还是2011年11月2日。为啥捏,因为日期写成数字形式 正反是一样的。2020年也有一个这样的日期。20200202:2020年2月2日。于是乎想写一段代码,都有哪些日期是满足这个条件的。用python 两行代码搞定。首先导入一个时间包:arrow。然后就是使用arrow进行转换格式,时间范围,for循环 最后输出import a...
2020-01-14 16:05:55
418
原创 python爬虫——requests库使用代理
在看这篇文章之前,需要大家掌握的知识技能:python基础 html基础 http状态码让我们看看这篇文章中有哪些知识点:get方法 post方法 header参数,模拟用户 data参数,提交数据 proxies参数,使用代理 进阶学习安装上requests库pip install requests先来看下帮助文档,看看requests的介绍,用p...
2020-01-14 16:05:30
891
原创 爬虫防止浏览器防止debug处理
方式一(基于你会前端,我比较喜欢这种方式)#复制html页面#复制其中的js,css(css可有可无,如果加css和不加css情况不一样,网页可能做了css反爬处理)#全局搜索debug or bug ,找到关键字进行删除或者其他处理#将htmljs的链接改成本地 #个人喜欢这样方式,我可以随意的改写他js的逻辑方式二(F12调试解密打断点)#也是一样全局搜索debug ...
2020-01-14 14:38:25
648
原创 Pyspider的简单介绍和初使用
Pyspider是由国人(binux)编写的强大的网络爬虫系统Ptspider带有强大的WebUi / 脚本编辑器 / 任务监控器 / 项目管理器以及结果处理器。他支持多种数据库后端 / 多种消息队列 / Javascript 渲染页面爬去。使用起来非常方便基本功能提供了方便易用的 WebUi 系统,可视化的编写和调试爬虫 提供爬去进度监控 / 爬去结果查看 / 爬虫项目管理等功能...
2020-01-14 14:37:35
557
原创 mongo客户端升级导致pymongo中使用聚合函数时出现异常
一.异常信息The 'cursor' option is required, except for aggregate with the explain argument二.解决办法#部分源代码错误代码pipeline = [ {"$match": { "updateTime": { "$gte":(datetime.datetim...
2020-01-14 13:08:28
204
原创 在Django中使用Sentry(Python 3.6.8 + Django 1.11.20 + sentry-sdk 0.13.5)
1. 安装Sentrypip install sentry-sdk==0.13.52.在settings.py中配置sentry_sdk.init( dsn="https://*************@sentry.io/1879284", integrations=[DjangoIntegration()], send_default_pii=True...
2020-01-14 13:08:03
387
原创 python之嵌套函数调用
#定义嵌套函数def func1(): print('this is func1') def func2(): print('this is func2')#调用1func1()输出:this is func1上面没有输出this is func2,说明嵌套子函数func2()没有被调用原因:一个函数定义后,除非通过函数名调用,要不然始终不会被调...
2020-01-14 12:33:19
637
原创 Python 处理图片 -- pillow库
pip install pillow基本使用from PIL import Image# new 创建一张图片im1 = Image.new('RGB', (500, 300), (50, 100, 150))# show 用默认的图片打开方式打开图片im1.show()# save 保存图片im1.save('xyz.png')# open 打开一张图片i...
2020-01-14 12:32:36
130
原创 python获取当前的日期和时间
import datetimeimport timeprint ("格式参数:")print (" %a 星期几的简写")print (" %A 星期几的全称")print (" %b 月分的简写")print (" %B 月份的全称")print (" %c 标准的日期的时间串")print (" %C 年份的后两位数字")print (" %d 十进制表示的...
2020-01-14 12:31:37
183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人