JAVA
JAVA中遇到的问题以及学习路线总结,对当下流行框架以及技术的学习汇报
不想加班的p
奥利给 学就完事儿啦
展开
-
Spring Alibaba Sentinel 基础理论知识
概述Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性基本概念资源资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,U原创 2020-08-06 16:43:16 · 630 阅读 · 0 评论 -
Spring Alibaba Sentinel 集群限流详解
简介借用官方的话为什么要使用集群流控呢?假设我们希望给某个用户限制调用某个 API 的总 QPS 为 50,但机器数可能很多(比如有 100 台)。这时候我们很自然地就想到,找一个 server 来专门来统计总的调用量,其它的实例都与这台 server 通信来判断是否可以调用。这就是最基础的集群流控的方式集群模块sentinel-cluster-common-default: 公共模块,包含公共接口和实体sentinel-cluster-client-default: 默认集群流控 clie原创 2020-08-06 16:39:00 · 5032 阅读 · 2 评论 -
Spring Alibaba Sentinel 流量控制详解
流量控制详解流量控制,其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性同一个资源可以创建多条限流规则,FlowSlot会对该资源的所有限流规则依次遍历,直到有规则触发限流或者所有规则遍历完毕一条限流规则主要由下面几个因素组成,我们可以组合这些元素来实现不同的限流效果:resource:资源名,即限流规则的作用对象count: 限流阈值grade: 限流阈值类型(QPS 或并发线程数)limitApp: 流原创 2020-08-06 16:37:58 · 873 阅读 · 0 评论 -
Spring Alibaba Sentinel 流量规则种类详解
概述Sentinel 的所有规则都可以在内存态中动态地查询及修改,修改之后立即生效。同时 Sentinel 也提供相关 API,供您来定制自己的规则策略Sentinel 支持以下几种规则:流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则 和 热点参数规则流量控制规则 (FlowRule)重要属性:resource:资源名,资源名是限流规则的作用对象count:限流阈值grade:限流阈值类型,QPS 模式(1)或并发线程数模式(0),默认QPSlimitApp:流控针对的调用来源原创 2020-08-06 16:37:23 · 415 阅读 · 0 评论 -
Spring Alibaba Sentinel 动态规则详解
概述当资源定义成功后可以动态增加各种流控降级规则,Sentinel提供两种方式修改规则:通过 API 直接修改(loadRules)通过 DataSource 适配不同数据源修改DataSource 扩展我们推荐通过控制台设置规则后将规则推送到统一的规则中心,客户端实现 ReadableDataSource 接口端监听规则中心实时获取变更DataSource 扩展常见的实现方式拉模式:客户端主动向某个规则管理中心定期轮询拉取规则,这个规则中心可以是 RDBMS、文件,甚至是 VCS 等。原创 2020-08-06 16:36:25 · 561 阅读 · 0 评论 -
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 · 269 阅读 · 0 评论 -
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 · 702 阅读 · 0 评论 -
Spring Alibaba Sentinel 控制台知识
概述Sentinel控制台是一个直观的观察Sentinel运行状态以及实时动态各资源管理web控制台,Sentinel控制台提供两种,分别是本地控制台和公网控制台本地控制台本地控制台适用于局域网和小型网络以及自架构的网络结构中快速开始一、引入Sentinel依赖<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactI原创 2020-08-06 16:33:41 · 224 阅读 · 0 评论 -
Spring Security 框架结构知识(持续更新)
概述Spring Security 是一款安全管理框架,在SpringBoot/SpringCloud环境下可以达成0配置的方式集成,非常方便大致模型DelegatingFilterProxySpring提供了一个名为DelegatingFilterProxy的过滤器实现,它允许在Servlet容器的生命周期和Spring的ApplicationContext之间架桥FilterChainProxy这是Spring Security提供的过滤器链代理,它被包含在DelegatingFilter原创 2020-06-10 16:55:27 · 555 阅读 · 0 评论 -
Spring Security 自定义身份认证过滤器
概述我们可以通过集成AbstractAuthenticationProcessingFilter或者现有的过滤器来完成自定义的身份认证过滤器身份验证过滤器的主要责任是何时进行身份认证以及如何进行身份认证等实现案例以下是实现案例,可根据需求进行拓展和剔除1. 继承AbstractAuthenticationProcessingFilterpublic class GetRequestAuthenticationFilter extends AbstractAuthenticationProcess原创 2020-06-10 16:50:08 · 3090 阅读 · 0 评论 -
Spring Security 自定义身份认证处理器
概述我们可以通过继承AuthenticationProvider或者其实现来完成自定义身份认证处理器通常身份验证处理器主要是完成对用户名密码的验证和判断用户时候可用等实现案例以下是实现方法1. 继承于AuthenticationProvidernew AuthenticationProvider() { @Override public Authentication authenticate(Authentication authentication) throws Authenticati原创 2020-06-10 16:49:28 · 488 阅读 · 0 评论 -
设计模式之创建型模式
概述创建型设计模式关注的是对象的创建和使用分离,这样可以降低系统的耦合度,使用者可以不关心创建过程创建模式可分为以下几种单例模式:某个类的实例在任何情况下只存在一个原型模式:将一个对象作为原型,通过对其原型的克隆和复制获取新的实例工厂模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品建造者模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象单例模式单例模式可以分为饿汉式和懒汉式两种实现饿汉式在类加载时将会去创建实例publ原创 2020-06-01 12:03:32 · 229 阅读 · 0 评论 -
Dubbo 基础知识以及使用方法 (持续更新中)
什么是DubboDubbo一款高性能的RPC远程调用框架,采用TCP长连接的方式进行远程调用,相比较HTTP来说效率要高很多Dubbo架构角色说明Provider:服务的提供者Consumer:服务的消费者Registry:服务的注册中心,可以没有(采用消费者直连服务者的模式)Monitor:提供者/消费者的监控中心,监控状态和数据,这个也可以没有且不会影响到Provider或ConsumerContrainer:服务运行的容器,可以理解为Spring调用关系说明:服务提供者启动原创 2020-05-12 15:46:35 · 339 阅读 · 0 评论 -
Neety基础知识
什么是NettyNetty是一款开源的网络通讯框架,它是异步的、基于事件的,且高性能的框架,它支持多种网络协议,例如HTTP,websocket,TCP/IP、UDP、FTP等等,所有网络通讯问题都能由Netty解决Netty线程模型Netty核心组件EventLoopGroup概述:这是一个事件循环组,这个组内可以有一个或多个EventLoop,一个BossGroup和WorkerGroup都是EventLoopGroup的实现,通常BossGroup处理客户端连接,然后把连接后的客户通道交给原创 2020-05-12 15:42:50 · 1424 阅读 · 0 评论 -
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 · 1326 阅读 · 2 评论 -
JAVA NIO基础知识及应用
概述NIO是Java中一种新的IO,API,提供了与传统IO不同的操作,NIO是一种同步非阻塞、基于事件的IO API核心组件Buffer:代表NIO中数据读、写的中转池,无论是收到写数据还是读数据,都会通过BufferChannel:代表数据的源头或目的源,为Buffer提供(写)数据和从Buffer获取(读)数据Selector:用于监听一个或多个通道(Channel)的事件,当通...原创 2020-04-22 17:19:58 · 147 阅读 · 0 评论 -
Shiro会话管理知识以及使用
概述用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据,当主体成功login后就会创建一个会话会话管理器概述: 会话管理器管理着应用中所有 Subject的会话的创建、维护、删除、失效、验证等工作shiro 提供了三个默认实现DefaultSessionManager:适合用于 JavaSE 环境ServletContainer...原创 2020-04-22 17:13:23 · 290 阅读 · 0 评论 -
Shiro实现自定义filter
概述当用户访问匹配规则的URL时触发的过滤器,通常我们都继承如下几个类并重写方法完成自定义过滤器AnonymousFilter概述:这个类是游客访问即无需登录访问的资源时进入的过滤器boolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue)概述:该方法如果返回true则...原创 2020-04-22 17:12:40 · 1116 阅读 · 0 评论 -
Shiro中认证、授权、域相关知识
概述认证,权限验证、域是Shiro的主要功能认证、权限验证、用户验证概述:用于验证用户是否账号/凭证和权限的功能认证方法:login(AuthenticationToken token)权限验证方法:checkPermission(String permission)checkPermissions(Collection permissions)checkPermissions...原创 2020-04-22 17:11:49 · 245 阅读 · 0 评论 -
Shiro基础知识及概念
概述Apache Shiro 是 Java 的一个安全框架,相对于Spring Security来说可能没有 Spring Security 做的功能强大,但是Shiro更加简单、小巧、易用,在业务去求上也基本满足其基本功能点如下图所示Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份Authorization:授权,即权限验证,验证某个已认证的用户是否拥有...原创 2020-04-22 17:10:57 · 197 阅读 · 0 评论 -
Spring Cloud集成Nacos配置中心
目录集成配置中心前提条件快速启动file-exetension与配置格式关系支持自定义 namespace 的配置支持自定义 Group 的配置支持自定义扩展的 Data Id 配置拓展配置集共享配置集配置的优先级集成配置中心SpringCloud可以很方便的与Nacos的配置中心集成起来前提条件启动Nocas服务快速启动添加依赖<dependency> &l...原创 2020-04-22 17:02:13 · 3360 阅读 · 0 评论 -
Nacos基础知识和概念
什么是NacosNacos是一个帮助我们发现、配置、和管理微服务的的框架,Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理服务服务是Nacos中非常中澳的元素,Nacos 支持几乎所有主流类型的服务的发现、配置和管理Kubernetes ServicegRPC & Dubbo RPC ServiceSpring Cloud R...原创 2020-04-22 17:00:35 · 1393 阅读 · 0 评论 -
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 · 193 阅读 · 0 评论 -
SpringBoot集成使用Druid数据源
添加依赖druid-spring-boot-starter在配置类中注册Bean概述:被注册的类是DruidDataSource类型,在Bean中可以可以配置数据源的各种属性在application.yml中配置数据源在application中配置格式为spring:datasource:druid:属性name:配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区...原创 2020-04-20 09:52:03 · 112 阅读 · 0 评论 -
SpringBoot集成Apache Shiro框架
文章目录基本配置ShiroFilterFactoryBeanSecurityManagerRealm使用注解方式的过滤器基本配置需要配置3个beanShiroFilterFactoryBeanSecurityManagerRealmShiroFilterFactoryBean概述:这个bean主要配置Shiro的Filter,将SecurityManager配置以及拦截规则配置...原创 2020-04-20 09:50:53 · 161 阅读 · 0 评论 -
SpringBoot基础知识
文章目录SpringBoot的优点开发Spring Boot的环境Maven依赖管理项目基本结构HttpMessageConverter如何更改异常处理具体步骤:SpringBoot配置Servlet、Filter、ListenerServletFilterListener拦截器SpringBoot的优点易于部署使用最少的配置生产时间较短实现跨应用的模块化不依赖于容器开发Spri...原创 2020-04-20 09:48:51 · 212 阅读 · 0 评论 -
JAVA 学习清单
JAVA基础基础语法✅ 容器✅ 面向对象思想✅ 类、封装、多态、继承✅ 面向接口思想✅ 接口、面向接口编程✅ 各种流编程✅ 多线程编程✅ Socket编程 ✅JAVA语言特性JAVA 8 新特性 JAVA 9 新特性 JAVA 10新特性 JAVA 11新特性框架学习Spring Framework✅:框架中的集大成者,是所有Spring...原创 2020-03-02 18:07:09 · 192 阅读 · 0 评论