![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 50
雪峰.贵
这个作者很懒,什么都没留下…
展开
-
AOP实现登录状态检查
文章目录一、加依赖二、创建注解三、创建切面四、在需要加校验的地方加切面注解一、加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>二、创建注解public @interface CheckLogin {}三、创建切原创 2022-05-30 22:12:03 · 208 阅读 · 0 评论 -
JWT-JSON WEB TOKEN
文章目录一、JWT是什么?二、JWT的组成三、Token组成四、Signature的组成五、使用一、JWT是什么?二、JWT的组成Header: 记录令牌的类型,签名的算法名。{“alg”:“HS256”,“type”:“JWT”}Payload:记录用户信息。{“username”:“GXF”,“id”:“1”}Signature:防止Token被篡改,提高安全性。根据Header和Payload计算出来的一个字符串。三、Token组成token=BASE64(Header).BAS原创 2022-05-29 17:59:32 · 1129 阅读 · 0 评论 -
RocketMQ的事务消息
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warning原创 2022-05-21 19:12:20 · 1089 阅读 · 0 评论 -
spring-cloud-alibaba整合rocketMQ
文章目录生产者与消费者 加依赖生产者2.加配置3.编写生产者消费者4.加配置5.编写消费者注意生产者与消费者 加依赖根据自己的MQ版本来指定版本号<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version>原创 2022-05-18 21:52:15 · 509 阅读 · 0 评论 -
Sentinel RESTful URL支持
文章目录前言Sentinel RESTful URL支持一、实现接口UrlCleaner二. 测试前言一个Restful接口,后面跟着一个数字参数。导致每次的请求url都不一样,例如:/shares/1 ,/shares/2 ,这时候的规则就不好针对这个Api设定。Sentinel RESTful URL支持一、实现接口UrlCleanerimport com.alibaba.csp.sentinel.adapter.servlet.callback.UrlCleaner;impor原创 2022-05-16 19:57:30 · 290 阅读 · 0 评论 -
Sentinel实现区分来源的规则
文章目录1.创建MyRequestOriginParser2. 测试方法3. sentinelDashboard 设置规则1.创建MyRequestOriginParser这里校验了一下Origin,不传则会抛异常,进而会被MyUrlBlockHandler捕获到因IllegalArgumentException是AuthorityException的子类,所以会授权规则不通过@Componentpublic class MyRequestOriginParser implements Requ原创 2022-05-15 18:02:39 · 445 阅读 · 0 评论 -
Feign整合sentinel
文章目录一、依赖二、注解三、配置四、使用五、配置sentinel规则提示:以下是本篇文章正文内容,下面案例可供参考一、依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>二、注解@F原创 2022-05-14 19:23:18 · 375 阅读 · 0 评论 -
怎样防止雪崩效应
文章目录什么是雪崩一、怎么防止雪崩二、spring-cloud-alibaba整合sentinel1.加依赖2.加注解3.加配置4.下载jar什么是雪崩随着时间的进行,假设A服务down了,而B还在不断的请求,每次请求都创建一个线程,B线程数越来越大,最终达到服务器最大限度,进而B服务down了,而B的上游服务也在不断请求B服务,进而上游服务陆续都Down了。这种因下游服务导致一系列上游服务Down的现象称为雪崩效应。一、怎么防止雪崩超时的思想: 减小请求的超时时间,超时就释放线程。原创 2022-05-12 20:49:27 · 672 阅读 · 0 评论 -
代码方式与配置方式 各支持的Feign配置项
文章目录一、代码方式 支持的配置项二、配置方式 支持的配置项一、代码方式 支持的配置项怎么用代码方式配置,看前面的 ”Feign 的日志打印“ 一文,套路是一样的二、配置方式 支持的配置项怎么用配置方式配置,看前面的 ”Feign 的日志打印“ 一文,套路是一样的...原创 2022-05-11 20:59:44 · 145 阅读 · 0 评论 -
spring-cloud-alibaba 集成Feign
文章目录前言一、Feign是什么?二、使用步骤1.加依赖2.加注解3.加yml配置4.新建 要请求的微服务 的接口5. 调用微服务前言private final RestTemplate restTemplate;UserDTO userDTO = restTemplate.getForObject(“http://user-center/users/{userId}”,UserDTO.class,userId);通过这种RestTemplate 方式调用微服务,存在几个问题:1.可读性差2.原创 2022-05-11 19:41:19 · 398 阅读 · 0 评论 -
扩展Ribbon-支持Nacos权重
文章目录前言一、自己写代码扩展Ribbon来支持Nacos的权重二、使用步骤1.基于yml配置的方式2.基于JAVA代码的方式前言Ribbon 本不支持权重,因为spring-cloud里没有权重的概念。提示:以下是本篇文章正文内容,下面案例可供参考一、自己写代码扩展Ribbon来支持Nacos的权重示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.基于yml配置的方式创建类:NacosWeightedRuleimport原创 2022-05-10 19:46:20 · 220 阅读 · 0 评论 -
spring-boot 读取外部环境变量
1.用启动命令,–xxx=**** 方式2.外部配置文件方式jar 里面有application.yml,同级目录下也有个application.yml则springboot可以读到外面的application.yml,而且外部的优先级更高。3.命令行参数方式原创 2022-05-09 22:14:57 · 611 阅读 · 0 评论 -
细粒度与全局 的在spring-cloud里配置Ribbon ,与自定义Ribbon 配置项
配置一个 随机策略的Ribbon一、创建目录及类import org.springframework.cloud.netflix.ribbon.RibbonClient;import ribbonconfiguration.RibbonConfiguration;@RibbonClient(name = "user-center" ,configuration = RibbonConfiguration.class)//name表明这个Ribbon是给user-center用的,configu原创 2022-05-09 21:25:18 · 202 阅读 · 0 评论 -
服务器端负载均衡与客户端测负载均衡
1.服务器端的负载均衡通过Nginx的负载均衡算法实现负载均衡,由于Nginx是部署在一个物理机上,所以叫服务器端的负载均衡。2.客户测端的负载均衡例如:有两个微服务集群 User-Center 与 Content-Center.当User-Center中的一个实例 调用Content-Center是可以使用 List<ServiceInstance> instances = discoveryClient.getInstances("Content-Center");这样调用方就原创 2022-05-09 20:08:58 · 594 阅读 · 0 评论 -
Nacos服务发现的领域模型以及整合到spring-boot
一. 什么是服务发现的领域模型Namespace:默认public,用来实现隔离,比如开发环境,测试环境,生产环境Group:把不同微服务划分到不同的组里。现阶段没有实际用处。Service: 微服务,比如说用户中心微服务,内容中心微服务。Cluster:指定默认微服务的虚拟划分,比如:北京机房的用户中心微服务集 群Cluster=BJ-User-Center;成都机房的用户中心微服务集群Cluster=CD-User-Center.并且还可以实现,北京的应用优先调用原创 2022-05-09 19:30:04 · 279 阅读 · 0 评论 -
DiscoveryClient
可以获取节点的信息@AutowiredDiscoveryClient discoveryClient;@GetMapping("/test")public List<ServiceInstance> test() { List<ServiceInstance> serviceInstances = discoveryClient.getInstances("user-center"); return serviceInstances;}原创 2022-05-08 21:59:10 · 854 阅读 · 0 评论 -
搭建Nacos server集成到spring-boot
参考:官方:https://nacos.io/zh-cn/docs/what-is-nacos.html提示:以下是本篇文章正文内容,下面案例可供参考一、找项目使用的spring-cloud-alibaba版本支持的Nacos搜Nacos,可见我的spring-cloud-alibaba 项目支持Nacos 1.0.0版本二、下载响应版本的nacos-serverhttps://github.com/alibaba/nacos/releases1.启动解压后,windos的 在 bi原创 2022-05-08 20:58:25 · 347 阅读 · 0 评论 -
服务发现原理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录现有架构存在问题:一、服务发现是什么?二、服务发现原理现有架构存在问题:如果被调用方的地址发生变化怎么办?修改调用方的代码重新发布,这个是不现实的。那么怎么让服务消费者感知服务提供者的地址变化呢?一、服务发现是什么?服务消费者能够感知服务提供者的地址变化。现实生活中的例子:你手机存了一个人的两个电话,有一天你发现有一个打不通了,然后你把这个打不通的电话删了,留下了能打通的电话。二、服务发现原理形象举例:假设.原创 2022-05-08 20:00:15 · 287 阅读 · 0 评论 -
spring-boot整合spring-cloud和spring-cloud-alibaba
一、参考网址:在pom文件中加:注意不同的spring-cloud版本对应的配置依赖不同,需要参考:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明<dependencyManagement> <dependencies> <!--整合spring cloud--> <dependency>原创 2022-05-08 19:31:13 · 537 阅读 · 0 评论 -
spring-cloud版本与兼容
spring-clude :分布式系统的工具集spring clude 与spring clude-alibaba与 spring-boot版本对应关系:官方网址:https://spring.io/projects/spring-cloud组件版本关系:版本选型:生产环境,避免使用end-of-life版本。可以使用RELEASE版本和SR2版本...原创 2022-05-08 19:07:26 · 367 阅读 · 0 评论 -
lombook相关注解
@Getter@Setter@ToString//创建有参构造函数@AllArgsConstructor//创建无参构造函数@NoArgsConstructor//为final的成员创建构造函数@RequiredArgsConstructor//改善 new对象实例化,用建造者模式@Builder例子:ShareDTO.builder().id(1).userId(12);@EqualsAndHashCode...原创 2022-05-07 19:44:56 · 345 阅读 · 0 评论 -
spring-boot整合通用Mapper
1.https://github.com/abel5332.加依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency>原创 2022-05-06 23:16:32 · 590 阅读 · 0 评论 -
自动化部署从零开始
自动化部署从零开始项目用git管理JenKins项目用git管理1.GIT新建项目2.创建本地GIE 仓库3.4.commit /push5.6.pushJenKins1.登录JenKins 选流水线2.配置代码非maven版node { stage('git pull loginservice') { // for display purposes // Get some code from a GitHub repository git cr原创 2021-08-05 17:46:06 · 75 阅读 · 0 评论 -
NIO-API
Buffer:缓冲区,用于数据处理的基础单元,客户端发送与接收数据都需要通过Buffer转发进行。包括:ByteBuffer,CharBuffer,ShortBuffer…与传统不同,写数据时先写到Buffer->Channel->发送。读则反之。为NIO块状操作提供基础,数据都按块进行传输,底层是数组来实现。Channel:通道,真实的用于数据的发送与读取的通道。类似与流,但不同于in\out stream;流具有独占性与单向性,而通道则可以通过Buffer来偏向于数据的流通原创 2021-02-18 00:05:59 · 146 阅读 · 0 评论 -
7层网络模型
原创 2021-01-10 15:46:16 · 144 阅读 · 0 评论 -
GIT命令
常用GIT命令:$ git init 创建仓库$ git add . 添加到暂存区$ git commit -m 提交说明 提交到远程仓库$ git push -u origin main 或者(master)$ git status 查看原创 2021-01-10 12:30:37 · 183 阅读 · 2 评论 -
执行$ git add .警告
项目场景:执行$ git add .问题描述:提示:warning: LF will be replaced by CRLF in src/com/…The file will have its original line endings in your working directory.guixuefeng@LAPTOP-SA9RG60L MINGW32 /d/gxf/workspace/spider (master)$ git add .warning: LF will be repl原创 2021-01-06 21:52:54 · 880 阅读 · 3 评论 -
JAVA中的正则 与 JS中的正则
根本的区别就是方法的返回值不同。JAVA中的matches方法返回值类型是boolean类型。String s1 = "123-12345670";boolean result = s1.matches("\\d{3}-\\d{7}");JS 中的match方法返回值类型是数组类型。 返回一个数组,数组的第0号元素为刚匹配到的字符串,当reg有全局标志(g选项)时,很简单,也符合我们的理原创 2021-01-23 09:34:43 · 703 阅读 · 0 评论