自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python使用Jpype调用Java Spring Fat Jar || 使用maven-shade-plugin插件打Spring Java Fat Jar

Spring Fat Jar 打包方式mavn打jar包常用3中方式:方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包方法二:使用maven-assembly-plugin插件打包方法三:使用maven-shade-plugin插件打包如果jar包中用到了Spring,则必须用maven-shade-plugin插件打包,如果在运行时出...

2020-04-13 16:21:43 364

原创 使用docker安装redis记录

docker search redis 搜索查看redis镜像docker run 创建容器并启动完整命令:docker run -d --name redisHostPort -p 6379:6379 redis:latest-d 后台执行–name 指定名称-p 端口映射docker ps | grep redis 查看redis容器redis-cli -h $IP -...

2019-12-13 09:36:34 157

原创 docker rm时提示device or resource busy问题解决

1、现象复现,提示device or resource busydocker rm -f recom-engine-serviceError response from daemon: driver “overlay2” failed to remove root filesystem for 68222175a2ec896c9a084c5fb87966588cf2ba644e6f8b6f3...

2019-12-03 20:35:02 6799

原创 [源码阅读]Motan RPC中的负载均衡算法|Random/RoundRobin/ActiveWeight/LocalFirst/ConsistentHash/ConfigurableWeight

Motan RPC框架中的六个负载均衡算法预览6个负载均衡算法的总结:RandomLoadBalance负载随机分配ThreadLocalRandom提高多线程并发随机数性能RoundRobinLoadBalance负载轮流分配AtomicInteger idx 保存状态ActiveWeightLoadBalance低并发优先避免O(N)查找极值Local...

2019-09-17 14:59:03 755

原创 SQL查询:区间数量统计|关于elt(数组取值)和INTERVAL(区间定位)的用法

基本需求找到发博量大于1000的用户并排序:group by + havingselect count(*) as num,uid from status group by uid having(count(*)>1000) order by count(*) desc统计平均发博量:group by+子查询select avg(a.num) from (select cou...

2019-09-11 14:28:39 1579

原创 获取接口所有实现类的三种方式:Spring的ListableBeanFactory容器的getBeanNamesForType方法、利用Reflections工具进行反射扫描、使用SPI

前言在策略模式应用中,需要获取到策略接口的所有实现类,本文记录三种获取某接口所有实现类的方法,分别是利用Spring的ListableBeanFactory容器的getBeanNamesForType方法,利用Reflections工具进行反射扫描、利用SPI方式。1、借助于Spring容器2、反射扫描3、SPI...

2019-09-04 19:40:10 4088

原创 通过BeanPostProcessor统计每一个Bean初始化耗时|通过优先级队列PriorityQueue构建小顶堆获取动态添加数列的TopK算法

通过BeanPostProcessor统计每一个Bean初始化耗时思路:统计Bean耗时的基础数据结构是个Map,Map的键是Bean的名称,值是初始化耗费时间。postProcessBeforeInitialization在Bean初始化之前执行,因此记录初始化开始时间postProcessAfterInitialization在Bean初始化之后执行,因此通过初始化结束时间减去初始化...

2019-09-03 17:47:37 784

原创 使用Spring JavaMailSender 发送告警邮件|AuthenticationFailedException: 535 Error: authentication failed解决方法

前言本文记录了如何使用Spring自带的JavaMailSender发送告警邮件,作为某些场景下线上问题的报警监控。测试告警邮件发送内容如下:邮箱设置这里选择网易163邮箱,新建一个邮箱,专用于发邮件。在设置中设置客户端授权密码和勾选POP3/SMTP服务服务。示例代码Maven依赖 <dependency> <groupId...

2019-08-29 19:44:39 1370

原创 Linux Shell编程实战-日志文件的自动压缩和删除-关键语法拆解:awk、date、find、xargs、echo、tail、grep、df、rm、gzip、sleep、mv

前言本文使用一个线上运行的压缩和删除日志功能的Shell脚本,对其中用到的一些编程语法进行拆解,方便后续更快看懂脚本、更快编写脚本实现运维功能。脚本功能说明对日志文件进行压缩,压缩后磁盘占用仍然很大,就对历史日志进行删除脚本如下:#!/bin/bashtime=`date -d '1 hours ago' '+%Y%m%d-%H'`time1=`date -d '1 hours a...

2019-08-28 20:09:56 360

原创 Hystrix原理介绍:服务雪崩、断路器、服务降级、资源隔离-《Spring Cloud微服务架构进阶》读书笔记

前言本文主要内容:Hystrix原理服务雪崩服务雪崩效应是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程。服务雪崩效应的产生一般有三个流程:1.首先是服务提供者不可用2.然后重试会导致网络流量加大3.最后导致服务调用者不可用。导致服务提供者不可用的原因有很多:可能是因为服务器的宕机或者网络故障;也可能是因为程序存在的缺陷;也有可能是大量的请求导致...

2019-08-27 23:22:48 337

原创 使用Python3的PyMySQL查询Mysql中的数据|Python3 ImportError: No module named ‘MySQLdb' 解决方案

背景线上运行的一些比较老的 Python2 脚本,由于种种原因,需要升级成 Python3 环境运行,由于 Python2 和 Python3 的不兼容,因此需要对脚本内容进行修改之后,才可以正常运行,本文记录关于升级过程中,关于数据库查询相关的改动点。问题及解决方案问题:ImportError: No module named ‘MySQLdb’解决方案为使用PyMySQL,对应的py脚...

2019-08-22 11:23:31 369

原创 使用Python3自带的urllib发送HTTP POST请求|Python2和Python3中urllib用法的差异

背景线上运行的一些比较老的Python2脚本,由于种种原因,需要升级成Python3环境运行,由于Python2和Python3的不兼容,因此需要对脚本内容进行修改之后,才可以正常运行,本文记录关于升级过程中,关于urllib相关的修改点及遇到的问题和解决方案。问题记录问题:POST data should be bytes, an iterable of bytes, or a file ...

2019-08-22 10:58:36 598

原创 关系型(MySql)、键值型(Redis)、列型(HBase)、文档型(MongoDB)和图型(Neo4j)数据库优缺点选型对比-《七周七数据库》读书笔记

前言横向对比关系型数据库关系型这是最常见的经典的数据库模式。关系数据库管理系统(RDBMS),是基于集合理论的系统,实现方式是具有行和列的二维表。关系数据库严格强制使用类型,一般分为数值、字符串、日期和未解释的二进制大对象,但我们看到PostgreSQL提供了一些扩展,如数组和cube。适合因为关系数据库的结构性质,如果提前知道数据的布局,但是可能不清楚随后你打算如何使用这些数...

2019-08-20 23:33:36 2907

原创 大数据日志收集工具Flume快速入门介绍、Flume是什么、能干什么、Flume核心概念

前言本文主要介绍了Flume的功能用途和核心概念,是一个对Flume是什么、能干什么的快速入门介绍,来自《企业大数据处理:Spark、Druid、Flume与Kafka应用实践》读书笔记。Flume介绍Flume是cloudera公司开发的分布式、高可用的日志收集系统,是Hadoop生态圈内的关键组件之一,目前已开源给apache。Flume原始版本为Flume-OG,经过对整体架构的重...

2019-08-19 19:50:35 724

原创 《Linux运维最佳实践》读书笔记:CDN系统典型架构、视图技术、缓存和代理、防盗链方案、HTTP Referer、动态链接

前言本文简要介绍了CDN的典型结构、核心技术点和防盗链的两种处理方式。本文关键字:来自《Linux运维最佳实践》读书笔记。最佳实践:CDN系统架构典型CDN系统是一个复杂的系统,从核心组件进行简化抽象,可以用下图进行说明。分别以上海电信用户、山东联通用户访问同一个网站www.xufeng.info为例,说明数据访问流程。以下是具体步骤。1)上海电信用户请求其配置的上海电信DNS服务...

2019-08-17 10:03:23 268

原创 Tomcat的整体架构和请求处理流程-《Tomcat内核设计剖析》读书笔记

前言本文主要内容如下:从整体预览Tomcat如果将Tomcat内核高度抽象,则它可以看成由连接器(Connector)组件和容器(Container)组件组成,其中Connector组件负责在服务器端处理客户端连接,包括接收客户端连接、接收客户端的消息报文以及消息报文的解析等工作,而Container组件则负责对客户端的请求进行逻辑处理,并把结果返回给客户端。Container组件包括...

2019-08-14 22:55:50 792 1

原创 使用JMeter对Motan、Dubbo等Java RPC服务框架进行性能压测入门教程记录

前言本文主要记录使用JMeter对Motan服务进行压力测试的关键步骤和遇到的问题及解决办法。主要步骤如下:采坑记录JMeter 2.13版本与commons-math3、commons-pool2不兼容报错内容:The following artifacts could not be resolved: commons-math3:commons-math3:jar:3.4.1,...

2019-08-10 20:02:57 462

原创 构建可伸缩系统:垂直伸缩、水平伸缩、应用无状态、一致性哈希、分布式文件系统、分布式计算框架、应用垂直拆分、数据库读写分离-《分布式Java应用》读书笔记

前言通过垂直伸缩和水平伸缩方式构建可伸缩系统。垂直伸缩:水平伸缩:本文为《分布式Java应用》读书笔记构建可伸缩的系统垂直伸缩和水平伸缩通常将通过升级或增加单台机器的硬件来支撑访问量及数据量增长的方式称为垂直伸缩,垂直伸缩的好处是技术难度相对较低,对于小型应用而言是一种不错的选择。其缺点是机器的硬件是无法不断升级和增加的,很容易达到瓶颈,而如果想升级为更高级别的机器时通常带来的...

2019-08-08 23:30:43 1494

原创 Docker快速入门教程:Docker价值作用、镜像、仓库、容器、Docker化改造、Cgroups、Namespace、常用命令

前言本文为适合Docker快速入门的浅显教程,主要关键字如下:问题先行:本文为《企业级容器云架构开发指南》读书笔记。Docker的价值无Docker的痛点如何正确理解Docker这个新技术的价值呢?下面我们以软件开发活动中常见的一个任务来解释和发掘Docker的价值:“在某个Linux服务器上部署一个MySQL Server 5.7实例并创建一个库,供项目开发测试使用。”对...

2019-08-06 23:41:56 301

原创 Redis Cluster:拓扑结构、一致性达成、数据分片、客户端路由、分片迁移、failover、故障发现、故障确认、slave选举 、Gossip、Ping/Pong、《深入分布式缓存》读书笔记

前言本文主要内容:关键字:内容为《深入分布式缓存:从原理到实践》的相关读书笔记。Redis ClusterRedis ClusterRedis 3.0之后,节点之间通过去中心化的方式提供了完整的sharding、replication(复制机制仍复用原有机制,只是cluster具备感知主备的能力)、failover解决方案,称为Redis Cluster。即,将proxy/senti...

2019-08-05 23:46:50 783

原创 《刻意练习》读书心得 驳斥1万小时定律、有目的的练习、自我实现的预言、走出舒适区

前言本文主要内容:关于个人成长进步的思考:主要关键字:内容来自于《刻意练习》的读书感悟。驳斥1万小时定律驳斥1万小时定律可以玩一个巧妙的思想游戏,这就是古希腊哲学家欧布里德提出的沙堆悖论: 1粒沙子不是堆。如果1粒沙子不是堆,那么2粒沙子也不是堆;如果2粒沙子不是堆,那么3粒沙子也不是堆;以此类推,9999粒沙子也不是堆;因此,1万粒沙子还不是堆。 “破解”沙堆悖论时,我们经常不...

2019-08-04 12:36:53 1528

原创 Redis持久化:RDB和AOF、SAVE和BGSAVE、数据恢复、AOF刷盘策略、AOF的bgrewrite优化-《深入分布式缓存:从原理到实践》读书笔记

前言本文主要内容:SAVE和BGSAVE的区别:RDB和AOF的选择:内容为《深入分布式缓存:从原理到实践》的相关读书笔记。持久化Redis的持久化有两种方式:全量模式RDB和增量模式AOF。全量模式RDB基于全量模式的持久化Redis作为一个有状态节点,其“状态”可以用实例内部所有db的key-value值来定义,每一次Redis处理一个数据访问写命令修改了db的key-v...

2019-08-04 10:56:08 2116 1

原创 分布式Redis:水平拆分、主备复制、断点续传、故障转移- 《深入分布式缓存:从原理到实践》读书笔记

前言本文主要内容:来源于《深入分布式缓存:从原理到实践》第八章 分布式Redis的读书笔记。数据存储系统的挑战和Redis的应对策略Redis作为数据存储系统,无论数据存储在内存中还是持久化到本地,作为单实例节点,在实际应用中总会面临如下挑战:数据量伸缩:单实例Redis存储的key-value对的数量受限于单机的内存和磁盘容量。长期运行的生产环境中,随着数据不断地加入,存储容量会达...

2019-08-04 09:52:53 258

原创 《谁会认错》:关于认知失调、自我辩护、证实偏差和记忆扭曲

前言本文关键字:案例分析:认知失调、自我辩护的危害:不经意间的自我辩护,将我们拖向更深的灾难。它会限制我们发现自身错误的能力,更不必说改正错误。它会对现实加以歪曲,妨碍我们获取所需的所有信息以及对问题进行清晰的评估, 让我们失去对生活负责的能力。本文内容来为《谁会认错》这本书的读书笔记。自我辩护自降临人世的那一天起,我们每个人便拥有了自我辩护的冲动,我们会为自身所表现出来的...

2019-08-04 09:48:42 2123

原创 Spring知识点回顾 IOC、AOP、Bean实例化、生命周期、拦截器、事务、Spring MVC流程-《Java EE 企业级应用开发教程》读书笔记

前言本文主要内容包含如下:内容来自于《Java EE 企业级应用开发教程》这本书的翻读笔记,内容相对简单,用于基础知识的复习巩固。Spring的核心容器Spring框架提供了两种核心容器,分别为BeanFactory和ApplicationContext。知识点:BeanFactory和ApplicationContext的区别是什么?BeanFactoryBeanFactor...

2019-08-04 09:47:01 394

原创 MyBatis 知识点回顾 工作流程原理、核心对象、配置文件、返回MySql主键ID -《Java EE 企业级应用开发教程》读书笔记

前言主要内容如下:内容来自于《Java EE 企业级应用开发教程》这本书的翻读笔记,内容相对简单,用于基础知识的复习巩固。MyBatis的工作流程MyBatis框架在操作数据库时,大体经过了8个步骤。下面就对图6-4中的每一步流程进行详细讲解,具体如下。(1)读取MyBatis配置文件mybatis-config.xml。mybatis-config.xml作为MyBatis的全局配...

2019-08-04 09:46:11 231

原创 RocketMQ消息队列核心机制、Broker功能、消息存储结构、高可用机制、同步异步刷盘、同步异步复制《RocketMQ实战与原理解析》读书笔记

前言本文主要内容如下:内容来自于《RocketMQ实战与原理解析》第五章 消息队列的核心机制 读书笔记。消息队列的核心机制-brokerbroker主要功能如下:磁盘持久化为何速度不慢消息存储和发送分布式队列因为有高可靠性的要求,所以数据要通过磁盘进行持久化存储。用磁盘存储消息,速度会不会很慢呢?能满足实时性和高吞吐量的要求吗?实际上,磁盘有时候会比你想象的快很多,有时候...

2019-08-04 09:45:04 954

空空如也

空空如也

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

TA关注的人

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