自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 WinAPI窗口开发知识

概述通过以下代码可以创建一个简单的窗口应用程序,我们通过解释以下代码来了解WinAPI编程#ifndef UNICODE#define UNICODE#endif #include <windows.h>LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR

2020-08-11 15:31:47 1162

原创 Windows开发基础知识

概述Windows 开发指的是以Windows API(WinAPI)进行在Windows平台上的开发参考资料来自微软官网的关于Windows开发文档微软针对Windows进行开发的开发相关信息Windows 开发的代码规范约定在Windows开发经常会遇到一些隐晦难懂的API以及数据类型,已将常见类型写入表中做对应Windows的字符集Windows本地支持Unicode字符串使用在UI节点、文件名称上,因为Unicode字符可以兼容所有文字和语言,Windows使用UTF16做代表,每个

2020-08-11 15:30:14 5689

原创 Spring Alibaba Sentinel 基础理论知识

概述Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性基本概念资源资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,U

2020-08-06 16:43:16 610

原创 Spring Alibaba Sentinel 集群限流详解

简介借用官方的话为什么要使用集群流控呢?假设我们希望给某个用户限制调用某个 API 的总 QPS 为 50,但机器数可能很多(比如有 100 台)。这时候我们很自然地就想到,找一个 server 来专门来统计总的调用量,其它的实例都与这台 server 通信来判断是否可以调用。这就是最基础的集群流控的方式集群模块sentinel-cluster-common-default: 公共模块,包含公共接口和实体sentinel-cluster-client-default: 默认集群流控 clie

2020-08-06 16:39:00 4930 2

原创 Spring Alibaba Sentinel 流量控制详解

流量控制详解流量控制,其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性同一个资源可以创建多条限流规则,FlowSlot会对该资源的所有限流规则依次遍历,直到有规则触发限流或者所有规则遍历完毕一条限流规则主要由下面几个因素组成,我们可以组合这些元素来实现不同的限流效果:resource:资源名,即限流规则的作用对象count: 限流阈值grade: 限流阈值类型(QPS 或并发线程数)limitApp: 流

2020-08-06 16:37:58 838

原创 Spring Alibaba Sentinel 流量规则种类详解

概述Sentinel 的所有规则都可以在内存态中动态地查询及修改,修改之后立即生效。同时 Sentinel 也提供相关 API,供您来定制自己的规则策略Sentinel 支持以下几种规则:流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则 和 热点参数规则流量控制规则 (FlowRule)重要属性:resource:资源名,资源名是限流规则的作用对象count:限流阈值grade:限流阈值类型,QPS 模式(1)或并发线程数模式(0),默认QPSlimitApp:流控针对的调用来源

2020-08-06 16:37:23 402

原创 Spring Alibaba Sentinel 动态规则详解

概述当资源定义成功后可以动态增加各种流控降级规则,Sentinel提供两种方式修改规则:通过 API 直接修改(loadRules)通过 DataSource 适配不同数据源修改DataSource 扩展我们推荐通过控制台设置规则后将规则推送到统一的规则中心,客户端实现 ReadableDataSource 接口端监听规则中心实时获取变更DataSource 扩展常见的实现方式拉模式:客户端主动向某个规则管理中心定期轮询拉取规则,这个规则中心可以是 RDBMS、文件,甚至是 VCS 等。

2020-08-06 16:36:25 543

原创 Spring Alibaba Sentinel 开源框架适配器

概述Sentinel提供了一下几种框架的适配器对Sentinel控制台进行流量统计Web ServletSentinel 提供与 Servlet 的整合,可以对 Web 请求进行流量控制。使用时需引入模块sentinel-web-servlet加入Web Servlet适配器后对于此应用的每个URL都是一个资源在引入模块后在WEB容器中添加过滤器<!--xml配置示例--><filter> <filter-name>SentinelCommonFilt

2020-08-06 16:35:36 257

原创 Spring Alibaba Sentinel 客户端接入控制台

概述Sentinel 客户端可以接入Sentinel 控制台使其控制台可以实时监控资源以及修改规则,前提是客户端要有访问量,在Sentinel 控制台才能看得见此应用Sentinel 客户端连接依赖客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-transport-sim

2020-08-06 16:34:39 691

原创 Spring Alibaba Sentinel 控制台知识

概述Sentinel控制台是一个直观的观察Sentinel运行状态以及实时动态各资源管理web控制台,Sentinel控制台提供两种,分别是本地控制台和公网控制台本地控制台本地控制台适用于局域网和小型网络以及自架构的网络结构中快速开始一、引入Sentinel依赖<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactI

2020-08-06 16:33:41 215

原创 C++类和对象-继承

文章目录概述继承的基本语法继承方式概述当我们在定义类的时候类与类之间可能存在某些共性这些共性是可以通过继承被传承给下一个类的,我们将其称为继承,使用其技术可以减少重复的代码,提高类之间的关系性继承的基本语法语法格式: class 子类 : 继承方式 父类 {}class BaseClass {public: init() { cout<<"初始化"<<endl; }}class MyClas : public BaseClass {public:

2020-07-09 14:59:39 120

原创 Spring Security 框架结构知识(持续更新)

概述Spring Security 是一款安全管理框架,在SpringBoot/SpringCloud环境下可以达成0配置的方式集成,非常方便大致模型DelegatingFilterProxySpring提供了一个名为DelegatingFilterProxy的过滤器实现,它允许在Servlet容器的生命周期和Spring的ApplicationContext之间架桥FilterChainProxy这是Spring Security提供的过滤器链代理,它被包含在DelegatingFilter

2020-06-10 16:55:27 541

原创 Spring Security 自定义身份认证过滤器

概述我们可以通过集成AbstractAuthenticationProcessingFilter或者现有的过滤器来完成自定义的身份认证过滤器身份验证过滤器的主要责任是何时进行身份认证以及如何进行身份认证等实现案例以下是实现案例,可根据需求进行拓展和剔除1. 继承AbstractAuthenticationProcessingFilterpublic class GetRequestAuthenticationFilter extends AbstractAuthenticationProcess

2020-06-10 16:50:08 2935

原创 Spring Security 自定义身份认证处理器

概述我们可以通过继承AuthenticationProvider或者其实现来完成自定义身份认证处理器通常身份验证处理器主要是完成对用户名密码的验证和判断用户时候可用等实现案例以下是实现方法1. 继承于AuthenticationProvidernew AuthenticationProvider() { @Override public Authentication authenticate(Authentication authentication) throws Authenticati

2020-06-10 16:49:28 478

原创 设计模式之创建型模式

概述创建型设计模式关注的是对象的创建和使用分离,这样可以降低系统的耦合度,使用者可以不关心创建过程创建模式可分为以下几种单例模式:某个类的实例在任何情况下只存在一个原型模式:将一个对象作为原型,通过对其原型的克隆和复制获取新的实例工厂模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品建造者模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象单例模式单例模式可以分为饿汉式和懒汉式两种实现饿汉式在类加载时将会去创建实例publ

2020-06-01 12:03:32 222

原创 Dubbo使用Nacos注册中心

概述在最新Dubbo中我们可以将Dubbo的注册到Nacos中进行服务的治理依赖的准备注意:以下所有依赖的组都是`org.apache.dubbo`dubbo-spring-boot-starter提供了dubbo基本的全部所需依赖以及springboot的自动配置的依赖dubbo-registry-nacos提供了dubbo所使用的的nacos注册中心所需的依赖如果不使用springboot则需要添加以下依赖<dependency> <groupId>

2020-05-12 15:48:30 4236 2

原创 Dubbo 基础知识以及使用方法 (持续更新中)

什么是DubboDubbo一款高性能的RPC远程调用框架,采用TCP长连接的方式进行远程调用,相比较HTTP来说效率要高很多Dubbo架构角色说明Provider:服务的提供者Consumer:服务的消费者Registry:服务的注册中心,可以没有(采用消费者直连服务者的模式)Monitor:提供者/消费者的监控中心,监控状态和数据,这个也可以没有且不会影响到Provider或ConsumerContrainer:服务运行的容器,可以理解为Spring调用关系说明:服务提供者启动

2020-05-12 15:46:35 322

原创 Neety基础知识

什么是NettyNetty是一款开源的网络通讯框架,它是异步的、基于事件的,且高性能的框架,它支持多种网络协议,例如HTTP,websocket,TCP/IP、UDP、FTP等等,所有网络通讯问题都能由Netty解决Netty线程模型Netty核心组件EventLoopGroup概述:这是一个事件循环组,这个组内可以有一个或多个EventLoop,一个BossGroup和WorkerGroup都是EventLoopGroup的实现,通常BossGroup处理客户端连接,然后把连接后的客户通道交给

2020-05-12 15:42:50 1368

原创 SpringBoot 注解配置动态数据源

概述在项目中有时会需要根据情况来使用不同的数据源实现方式一、配置数据源spring: datasource: master: password: root url: jdbc:mysql://localhost:3306/evid_yunyan?characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai

2020-05-12 15:38:40 1298 2

原创 C++ 类和对象-封装(持续更新)

文章目录封装的意义权限控制对象的初始化和清理构造函数默认构造函数析构函数默认析构函数封装的意义将一类事务的属性和行为封装起来,表现生活的事务将属性和行为添加权限控制抽象一类事务,使其关系更加明显,更容易被使用基本语法:class ClassName {};类的名称应该单词的首字母大写基本案例:class Phone {public: string phoneNumber...

2020-04-23 11:25:00 181

原创 C++ 类和对象-基础知识(持续更新)

文章目录类和对象类对象成员类和对象C++面向对象的三大特征:封装、继承、多态类类可以理解为一类事务的抽象,把一类事务抽象为一类,这个类中包括属性和行为,当我们把这个抽象实现出来时,我们可以说这一个实现就是一类中的一个实例对象我们几乎可以将所有东西看为一个对象,其对象中包含属性和行为如果我们把手机作为一个对象,那么属性:就是手机拥有的特性,例如屏幕,充电口,耳机口等等行为:就是手...

2020-04-23 11:23:48 211

原创 C++指针理论知识(持续更新)

文章目录概述定义指针取地址符指针大小及数据类型空指针野指针常量指针与数组访问数组元素引用注意事项引用做函数参数概述指针是c++中重要的数据类型,它可以对指针指向的实际物理内存地址中的值进行读/写示意图如下定义指针指针变量的定义方法为数据类型 *变量名称指针变量的读/写为*指针变量该操作代表解引用,也就是访问指针所指向地址的内存值int a = 10; // 创建整数型变量aint...

2020-04-23 11:21:15 557

原创 C++ 结构体相关知识(持续更新)

结构体是组织数据结构的方式,它类似于类,但是不同于类,主要用于组织数据与数据之间的结构与类的区别声明结构体的方式和声明类的方式大致相同,其区别如下使用关键字 struct 而不是关键字 class。尽管结构体可以包含成员函数,但它们很少这样做。所以,通常情况下结构体声明只会声明成员变量。结构体声明通常不包括 public 或 private 的访问修饰符。类成员默认情况是私有的,而结...

2020-04-23 11:19:00 195

原创 C++ 基础知识(持续更新)

变量概述:变量指的是储存可变的值的一块内存地址,变量名则是这块内存的地址的别名格式: [修饰符] 数据类型 变量名称 = 初始值 example cont int number = 20;变量名命名规则:开头不能是数字,必须由数字字母下划线组成,不能使用C++保留的关键字常量概述:常量即是固定不变的变量,其值只能在定义的时候修改,在其它任何时候都不能被修改,可以通过 #define ...

2020-04-23 11:17:43 219

原创 JAVA NIO基础知识及应用

概述NIO是Java中一种新的IO,API,提供了与传统IO不同的操作,NIO是一种同步非阻塞、基于事件的IO API核心组件Buffer:代表NIO中数据读、写的中转池,无论是收到写数据还是读数据,都会通过BufferChannel:代表数据的源头或目的源,为Buffer提供(写)数据和从Buffer获取(读)数据Selector:用于监听一个或多个通道(Channel)的事件,当通...

2020-04-22 17:19:58 136

原创 Netty处理CP粘包和拆包问题和解决方法

概述TCP是个“流”协议,所谓流,就是没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题如图所示,假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到的字节数是不确定的,故可能...

2020-04-22 17:18:02 189

原创 Netty处理HTTP请求和响应

概述主要讲述Netty处理HTTP请求和响应和需要注意的事项Neey作为HTTP服务器1. 编写服务器的启动程序/** * 服务端的启动代码,重点在HttpServerInitializer这个类中,这里指定了pipeline的处理器 */public class HttpServer { private int port ; public HttpServer(i...

2020-04-22 17:16:33 4148 1

原创 Netty自带的常用出入站处理器

HTTP相关HandlerHttpRequestDecoder 请求解码器该处理器是把HTTP请求解码,然后将解码后数据封装到HttpObject(默认DefaultHttpRequest实现)内后传给下一个Handler,这是一个入栈处理器HttpResponseEncoder 响应编码器该处理器是把写入的HTTP响应对象(HttpResponse)编码为浏览器可读的数据的处理器...

2020-04-22 17:15:49 519 1

原创 Netty基本知识以及概念

什么是NettyNetty是一款开源的网络通讯框架,它是异步的、基于事件的,且高性能的框架,它支持多种网络协议,例如HTTP,websocket,TCP/IP、UDP、FTP等等,所有网络通讯问题都能由Netty解决Netty线程模型Netty核心组件EventLoopGroup概述:这是一个事件循环组,这个组内可以有一个或多个EventLoop,一个BossGroup和WorkerG...

2020-04-22 17:15:16 385 2

原创 Shiro会话管理知识以及使用

概述用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据,当主体成功login后就会创建一个会话会话管理器概述: 会话管理器管理着应用中所有 Subject的会话的创建、维护、删除、失效、验证等工作shiro 提供了三个默认实现DefaultSessionManager:适合用于 JavaSE 环境ServletContainer...

2020-04-22 17:13:23 280

原创 Shiro实现自定义filter

概述当用户访问匹配规则的URL时触发的过滤器,通常我们都继承如下几个类并重写方法完成自定义过滤器AnonymousFilter概述:这个类是游客访问即无需登录访问的资源时进入的过滤器boolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue)概述:该方法如果返回true则...

2020-04-22 17:12:40 1108

原创 Shiro中认证、授权、域相关知识

概述认证,权限验证、域是Shiro的主要功能认证、权限验证、用户验证概述:用于验证用户是否账号/凭证和权限的功能认证方法:login(AuthenticationToken token)权限验证方法:checkPermission(String permission)checkPermissions(Collection permissions)checkPermissions...

2020-04-22 17:11:49 238

原创 Shiro基础知识及概念

概述Apache Shiro 是 Java 的一个安全框架,相对于Spring Security来说可能没有 Spring Security 做的功能强大,但是Shiro更加简单、小巧、易用,在业务去求上也基本满足其基本功能点如下图所示Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份Authorization:授权,即权限验证,验证某个已认证的用户是否拥有...

2020-04-22 17:10:57 190

原创 Spring Cloud集成Nacos配置中心

目录集成配置中心前提条件快速启动file-exetension与配置格式关系支持自定义 namespace 的配置支持自定义 Group 的配置支持自定义扩展的 Data Id 配置拓展配置集共享配置集配置的优先级集成配置中心SpringCloud可以很方便的与Nacos的配置中心集成起来前提条件启动Nocas服务快速启动添加依赖<dependency> &l...

2020-04-22 17:02:13 3344

原创 Nacos基础知识和概念

什么是NacosNacos是一个帮助我们发现、配置、和管理微服务的的框架,Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理服务服务是Nacos中非常中澳的元素,Nacos 支持几乎所有主流类型的服务的发现、配置和管理Kubernetes ServicegRPC & Dubbo RPC ServiceSpring Cloud R...

2020-04-22 17:00:35 1382

原创 SpringBoot集成Filter、Listener、Interceptor

Filter过滤器概述:可以拦截和过滤所有web资源实现方式一:使用@WebFilter注解实现@WebFilter(filterName = "myFilter",urlPatterns = "/*")public class MyFilter implements Filter { @Override public void init(FilterConfig filt...

2020-04-20 09:56:09 106

原创 SpringBoot集成FastJsonHTTP消息转换器

概述使用fastjson作为Springboot的HttpMessageConverter,即在Web中返回@ResponseBody时使用的将对象、集合等转为Json的转换器.在maven中添加依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjso...

2020-04-20 09:54:43 569

原创 SpringBoot集成使用mybaties

添加依赖mybatis-spring-boot-startermysql-connector-java在application.yml中配置mybatiesmybatis: mapper-locations: classpath:mapping/*Mapping.xml #mapping文件的路径 type-aliases-package: com.example...

2020-04-20 09:53:50 182

原创 SpringBoot集成使用Druid数据源

添加依赖druid-spring-boot-starter在配置类中注册Bean概述:被注册的类是DruidDataSource类型,在Bean中可以可以配置数据源的各种属性在application.yml中配置数据源在application中配置格式为spring:datasource:druid:属性name:配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区...

2020-04-20 09:52:03 104

原创 SpringBoot集成Apache Shiro框架

文章目录基本配置ShiroFilterFactoryBeanSecurityManagerRealm使用注解方式的过滤器基本配置需要配置3个beanShiroFilterFactoryBeanSecurityManagerRealmShiroFilterFactoryBean概述:这个bean主要配置Shiro的Filter,将SecurityManager配置以及拦截规则配置...

2020-04-20 09:50:53 157

空空如也

空空如也

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

TA关注的人

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