自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nginx证书和Tomcat证书能相互转化吗,请看这里

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/108020899主流 Web 服务软件证书一般来说,主流的 Web 服务软件,通常都基于 OpenSSL 和 Java 两种基础密码库。Tomcat、Weblogic、JBoss等Web服务软件,一般使用Java提供的密码库。通过Java Development Kit (JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的证书文件。Apache、

2020-08-29 11:06:16 1874

原创 用Spring Boot Admin来监控我们的微服务

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/1080208991.概述Spring Boot Admin是一个Web应用程序,用于管理和监视Spring Boot应用程序。每个应用程序都被视为客户端,并注册到管理服务器。底层能力是由Spring Boot Actuator端点提供的。在本文中,我们将介绍配置Spring Boot Admin服务器的步骤以及应用程序如何集成客户端。2.管理服务器配置由于Spring Boot

2020-08-16 17:59:46 881 1

原创 使用Safari或者Chrome远程调试IOS Safari中的页面

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/1079675811 使用Safari浏览器调试1.1 打开Mac的 Safari 浏览器的“开发”菜单运行 Safari 浏览器,然后依次选取“Safari 浏览器”>“偏好设置”,点按“高级”面板,然后勾选“在菜单栏中显示开发菜单”。1.2 开启IPhone的Safari调试模式启用 Web 检查 功能,打开 iPhone 依次进入 设置 > Safari浏览器

2020-08-15 12:35:05 2189 2

原创 CentOS 6 安装 Chrome最简单的方法

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107890747今天有个同事说:“龙哥,我要在CentOS 6.5上装个Chrome,两天了,你帮我看看”。我一听这话头大呀,我记得N久之前我也是需要在CentOS 6.5上搞一个基于Chrome的爬虫,也是费了很大的劲,Chrome官网上早都提示最少CentOS7了,安装一个依赖包的时候发现又需要另外一个依赖包,各种的依赖,特别费劲,后来找到了支持CentOS 6 的一个版本,才算是完

2020-08-12 21:49:26 2672 8

原创 CentOS 6.x 搭建:Headless Chrome + ChromeDriver + Selenium基于浏览器的爬虫环境,要放弃还是重装系统

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107877488Chrome官方网站已经说的很清楚,不再支持6.x的CentOS,至少7以上。 可是很多时候我们使用的服务器版本并不能随便升级,即便已经很难受了,但是还得继续使用低版本,装起来那是真叫一个费劲,还好就是费劲一些,最终还是可以装成功的。什么是 Headless ChromeHeadless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提

2020-08-09 10:43:32 774 2

原创 ffmpeg转换多媒体文件,真香

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/1078273831. 安装yasm(如果已经安装可以略过)先在官网http://yasm.tortall.net/Download.html下载最新版yasm源码执行下面的命令进行安装wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gztar -zxvf yasm-1.3.0.tar.gzcd

2020-08-08 11:49:09 236

原创 一站式的开源持续测试平台---MeterSphere

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107804286在我们实际的项目迭代过程中,基本上会经历过的几个问题:测试用例不规范,有些甚至没有测试用例文档文档随个人喜好随便使用,word、excel、xmind…没有专门的人去管理这些文档,时间长了就丢失了测试用例和测试脚本很凌乱,基本都是测试个人保管以前的公司,包括现在的公司都自研过自己的测试平台,但是都不尽人意,直到看到MeterSphere让人眼前一亮,产品的厂

2020-08-05 22:53:52 4278 1

原创 查看Socket断开原因及加入心跳机制防止自动断开连接

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107775411一般情况下,前端页面连接WebSocket服务的时候都是通过Nginx等负载均衡,然后由Nginx去代理连接后端的socket服务。Nginx的配置类似如下:map $http_upgrade $connection_upgrade { default upgrade; '' close;}location / { proxy_pass ht

2020-08-04 23:48:59 6702 1

原创 关于offsetX、layerX、clientX、screenX以及pageX

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107746738我们都熟知,标题中的几个方法都是用来获取事件(event)的位置,但是他们有什么区别呢?就用一张图来说明offsetX: 指事件发生位置相对触发元素左上角的水平坐标layerX: FF特有,鼠标相比较于当前坐标系的位置,即从当前容器依次往上寻找设置绝对定位或相对定位的元素为参考坐标系,以该容器的左上角来计算水平坐标clientX: 是指事件发生位置相对可视区域的

2020-08-03 22:51:09 757

原创 MIME 类型大全,你值得收藏

多用途Internet邮件扩展(MIME)类型 是一种标准化的方式来表示文档的性质和格式。 它在IETF RFC 6838中进行了定义和标准化。互联网号码分配机构(IANA)是负责跟踪所有官方MIME类型的官方机构,您可以在媒体类型页面中找到最新的完整列表。浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档;因此服务器设置正确以将正确的MIME类型附加到响应对象的头部是非常重要的。语法通用结构type/subtypeMIME的组成结构非常简单;由类型与子类型两个字符串中间用'/'

2020-08-02 16:34:00 13039

原创 看了这篇,关于浏览器缓存你还有哪些疑问?

【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107138980整个 Web 系统架构在HTTP 协议之上, 利用 HTTP 的缓存机制不仅可以极大地减少服务器负载, 更重要的是加速页面的载入,以及减少用户的流量消耗。 快速到达和易于访问是 Web 与生俱来的特性, 其缓存机制也早已被服务器和浏览器厂商广泛地实现, 我们作为 Web 内容的作者何乐而不为呢?HTTP 缓存简介谈起 HTTP 缓存你首先想到的一定是磁盘缓存,以及 3

2020-08-01 14:16:27 717

原创 使用Pinpoint作分布式链路跟踪系统

【转载请注明出处】:https://www.jianshu.com/p/4129798aa4aePinpoint是一个开源的 APM (Application Performance Management/应用性能管理)工具,适用于用Java / PHP编写的大型分布式系统。受Dapper的启发,Pinpoint提供了一种解决方案,通过跟踪分布式应用程序之间的事务,帮助分析系统的整体结构以及它们中的组件如何相互连接。Pinpoint的特性:一目了然地了解您的应用程序拓扑实时监控您的应用程序获得每

2020-07-05 14:53:56 1380 1

原创 用SkyWalking做分布式追踪和应用性能监控系统

【转载请注明出处】:https://www.jianshu.com/p/e1592d395891SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。特性:多种监控手段,语言探针和service mesh多语言自动探针,Java,.NET Core和Node.JS轻量高效,不需要大数据模块化,UI、存储、集群管理多种机制可选支持告警优秀的可视化方案Skywalking 技术架构整个系统分为三部分:agent:

2020-07-03 23:35:39 3709 1

原创 APM调用链产品对比

【转载请注明出处】:https://www.jianshu.com/p/5184d7904c4b随着企业经营规模的扩大,以及对内快速诊断效率和对外SLA(服务品质协议,service-level agreement)的追求,对于业务系统的掌控度的要求越来越高,主要体现在:对于第三方依赖的监控,实时/准实时了解第三方的健康状况/服务品质,降低第三方依赖对于自身系统的扰动(服务降级、故障转移)对于容器的监控,实时/准实时的了解应用部署环境(CPU、内存、进程、线程、网络、带宽)情况,以便快速扩容/缩容、

2020-07-02 23:37:39 942 1

原创 使用Nacos做为SpringCloud和Dubbo的共同注册中心

【转载请注明出处】:https://juejin.im/post/5ee250bf5188254323350c83公司以前的系统都是基于Dubbo的分布式架构,后来的新业务逐渐采用了SpringCloud微服务架构,在相互的业务调用中都是提供http接口供各自调用,但是总感觉很别扭,现在有了阿里开源的Nacos就可以解决很多问题。最终要实现的效果就是同一个接口,既可以用Dubbo的方式调用,也可以用Feign来调用,覆盖当前的这种场景。此时服务提供者即注册了 Dubbo 又注册了 Http 服务,服务

2020-06-11 23:45:08 1372 1

原创 使用Nacos做为SpringCloud的注册中心

【转载请注明出处】:https://juejin.im/post/5ee11254e51d45789671b3e11. Nacos介绍1.1 Nacos关键特性Nacos 致力于发现、配置和管理微服务。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理:Kubernetes ServicegRPC&Dubbo RPC ServiceSpring Cloud RESTful ServiceNacos 的关键特性包括:服务发现和服务健康监测Nacos 支持基于 DNS

2020-06-11 01:12:44 286 1

原创 Redis 集群之Redis+Twemproxy方案

【转载请注明出处】:https://www.jianshu.com/p/d94728fc8a911、下载Redis安装包Redis的官网下载地址是https://redis.io/download,上面有各个发行版本,我选择的是当前的最新稳定版5.0.4,下载到安装目录并编译出安装包。wget http://download.redis.io/releases/redis-5.0.4.tar.gztar -zxvf redis-5.0.4.tar.gzcd redis-5.0.4makemak

2020-06-02 23:50:37 1115

原创 Redis 集群之Redis+Codis方案

【转载请注明出处】:https://www.jianshu.com/p/41f97c494fc4Redis 集群解决方案有哪些Redis 的集群解决方案有社区的,也有官方的,社区的解决方案有 Codis 和Twemproxy,Codis是由我国的豌豆荚团队开源的,Twemproxy是Twitter团队的开源的;官方的集群解决方案就是 Redis Cluster,这是由 Redis 官方团队来实现的。下面的列表可以很明显地表达出三者的不同点。CodisTwemproxyRedis Clus

2020-06-02 00:42:39 991

原创 Nginx状态监控及日志分析

【转载请注明出处】:https://www.jianshu.com/p/59ed801213ca1、Nginx状态监控Nginx提供了一个内置的状态信息监控页面可用于监控Nginx的整体访问情况,这个功能由ngx_http_stub_status_module模块进行实现。使用nginx -V 2>&1 | grep -o with-http_stub_status_module命令检测当前Nginx是否有status功能,如果输出ngx_http_stub_status_module则

2020-06-01 22:53:21 2773 1

原创 SpringCloud 注册中心之Consul

【转载请注明出处】:https://www.jianshu.com/p/8b11636024d9Consul 介绍Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 使用 Go 语言编写,因此具有天然可移植性

2020-05-29 08:30:21 396

原创 使用canal增量订阅MySQL binlog

【转载请注明出处】:https://juejin.im/post/5ecf04ec5188254316147950基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps.

2020-05-28 08:31:36 1394

原创 MySQL binlog

【转载请注明出处】:https://www.jianshu.com/p/5851356bdddf1、binlog介绍binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undo log是完全不同的日志;其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,并以"事务"的形式保存在磁盘中。mysql的binlog是多文件存储,定位一个LogEvent需要通过binlog filename + binlog position,进行定位。作用主要有:复制

2020-05-26 01:12:16 260

原创 互动直播之WebRTC服务器Kurento实战

【转载请注明出处】:https://www.jianshu.com/p/b625b7c0c2a41. KurentoKurento的主要组件是Kurento媒体服务器(KMS),负责媒体传输,处理,记录和播放。KMS建立在出色的GStreamer多媒体库之上,并提供以下功能:网络流协议,包括HTTP,RTP和WebRTC。支持媒体混合和媒体路由/调度的组通信(MCU和SFU功能)。对实现计算机视觉和增强现实算法的过滤器的通用支持。媒体存储支持WebM和MP4的写入操作以及GStreamer支持

2020-05-24 21:29:25 1942 4

原创 互动直播之WebRTC服务开源技术选型

【转载请注明出处】:https://www.jianshu.com/p/73f2615dc3ef1 直播基础知识最原始的直播系统其实并没有想象的那么复杂,无非就是主播端将音视频数据推送到服务器,观众端则从服务器拉取数据播放。1.1 基本常识1.1.1 基础概念推流推流,是直播中的一个术语,意思是将流媒体数据推送到服务器。如何推流,关键就在于使用的推流协议。拉流拉流,指的是观众端流媒体数据的拉取,同样也需要通过约定的拉流协议来拉取。视频帧帧,是视频的一个基本概念,表示一张画面,

2020-05-24 17:34:51 3443 1

原创 使用mitmproxy + appium + python 全自动抓取公众号文章

【转载请注明出处】:https://segmentfault.com/a/11900000226676151. 先使用mitmproxy代理抓微信公众号历史文章列表实现思路:在电脑上安装 mitmproxy代理,手机和电脑连同一wifi,手机配置当前电脑为代理服务器,然后手动查看公众号历史文章列表,这样电脑上就可以获得列表,然后再根据列表中的详情url拿到公众号文章详情。1.1 安装mitmproxy需要先安装Python 3.6 (或更高版本)和 pip3.6 ,之后执行以下命令安装sudo

2020-05-17 20:34:19 5014 1

原创 通过 Consul+OpenResty 实现无reload动态负载均衡

【转载请注明出处】:https://www.jianshu.com/p/bee45550781e动态Nginx负载均衡的配置,可以通过Consul+Consul-Template方式,但是这种方案有个缺点:每次发现配置变更都需要reload Nginx,而reload是有一定损耗的。而且,如果你需要长连接支持的话,那么当reload时Nginx长连接所在worker进程会进行优雅退出,并当该worker进程上的所有连接都释放时,进程才真正退出(表现为worker进程处于worker process is

2020-05-14 23:56:31 718 1

原创 通过 Consul-Template 实现动态配置Nginx负载服务

【转载请注明出处】:https://www.jianshu.com/p/3fe4e15a1f99Consul-Template简介Consul-Template是基于Consul的自动替换配置文件的应用。在Consul-Template没出现之前,大家构建服务发现系统大多采用的是Zookeeper、Etcd+Confd这样类似的系统。Consul官方推出了自己的模板系统Consul-Template后,动态的配置系统可以分化为Etcd+Confd和Consul+Consul-Template两大阵营。

2020-05-13 23:02:13 513

原创 Nginx编译安装nginx-upsync-module模块以实现动态负载

【转载请注明出处】:https://www.jianshu.com/p/a59790f4e759安装依赖包OpenSSL在官网下载页下到最新稳定版1.0.2q。PCRE在 PCRE 官网可以找到下载地址,这里选择8.x的最高版本 pcre-8.42.tar.gz。zlibzlib 直接选择官网首页最新的zlib-1.2.11.tar.gz。下载nginx 源码包及nginx-upsync-module模块源码这里下载的是nginx稳定版nginx-1.14.2.tar.gz,nginx-u

2020-05-13 00:05:17 444

原创 接入层限流之ngx_http_limit_conn_module

【转载请注明出处】:https://juejin.im/post/5eb961656fb9a0432c4ca06cngx_http_limit_conn_module是Nginx提供的连接数限流模块,是对某个KEY对应的总的网络连接数进行限流。可以按照IP来限制IP维度的总连接数,或者按照服务域名来限制某个域名的总连接数。但不是每一个请求连接都会被计数器统计,只有那些被Nginx处理的且已经读取了整个请求头的请求连接才会被计数器统计。配置示例:http { limit_conn_zone $b

2020-05-11 22:48:29 201

原创 接入层限流之ngx_http_limit_req_module

【转载请注明出处】:https://www.jianshu.com/p/3dc04584bbfdngx_http_limit_req_module模块是Nginx提供的基于漏桶算法实现的请求限流模块,用于对指定KEY对应的请求进行限流,比如按照IP维度限制请求速率。ngx_http_limit_req_module官方文档配置示例http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; limit_conn_lo

2020-05-10 18:00:40 478

原创 接入层限流之OpenResty提供的Lua限流模块lua-resty-limit-traffic

【转载请注明出处】:https://www.jianshu.com/p/687e63118d84限制接口总并发数场景:按照 ip 限制其并发连接数lua_shared_dict my_limit_conn_store 100m;...location /hello { access_by_lua_block { local limit_conn = require "resty.limit.conn" -- 限制一个 ip 客户端最大 1 个并发请求

2020-05-09 00:08:27 1351

原创 服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka

【转载请注明出处】:https://www.jianshu.com/p/e2ebb8e92798这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论:FeatureConsulzookeeperetcdeuerka服务健康检查服务状态,内存,硬盘等(弱)长连接,keepalive连接心跳可配支持多数据中心支持———kv存储服务...

2020-05-07 23:57:43 230

原创 分布式限流之Redis+Lua实现

【转载请注明出处】:https://juejin.im/post/5eaeee41e51d454dee25aef4分布式限流最关键的是要将限流服务做成原子化,而解决方案可以使用redis+lua或者nginx+lua技术进行实现,通过这两种技术可以实现的高并发和高性能。首先我们来使用redis+lua实现时间窗内某个接口的请求数限流,实现了该功能后可以改造为限流总并发/请求数和限制总资源数。L...

2020-05-04 00:31:30 1212

原创 分布式限流之Nginx+Lua实现

**【转载请注明出处】:[https://www.jianshu.com/p/cae825afaf3f](https://www.jianshu.com/p/cae825afaf3f)**Lua 代码:```local locks = require "resty.lock"local function acquire() local lock =locks:new("loc...

2020-05-03 23:58:47 874

原创 Lua 基础

【转载请注明出处】:https://juejin.im/post/5eae252ae51d454db7436a26基本语法注释两个减号是单行注释:--注释多行注释--[[ 注释 --]]标示符标示符以字母或下划线 _ 开头,加上字母、下划线或数字组成。最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。关键词以下列出了 Lua 的保留关键字。保留关键字不能...

2020-05-03 10:17:00 600

原创 Nginx 限流模块

【转载请注明出处】:https://www.jianshu.com/p/790373b4903b生活中的 “限流”?限流并非新鲜事,在生活中亦无处不在,下面例举一二:博物馆:限制每天参观总人数以保护文物高铁安检:有若干安检口,旅客依次排队,工作人员根据安检快慢决定是否放人进去。遇到节假日,可以增加安检口来提高处理能力(横向拓展),同时增加排队等待区长度(缓存待处理任务)。办理银行业务:...

2020-05-02 12:17:49 358 1

原创 Spring Boot+SQL/JPA实战悲观锁和乐观锁

【转载请注明出处】:https://www.jianshu.com/p/6287599cd0fd业务还原首先环境是:Spring Boot 2.1.0 + data-jpa + mysql + lombok数据库设计对于一个有评论功能的博客系统来说,通常会有两个表:1.文章表 2.评论表。其中文章表除了保存一些文章信息等,还有个字段保存评论数量。我们设计一个最精简的表结构来还原该业务场景。...

2020-05-01 16:21:33 383

原创 Spring Boot 1.X和2.X优雅重启实战

Spring Boot 1.X优雅地停止应用项目在重新发布的过程中,如果有的请求时间比较长,还没执行完成,此时重启的话就会导致请求中断,影响业务功能,优雅重启可以保证在停止的时候,不接收外部的新的请求,等待未完成的请求执行完成,这样可以保证数据的完整性。 在pom.xml中引入actuator依赖<dependency> <groupId>org.spring...

2020-04-12 00:12:52 181

空空如也

空空如也

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

TA关注的人

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