自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nginx添加GeoIP并监控IP分布(接上一篇)

GeoIP:https://github.com/maxmind/geoip-api-c/tree/mainGrafana worldmap: https://grafana.com/grafana/plugins/grafana-worldmap-panel/installation目录1. Ngin添加GeoIP模块1.1 停止现有Nginx1.2 带GeoIP重新编译Nginx1.2.1 下载GeoIP依赖1.2.2 进入nginx/sbin目录查看现有nginx模块依.

2021-05-24 00:43:39 3786

原创 手把手搭建Nginx日志高级监控 —— 基于Loki + Promtail + Grafana

参考官方文档:Loki: https://grafana.com/docs/loki/latest/Grafana Loki V2 Dashboard for Nginx https://grafana.com/grafana/dashboards/12559?pg=dashboards&plcmt=featured-main先看下最终效果截图:1. Loki + Promtail简介官网有说明。简单理解,Loki是个日志监控系统,可用来分析日志,并提供给Gr.

2021-05-24 00:32:47 5181 1

原创 手把手搭建Grafana,图形化展示Nginx监控数据(接上篇vts监控nginx)

目录1. Docker下载Grafana2. 启动Grafana3. 访问Grafana4. 设置Prometheus为数据源5. 选择Nginx面板,展示数据1. 官网搜索nginx模版,选择vts自身数据匹配的模版2. 导入模版1. Docker下载Grafanahub.docker.com 搜索 Grafana下载镜像:docker pull grafana/grafana下载结束后查看是否成功docker images..

2021-05-24 00:21:55 3399 1

原创 手把手搭建Nginx监控:基于Nginx-vts & Prometheus

Nginx virtual host traffic status modulehttps://github.com/vozlt/nginx-module-vts1. VTS概述简介This is an Nginx module that provides access to virtual host status information. It contains the current status such as servers, upstreams, caches. This..

2021-05-24 00:11:05 3867 1

原创 Nginx从零开始,一文读懂反向代理及基础使用

目录1.概念2. Nginx的功能特性3. Nginx常用功能介绍(1)正向代理和代理服务器(2)反向代理和代理服务器4. Nginx安装5. 常用命令6. 配置文件结构介绍1.概念Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强。Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡服务器。在性能上,Nginx..

2021-05-23 23:49:57 219

原创 YApi简介及内网部署

官网:https://hellosean1025.github.io/yapi/体验地址:https://yapi.baidu.com目录2. 内网部署2.1 环境要求2.1.1 安装nodejs2.1.2 安装mongodb2.2 可视化部署2.3 启动YApi2.4 forever运行app.js2.4.1 forever简介2.4.2 forever安装和使用2.4.3 以forever启动yapi3. 效果预览YApi 是高效、易用、功能强大的

2021-05-23 23:36:32 1445

原创 MyBatis详解:二 入门 —— 第一个MyBatis程序

目录1. 创建数据库,添加数据2. 创建Maven应用,导入相关Jar包3. 创建数据库对应实体类4. 创建MyBatis配置文件 mybatis-config.xml5. 创建获取SqlSessionFactory工具类6. 创建Mapper接口7. 创建映射器UserMapper.xml8. 注册映射器9. 创建测试类,测试 getUsers 方法10. MyBatis的CRUD1. 创建数据库,添加数据create database test01.

2021-05-22 00:10:13 99

原创 MyBatis详解:一 概述

目录1. 什么是MyBatis?2. MyBatis特点3. MyBatis功能架构4. MyBatis框架结构5. MyBatis 的工作原理6. MyBatis核心组件6.1 SqlSessionFactoryBuilder(构造器):6.2 SqlSessionFactory(工厂接口):6.3SqlSession(会话):6.4 SQL Mapper(映射器):1. 什么是MyBatis?MyBatis 是一款优秀的持久层框架,它支持自定..

2021-05-22 00:09:53 669

原创 Java基础:Java学习路线图

Java技术栈较多,路线较长,很多初学Java的同学不知道该学什么?怎么学?先后顺序是什么样的。本人根据自己经验,绘制了一个Java学习路线图,希望能给大家带来帮助。

2021-05-22 00:09:44 97

原创 Java基础:Java注解详解

目录1 什么是注解?2 注解的作用3 注解的分类3.1 内置注解3.2 元注解3.3 自定义注解4 注解的工作原理4.1 注解的本质4.2 注解的工作原理5 注解与配置文件的区别1 什么是注解?从JDK5开始,Java增加对元数据的支持,也就是注解,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。如下代码:@Servicepubl

2021-05-22 00:09:33 368

原创 Java基础:Java反射详解

反射是框架设计的灵魂目录反射是框架设计的灵魂1 什么是反射1.1 反射定义:1.2 白话解释:2 为什么需要反射3 反射常用API3.1 获取反射中的Class对象3.2 通过反射创建类对象3.3 通过反射获取类属性、方法、构造器4 反射优缺点1 什么是反射1.1 反射定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能

2021-05-22 00:09:25 80

原创 Java基础:Java泛型详解

目录1 什么是泛型?2 为什么引入泛型3 泛型的使用3.1 泛型类3.2 泛型接口3.3 泛型方法4 泛型通配符5 泛型原理6. 总结1 什么是泛型?泛型,即“参数化类型”。百度百科:泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。CSDN资料“泛型” 意味着编写的代码可以被不同类型的对象所重用。泛型的提.

2021-05-22 00:09:16 231

原创 Java基础:Java与C++的语言特性区别

因工作原因,团队业务从C++转为C++&Java,技术栈也需要跟随扩展到Java开发。这里针对Java和C++特性的一些区别做个简单介绍。为C++转Java的同学提供一些关注点。目录前言Java与C++特性区别1. JVM虚拟机2. 指针3. 多重继承4. 数据类型和类5. 自动垃圾回收6. 操作符重载7. 预处理器8. 缺省函数参数9. goto10. 自动类型转换11. 文件结构12. 泛型 vs 模板13. 反射14. 注

2021-05-22 00:09:04 929

原创 一文搞懂JaCoCo Java代码覆盖率工具

目录1. JaCoCo 简介2. JaCoCo 原理2.1 on-the-fly模式2.2 offline模式2.3 on-the-fly和offline对比3. JaCoCo 使用3.1 Ant Tasks —— Apache Ant 方式3.2 Java Agent —— 命令行方式3.2.1 官方介绍3.2.2 流程说明3.2.3 举例3.3 Maven Plug-in —— Apache Maven 方式3.4 Eclipse EclDmma Pl

2021-05-22 00:08:12 2232 1

原创 ActiveMQ详解二 —— ActiveMQ问题总结

ActiveMQ是什么?消息中间件。可以在分布式系统的不同服务之间进行消息的发送和接收它的出现解决了什么问题可以让系统解耦比如:使用消息中间件,某一个服务,可能依赖了其他好几个服务。比如课程里面的运营商后台依赖了4个服务,那不用mq就和4个服务耦合,用了mq,就只和1个mq耦合。参考下图:实际项目应用场景监听商品添加消息,接收消息,将对应的商品信息同步到索引库 每次添加完商品并将同步商品到索引库如果,如果直接同步数据库,当数据库很大的时候,会影响服务器性能,这时我们,就使.

2021-05-21 22:43:03 279

原创 ActiveMQ详解一 —— JMS介绍

1. JMS概述不同系统之间信息交换,有多种方式。SUN公司提出了一种面向详细的中间件服务—— JMS,Java消息服务,是JavaEE的标准/规范之一。JMS指出:消息的发送应该是异步的、非阻塞的。也就是说,消息的发送者发送完消息后就直接返回了,不需要等待接受者返回后才能返回,发送者和接收者可以说是互不影响。所以这种规范(标准)能够减轻或消除系统瓶颈,实现系统之间去除耦合,提高系统的整体可伸缩性和灵活性。JMS只是Java EE中定义的一组标准API,它自身并不是一个消息.

2021-05-21 22:40:50 696

原创 领域驱动设计04 上下文映射图

目录01. 什么是上下文映射图?02. 为什么要有上下文映射03. 绘制上下文映射图3.1 上下游3.2 映射的种类:3.2.1 合作关系(Partnership):3.2.2 共享内核(Shared Kernel):3.2.3 客户方-供应方开发(Customer-Supplier Development):3.2.3 遵奉者(Confoemist):3.2.4 防腐层(Anticorruption Layer):(重点)3.2.5 开放主机服务(Open Ho

2021-05-21 19:10:39 835

原创 领域驱动设计03 领域,子域,限界上下文

目录01. 领域:01.1 问题空间-解决方案空间02. 子域03. 限界上下文限界上下文的划分原则01. 领域:领域(Domain)其实就是一个组织所要做的整个事情,以及这个事情下所包含的一切内容。这是一个范围概念,而且是面向业务的(注意这里不是面向技术的,更不是面向数据库的持久化的),每个组织都有自己的人员、自己的工作业务范围和做事方式,当你为该组织开发软件的时候,你面对的就是这个组织的领域。领域既可以表示整合业务系统,也可以表示其中的某个核心域或者支撑域。.

2021-05-21 19:01:36 499

原创 领域驱动设计02. 通用语言

00. 限界上下文我们知道语言都有它的语义环境,同样,通用语言也有它的上下文环境。为了避免同样的概念或语义在不同的上下文环境中产生歧义,DDD 在战略设计上提出了“限界上下文”这个概念,用来确定语义所在的领域边界。我们可以将限界上下文拆解为两个词:限界和上下文。限界就是领域的边界,而上下文则是语义环境。通过领域的限界上下文,我们就可以在统一的领域边界内用统一的语言进行交流。举例:“环境” 一词在不同上下文中的含义:01. 通用语言可以将限界上下文看成是整个应用程序内的一个概.

2021-05-21 18:54:00 210

原创 领域驱动设计01. DDD概述

01. 什么是DDD?DDD(Domain-Driven Design)领域驱动设计DDD是一种软件开发方法,可以帮助我们设计高质量的软件模型。DDD是Eric Evans在2003年出版的《领域驱动设计:软件核心复杂性应对之道》(Domain-Driven Design: Tackling Complexity in the Heart of Software)一书中提出的具有划时代意义的重要概念,是指通过统一语言、业务抽象、领域划分和领域建模等一系列手段来控制软件复杂度的方法论.DDD

2021-05-21 18:50:20 485

原创 02. QCefView + QWebChannel 实现Qt程序中嵌入Web页面

目录1. 为什么要用QCefView + QWebChannel开发?2. 自定义WebChannel3. 示例完整代码3.1 自定义Transport类3.2 自定义channel3.3 交互窗体、注册对象及通讯3.4 Html页面如下:4. 运行结果5. 调试6. QWebEngine vs QCefView + QWebChannel vs QCefView 对比1. 为什么要用QCefView + QWebChannel开发?基于Qt自带的QWebEn

2021-05-21 18:41:37 3120 1

原创 01. QCefView简介

官方网址:http://tishion.github.io/QCefView/Github地址:https://github.com/tishion/QCefView目录1. 什么是QCefView2. 为什么使用QCefView3. 构建QCefView3.1 检出QCefView的源码;3.2 部署Qt SDK3.3 下载CEF二进制发行文件 (可选)04. 运行QCefViewTest,初识QCefView05. 通讯核心代码5.1 Qt 调用 JS5.

2021-05-21 13:27:02 4877

原创 自解压原理介绍及制作

自解压文件:一个 SFX (SelF-eXtracting)自解压文件是压缩文件的一种,因为它可以不用借助任何压缩工具,而只需双击该文件就可以自动执行解压缩,因此叫做自解压文件。同压缩文件相比,自解压的压缩文件体积要大于普通的压缩文件(因为它内置了自解压程序),但它的优点就是可以在没有安装压缩软件的情况下打开压缩文件(文件类型为·exe格式)。原理:sfx文件通常为二进制文...

2021-05-21 13:12:24 5548

原创 SpringBoot单元测试

本文基于springboot 2.4.5介绍基于spring-boot-starter-test进行单元测试的基本方法。1. 普通方式测试service层及普通Bean2. mock方式测试controller层1. 单元测试范围2. 搭建测试项目引入maven库3. 待测Service及Controller代码如下4. 编写Service测试类5. 编写Controller测试类1. 单元测试范围controller,service,核心Bean(重要算法,..

2021-05-21 01:00:44 354

转载 转载:QT:用QWebSocket实现webchannel,实现C++与HTML通信

https://blog.csdn.net/zdy0_2004/article/details/78353700基本原理是通过channel将C++对象暴露给HTML,在HTML中调用qwebchannel.js。 前提是建立transport,QT只提供了一个抽象基类QWebChannelAbstractTransport,需要自己进行实现,官方建议用QWebSocket实现,并给出了实例。1、实现Transport类,内置一个WebSocket套接字;2、实现新的channel类,内置一个W

2021-05-18 09:28:01 479

空空如也

空空如也

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

TA关注的人

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