<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[d_chunyu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/d_chunyu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; d_chunyu]]></copyright><item><title><![CDATA[Nginx添加GeoIP并监控IP分布（接上一篇）]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117203436</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117203436</guid><author>d_chunyu</author><pubDate>Mon, 24 May 2021 00:43:39 +0800</pubDate><description><![CDATA[GeoIP：https://github.com/maxmind/geoip-api-c/tree/main

Grafana worldmap: https://grafana.com/grafana/plugins/grafana-worldmap-panel/installation


目录

1. Ngin添加GeoIP模块

1.1 停止现有Nginx

1.2 带GeoIP重新编译Nginx

1.2.1 下载GeoIP依赖

1.2.2 进入nginx/sbin目录查看现有nginx模块依.]]></description><category></category></item><item><title><![CDATA[手把手搭建Nginx日志高级监控 —— 基于Loki + Promtail + Grafana]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117203326</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117203326</guid><author>d_chunyu</author><pubDate>Mon, 24 May 2021 00:32:47 +0800</pubDate><description><![CDATA[参考官方文档：

Loki: https://grafana.com/docs/loki/latest/

Grafana Loki V2 Dashboard for Nginx https://grafana.com/grafana/dashboards/12559?pg=dashboards&amp;plcmt=featured-main


先看下最终效果截图：





1. Loki + Promtail简介

官网有说明。

简单理解，

Loki是个日志监控系统，可用来分析日志，并提供给Gr.]]></description><category></category></item><item><title><![CDATA[手把手搭建Grafana，图形化展示Nginx监控数据（接上篇vts监控nginx）]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117203170</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117203170</guid><author>d_chunyu</author><pubDate>Mon, 24 May 2021 00:21:55 +0800</pubDate><description><![CDATA[目录

1. Docker下载Grafana

2. 启动Grafana

3. 访问Grafana

4. 设置Prometheus为数据源

5. 选择Nginx面板，展示数据

1. 官网搜索nginx模版，选择vts自身数据匹配的模版

2. 导入模版

1. Docker下载Grafana

hub.docker.com 搜索 Grafana







下载镜像：


docker pull grafana/grafana





下载结束后查看是否成功


docker images
..]]></description><category></category></item><item><title><![CDATA[手把手搭建Nginx监控：基于Nginx-vts & Prometheus]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117202925</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117202925</guid><author>d_chunyu</author><pubDate>Mon, 24 May 2021 00:11:05 +0800</pubDate><description><![CDATA[Nginx virtual host traffic status module

https://github.com/vozlt/nginx-module-vts




1. 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..]]></description><category></category></item><item><title><![CDATA[Nginx从零开始，一文读懂反向代理及基础使用]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117202791</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117202791</guid><author>d_chunyu</author><pubDate>Sun, 23 May 2021 23:49:57 +0800</pubDate><description><![CDATA[目录

1.概念

2. Nginx的功能特性

3. Nginx常用功能介绍

(1)正向代理和代理服务器

(2)反向代理和代理服务器

4. Nginx安装

5. 常用命令

6. 配置文件结构介绍

1.概念

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器，同时也提供了IMAP/POP3/SMTP服务。

其特点是占有内存少，并发能力强。

Nginx以事件驱动的方式编写，所以有非常好的性能，同时也是一个非常高效的反向代理、负载平衡服务器。在性能上，Nginx..]]></description><category></category></item><item><title><![CDATA[YApi简介及内网部署]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117202656</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117202656</guid><author>d_chunyu</author><pubDate>Sun, 23 May 2021 23:36:32 +0800</pubDate><description><![CDATA[官网：https://hellosean1025.github.io/yapi/

体验地址：https://yapi.baidu.com

目录

2. 内网部署

2.1 环境要求

2.1.1 安装nodejs

2.1.2 安装mongodb

2.2 可视化部署

2.3 启动YApi

2.4 forever运行app.js

2.4.1 forever简介

2.4.2 forever安装和使用

2.4.3 以forever启动yapi

3. 效果预览

YApi 是高效、易用、功能强大的]]></description><category></category></item><item><title><![CDATA[MyBatis详解：二 入门 —— 第一个MyBatis程序]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136857</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136857</guid><author>d_chunyu</author><pubDate>Sat, 22 May 2021 00:10:13 +0800</pubDate><description><![CDATA[目录

1. 创建数据库，添加数据

2. 创建Maven应用，导入相关Jar包

3. 创建数据库对应实体类

4. 创建MyBatis配置文件 mybatis-config.xml

5. 创建获取SqlSessionFactory工具类

6. 创建Mapper接口

7. 创建映射器UserMapper.xml

8. 注册映射器

9. 创建测试类，测试 getUsers 方法

10. MyBatis的CRUD

1. 创建数据库，添加数据




create database test01.]]></description><category></category></item><item><title><![CDATA[MyBatis详解：一 概述]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136816</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136816</guid><author>d_chunyu</author><pubDate>Sat, 22 May 2021 00:09:53 +0800</pubDate><description><![CDATA[目录

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 是一款优秀的持久层框架，它支持自定..]]></description><category></category></item><item><title><![CDATA[Java基础：Java学习路线图]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136774</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136774</guid><author>d_chunyu</author><pubDate>Sat, 22 May 2021 00:09:44 +0800</pubDate><description><![CDATA[Java技术栈较多，路线较长，很多初学Java的同学不知道该学什么？怎么学？先后顺序是什么样的。

本人根据自己经验，绘制了一个Java学习路线图，希望能给大家带来帮助。




]]></description><category></category></item><item><title><![CDATA[Java基础：Java注解详解]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136683</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136683</guid><author>d_chunyu</author><pubDate>Sat, 22 May 2021 00:09:33 +0800</pubDate><description><![CDATA[目录

1 什么是注解？

2 注解的作用

3 注解的分类

3.1 内置注解

3.2 元注解

3.3 自定义注解

4 注解的工作原理

4.1 注解的本质

4.2 注解的工作原理

5 注解与配置文件的区别

1 什么是注解？

从JDK5开始,Java增加对元数据的支持，也就是注解，可以把注解理解为代码里的特殊标记，这些标记可以在编译，类加载，运行时被读取，并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。

如下代码：


@Service
publ]]></description><category></category></item><item><title><![CDATA[Java基础：Java反射详解]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136575</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136575</guid><author>d_chunyu</author><pubDate>Sat, 22 May 2021 00:09:25 +0800</pubDate><description><![CDATA[反射是框架设计的灵魂

目录

反射是框架设计的灵魂

1 什么是反射

1.1 反射定义：

1.2 白话解释：

2 为什么需要反射

3 反射常用API

3.1 获取反射中的Class对象

3.2 通过反射创建类对象

3.3 通过反射获取类属性、方法、构造器

4 反射优缺点

1 什么是反射

1.1 反射定义：

JAVA反射机制是在运行状态中，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象，都能够调用它的任意一个方法和属性；这种动态获取的信息以及动态调用对象的方法的功能]]></description><category></category></item><item><title><![CDATA[Java基础：Java泛型详解]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136501</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136501</guid><author>d_chunyu</author><pubDate>Sat, 22 May 2021 00:09:16 +0800</pubDate><description><![CDATA[目录

1 什么是泛型？

2 为什么引入泛型

3 泛型的使用

3.1 泛型类

3.2 泛型接口

3.3 泛型方法

4 泛型通配符

5 泛型原理

6. 总结

1 什么是泛型？

泛型，即“参数化类型”。


百度百科：

泛型程序设计（generic programming）是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型，在实例化时作为参数指明这些类型。

优快云资料

“泛型” 意味着编写的代码可以被不同类型的对象所重用。泛型的提.]]></description><category></category></item><item><title><![CDATA[Java基础：Java与C++的语言特性区别]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136438</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136438</guid><author>d_chunyu</author><pubDate>Sat, 22 May 2021 00:09:04 +0800</pubDate><description><![CDATA[因工作原因，团队业务从C++转为C++&amp;Java，技术栈也需要跟随扩展到Java开发。

这里针对Java和C++特性的一些区别做个简单介绍。为C++转Java的同学提供一些关注点。

目录

前言

Java与C++特性区别

1. JVM虚拟机

2. 指针

3. 多重继承

4. 数据类型和类

5. 自动垃圾回收

6. 操作符重载

7. 预处理器

8. 缺省函数参数

9. goto

10. 自动类型转换

11. 文件结构

12. 泛型 vs 模板

13. 反射

14. 注]]></description><category></category></item><item><title><![CDATA[一文搞懂JaCoCo Java代码覆盖率工具]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136293</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136293</guid><author>d_chunyu</author><pubDate>Sat, 22 May 2021 00:08:12 +0800</pubDate><description><![CDATA[目录

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]]></description><category></category></item><item><title><![CDATA[ActiveMQ详解二 —— ActiveMQ问题总结]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136201</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136201</guid><author>d_chunyu</author><pubDate>Fri, 21 May 2021 22:43:03 +0800</pubDate><description><![CDATA[ActiveMQ是什么?

消息中间件。可以在分布式系统的不同服务之间进行消息的发送和接收

它的出现解决了什么问题

可以让系统解耦

比如：使用消息中间件，某一个服务，可能依赖了其他好几个服务。比如课程里面的运营商后台依赖了4个服务，那不用mq就和4个服务耦合，用了mq，就只和1个mq耦合。参考下图：





实际项目应用场景

监听商品添加消息，接收消息，将对应的商品信息同步到索引库
	每次添加完商品并将同步商品到索引库如果，如果直接同步数据库，当数据库很大的时候，会影响服务器性能，这时我们，就使.]]></description><category></category></item><item><title><![CDATA[ActiveMQ详解一 —— JMS介绍]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117136101</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117136101</guid><author>d_chunyu</author><pubDate>Fri, 21 May 2021 22:40:50 +0800</pubDate><description><![CDATA[1. JMS概述

不同系统之间信息交换，有多种方式。





SUN公司提出了一种面向详细的中间件服务—— JMS，Java消息服务，是JavaEE的标准/规范之一。

JMS指出：消息的发送应该是异步的、非阻塞的。

也就是说，消息的发送者发送完消息后就直接返回了，不需要等待接受者返回后才能返回，发送者和接收者可以说是互不影响。

所以这种规范（标准）能够减轻或消除系统瓶颈，实现系统之间去除耦合，提高系统的整体可伸缩性和灵活性。

JMS只是Java EE中定义的一组标准API，它自身并不是一个消息.]]></description><category></category></item><item><title><![CDATA[领域驱动设计04 上下文映射图]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117132980</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117132980</guid><author>d_chunyu</author><pubDate>Fri, 21 May 2021 19:10:39 +0800</pubDate><description><![CDATA[目录

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]]></description><category></category></item><item><title><![CDATA[领域驱动设计03 领域，子域，限界上下文]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117132675</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117132675</guid><author>d_chunyu</author><pubDate>Fri, 21 May 2021 19:01:36 +0800</pubDate><description><![CDATA[目录

01. 领域：

01.1 问题空间-解决方案空间

02. 子域

03. 限界上下文

限界上下文的划分原则

01. 领域：

领域（Domain）其实就是一个组织所要做的整个事情，以及这个事情下所包含的一切内容。

这是一个范围概念，而且是面向业务的（注意这里不是面向技术的，更不是面向数据库的持久化的），每个组织都有自己的人员、自己的工作业务范围和做事方式，当你为该组织开发软件的时候，你面对的就是这个组织的领域。



领域既可以表示整合业务系统，也可以表示其中的某个核心域或者支撑域。

.]]></description><category></category></item><item><title><![CDATA[领域驱动设计02. 通用语言]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117132568</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117132568</guid><author>d_chunyu</author><pubDate>Fri, 21 May 2021 18:54:00 +0800</pubDate><description><![CDATA[00. 限界上下文

我们知道语言都有它的语义环境，同样，通用语言也有它的上下文环境。为了避免同样的概念或语义在不同的上下文环境中产生歧义，

DDD 在战略设计上提出了“限界上下文”这个概念，用来确定语义所在的领域边界。

我们可以将限界上下文拆解为两个词：限界和上下文。限界就是领域的边界，而上下文则是语义环境。通过领域的限界上下文，我们就可以在统一的领域边界内用统一的语言进行交流。

举例：“环境” 一词在不同上下文中的含义：





01. 通用语言

可以将限界上下文看成是整个应用程序内的一个概.]]></description><category></category></item><item><title><![CDATA[领域驱动设计01. DDD概述]]></title><link>https://blog.youkuaiyun.com/d_chunyu/article/details/117132399</link><guid>https://blog.youkuaiyun.com/d_chunyu/article/details/117132399</guid><author>d_chunyu</author><pubDate>Fri, 21 May 2021 18:50:20 +0800</pubDate><description><![CDATA[01. 什么是DDD？

DDD（Domain-Driven Design）领域驱动设计

DDD是一种软件开发方法，可以帮助我们设计高质量的软件模型。

DDD是Eric Evans在2003年出版的《领域驱动设计：软件核心复杂性应对之道》（Domain-Driven Design: Tackling Complexity in the Heart of Software）一书中提出的具有划时代意义的重要概念，是指通过统一语言、业务抽象、领域划分和领域建模等一系列手段来控制软件复杂度的方法论.


DDD]]></description><category></category></item></channel></rss>