springCloud
文章平均质量分 74
liu1002880404
这个作者很懒,什么都没留下…
展开
-
老程序员java基本操作最佳实战
1,高级程序员都不用a.equals(b)判断对象相等该用什么1.用Objects.equals(a,b)更加安全。2.对于所有的比较,都推荐对象.方法,比如String 推荐Strings.method。原创 2021-06-26 18:46:21 · 102 阅读 · 0 评论 -
运行nacos源码 com.alibaba.nacos.consistency.entity包下类缺失问题
import com.alibaba.nacos.consistency.entity.ReadRequest;import com.alibaba.nacos.consistency.entity.Response;import com.alibaba.nacos.consistency.entity.WriteRequest;下载了nacos源码但是编译时候报错了,原因是内部缺少了entity这个包下得类,看源码压根没有这个包解决办法依次点击Intellij中的“File”...原创 2021-05-10 14:36:53 · 12626 阅读 · 9 评论 -
Spring Cloud gateway 网关拦截Post请求日志
Spring Cloud gateway 网关拦截Post请求日志1.pom结构(部分内部项目依赖已经隐藏)<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>...原创 2021-05-08 16:25:55 · 1906 阅读 · 0 评论 -
Spring cloud gateway 详解和配置使用
spring cloud gateway 介绍1. 网关是怎么演化来的单体应用拆分成多个服务后,对外需要一个统一入口,解耦客户端与内部服务注:图片来自网络2. 网关的基本功能网关核心功能是路由转发,因此不要有耗时操作在网关上处理,让请求快速转发到后端服务上网关还能做统一的熔断、限流、认证、日志监控等 注:图片来自网络可以和服务注册中心完美的整合,如:Eureka、Consul、Nacos3.关于Spring Cloud Gateway在SpringCloud微服务体系..转载 2021-05-08 15:24:38 · 2922 阅读 · 0 评论 -
集群高并发情况下如何保证分布式唯一全局Id生成
集群高并发情况下如何保证分布式唯一全局Id生成问题为什么需要分布式全局唯一ID以及分布式ID的业务需求在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识,如在美团点评的金融、支付、餐饮、酒店猫眼电影等产品的系统中数据逐渐增长,对数据库分库分表后需要有一个唯一ID来标识一条数据或信息;特别Ian的订单、骑手、优惠券都需要有唯一ID做标识此时一个能够生成全局唯一ID的系统是非常必要的ID生成规则部分硬性要求全局唯一 趋势递增 在MySQL的InnoDB引擎中使用的原创 2021-05-08 13:48:53 · 274 阅读 · 0 评论 -
深入理解springCloud源码
第一:微服务注册中心的注册表如何更好的防止读写并发冲突?首先介绍一下读写锁代码使用一、读写锁的介绍本文我们来聊一下读写锁。所谓的读写锁,就是将一个锁拆分为读锁和写锁两个锁,然后加锁的时候,可以加写锁,也可以加读锁。如下面代码所示:private ReadWriteLock rwl = new ReentrantReadWriteLock();//定义读写锁 public Object getData(String key){ //使用读写锁的基本结构...原创 2021-05-06 17:07:19 · 954 阅读 · 0 评论 -
分布式事务解决方案之数据最终一致性
最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。一、基础理论 目前关于事务的几大理论包括:ACID事务特性,CAP分布式理论,以及BASE等。ACID在数据库事务中体现,CAP和BASE则是分布式事务的理论,结合业务系统,例如订单管理,例如仓储管理等,可以借鉴这些理论,从而解决问题...原创 2021-03-10 14:01:13 · 506 阅读 · 0 评论 -
分布式强一致性事务讲解2PC,3PC,TCC
强一致性事务实现原理 2PC,即二阶段提交,是分布式事务中一个很重要的协议,当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个coordinator,即协调者作为的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交或回滚。 二阶段提交的算法思路可以概括为: 参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是回滚操作。 各参与者成功提交事务流程: (1)在一个有A,B,C参与的事务中,原创 2021-03-10 10:05:22 · 1134 阅读 · 0 评论 -
分布式事务概论
一、事务的概念 事务是一组操作的执行单元,相对于数据库操作来讲,事务管理的是一组SQL指令,比如增加,修改,删除等,事务的一致性,要求,这个事务内的操作必须全部执行成功,如果在此过程种出现了差错,比如有一条SQL语句没有执行成功,那么这一组操作都将全部回滚 最经典的例子便是:A向B汇款500元,B账户多了500元,这整个过程,要么全部正常执行,要么全部回滚,不然就会出现A扣款,B收不到钱,或者A没扣款,B收到500元的情况,这种场景是灾难性的。严格意义上的事务实现应该是具备原子性、一致性、隔原创 2021-03-10 09:38:51 · 89 阅读 · 0 评论 -
Sentinel规则持久化
一旦我们重启应用,Sentinel规则将消失,生产环境需要将配置规则进行持久化将限流配置规则持久化进Nacos保存,只要刷新服务某个rest地址,sentinel控制台的流控规则就能看到,只要Nacos里面的配置不删除,针对服务上Sentinel上的流控规则持续有效操作步骤:1,添加jar<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-...原创 2021-03-09 14:42:39 · 1298 阅读 · 0 评论 -
sentinel整合ribbon+openFeign+fallback,加强版的服务熔断功能
sentinel整合ribbonRibbon系列创建工程: ymlserver: port: 84spring: application: name: nacos-order-consumer cloud: nacos: discovery: server-addr: localhost:8848 sentinel: transport: dashboard: localhost:8080原创 2021-03-09 10:54:13 · 621 阅读 · 2 评论 -
@SentinelResource 总结
@SentinelResource可以说是Sentinel学习的突破口,搞懂了这个注解的应用,基本上就搞清楚了 Sentinel 的大部分应用场景。一、@SentinelResource 解析Sentinel 提供了 @SentinelResource 注解用于定义资源,并提供了 AspectJ 的扩展用于自动定义资源、处理 BlockException 等。1、SentinelResource源码查看 Sentinel的源码,可以看到 SentinelResource 定义了value原创 2021-03-08 15:52:02 · 486 阅读 · 0 评论 -
sentinel对热点key的配置
1.首先需要这么一个方法如下所示: @GetMapping("/testHotKey") @SentinelResource(value = "testHotKey",blockHandler = "dealTestHotKey") public String testHotKey(@RequestParam(value = "p1",required = false) String p1, @RequestParam(val...原创 2021-03-08 15:34:50 · 361 阅读 · 0 评论 -
Sentinel降级规则
1、降级规则设置说明:这里的降级规则实际就是断路器的熔断规则。在Sentinel Dashboard控制台,点击左边菜单【簇点链路】就可以为API端点设置降级规则,如下图所示:以上设置表示,端点/testA的请求响应时间≥1ms且在5秒的时间窗口内通过的请求数≥5次,则触发降级、断路器打开。设置完毕,再清空前面添加的所有流控规则以避免干扰测试,然后访问/share/1端点:http://localhost:8401/testA快速刷新多次,会发现它触发了降级,效果如下所示..原创 2021-03-08 15:03:15 · 1426 阅读 · 0 评论 -
sentinel 流控规则详解
Sentinel的主要工作之一就是流量控制,因此对流控规则的掌握是必不可少的。SENTINEL名词解释资源名:唯一名称,默认请求路径(如:http://localhost:8089/testA) 针对来源:Sentinel可以针对调用者进行限流,填写微服务名,指定对哪个微服务进行限流 ,默认default(不区分来源,全部限制) 阈值类型/单机阈值: 1、QPS(每秒钟的请求数量):当调用该接口的QPS达到了阈值的时候,进行限流; 2、线程数:当调用该接口的线程数达到阈值时,进行限流 是否原创 2021-03-08 10:26:45 · 2733 阅读 · 3 评论 -
Sentinel应用入门之项目演示
一,启动nacos二,创建工程三,pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http...原创 2021-03-05 15:38:35 · 190 阅读 · 0 评论 -
Sentinel基本使用(一)
下载https://github.com/alibaba/Sentinel/releases下载dashboard项文档地址https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#spring_cloud_alibaba_sentinel使用问题启动命令 java -jar sentinel-dashboard-1.8.1.jar...原创 2021-03-05 13:41:26 · 604 阅读 · 0 评论 -
sentinel 基本概念及与Hystrix的区别
开始需要对吞吐量(TPS)、QPS、并发数、响应时间(RT)几个概念做下了解,查自百度百科,记录如下:响应时间(RT) 响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大.原创 2021-03-04 16:37:34 · 1612 阅读 · 1 评论 -
OpenFeign的日志打印功能
OpenFeign的日志级别有:NONE: 默认的,不显示任何日志BASIC: 仅记录请求方法、URL、响应状态码以及执行时间HEADERS:除了BASIC 中自定义的信息外,还有请求和响应的信息头FULL: 除了HEADERS中定义的信息外, 还有请求和响应的正文以及元数据。下面咱们来进行日志功能配置:1、先构建日志配置类import feign.Logger;import org.springframework.context.annotation.Bean;imp.原创 2021-02-09 09:51:36 · 290 阅读 · 0 评论 -
OpenFign-超时处理
OpenFign-超时实现OpenFign调用超时实现步骤:1.provider timeout处理 改controller2.Consumer timeout处理 改service 和controller3.改application.yml配置OpenFign调用超时实现步骤:1.provider timeout处理 改controller @RestController @Slf4j public class PaymentCo...原创 2021-02-09 09:41:37 · 588 阅读 · 0 评论 -
Springboot+Netty+Websocket实现消息推送实例
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。Netty框架的优势1. API使用简单,开发门槛低;2. 功能强大,预置了多种编解码功能,支持多种主流协议;3. 定制能力强,可以通过ChannelHandler对通信框架进行灵活地扩展;4. 性能高,通过与其他业界主流的NIO框架对比,Netty的综合性能最优;...原创 2021-01-10 11:14:44 · 1712 阅读 · 1 评论 -
RestTemplate开启客户端负载均衡
开启负载均衡很简单,只需要在RestTemplate的bean上再添加一个@LoadBalanced注解即可,我们就从这个注解开始分析。首先我们来看看@LoadBalanced注解的源码:/** * Annotation to mark a RestTemplate bean to be configured to use a LoadBalancerClient * @author Spencer Gibb */@Target({ ElementType.FIELD, ElementTy原创 2021-01-09 22:02:34 · 1160 阅读 · 0 评论 -
RestTemplate中几种常见请求方法的使用
本文主要从以下四个方面来看RestTemplate的使用: GET请求 POST请求 PUT请求 DELETE请求 GET请求在RestTemplate中,发送一个GET请求,我们可以通过如下两种方式:第一种:getForEntitygetForEntity方法的返回值是一个ResponseEntity<T>,ResponseEntity<T>是Spring对HTTP请求响应的封装,包括了几个重要的元素,如响应码、content..原创 2021-01-09 21:45:55 · 940 阅读 · 0 评论 -
spring全家桶之 Spring Boot,Spring Cloud,Spring Cloud Alibaba 版本选择说明以及整理归纳
Spring Boot,Spring Cloud,Spring Cloud Alibaba 版本选择说明以及整理归纳前言本文的核心目的: 1.帮助搭建微服务不知道如何选择框架版本的朋友以帮助,不用对网上项目版本进行照抄。Spring Boot 版本 版本查询:https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies如何选择版本: 如果说你的项目只...原创 2020-12-02 14:10:32 · 1304 阅读 · 0 评论 -
构建分布式配置中心阿波罗
如何判断文件是否发生改变 如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同。比较常用的文件hash算法有MD5和SHA-1。构建分布式配置中心阿波罗为什么要使用配置文件中心?为什么要使用分布式配置中心?统一管理微服务配置文件,可以实现动态化刷新配置文件。阿波罗 SpringCloudConfig为什么我们要使用阿波罗 不使用SpringCloudConfig...原创 2020-07-28 19:14:14 · 103 阅读 · 0 评论 -
前端页面请求的跨域问题
跨域:浏览器对于javascript的同源策略的限制 。以下情况都属于跨域:跨域原因说明 示例 域名不同 www.jd.com 与 www.taobao.com 域名相同,端口不同 www.jd.com:8080 与 www.jd.com:8081 二级域名不同 item.jd.com 与 miaosha.jd.com 如果域名和端口都相同,但是请求路径不同,不属于跨域,如:www.jd.com/itemwww.jd.com/goods从ma.原创 2020-07-26 14:29:01 · 1388 阅读 · 0 评论 -
互联网行业常用的一些术语
一些专业术语 SaaS:软件即服务 SOA:面向服务 RPC:远程过程调用 RMI:远程方法调用 PV:(page view),即页面浏览量; 用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计 UV:(unique visitor),独立访客 指访问某个站点或点击某条新闻的不同IP地址的人数。在同一天内,uv只记录第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数。 PV与带宽:原创 2020-07-24 08:39:51 · 641 阅读 · 0 评论 -
系统整理springCloud系列(十三)nacos集群搭建
前面介绍了单机nacos 不适合生产介绍一下nacos集群搭建过程内容主要包括:使用MySQL作为存储持久化数据,以及如何搭建Nacos集群。Nacos的单节点,也就是我们最开始使用的standalone模式,配置的数据是默认存储到内嵌的数据库derby中。如果我们要搭建集群的话,那么肯定是不能用内嵌的数据库,不然数据无法共享。集群搭建的时候我们需要将Nacos对接Mysql进行数据存储。集群模式跟我们平时进行扩容是一样的,可以通过Nginx转发到多个节点,最前面挂一个域名即可官..原创 2020-07-16 15:33:59 · 1864 阅读 · 0 评论 -
系统整理springCloud系列(十二)nacos配置中心
使用Nacos作为配置中心(相当于Spring Cloud Config + Bus)应用实例pom<!--nacos-config--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId...原创 2020-07-16 11:14:04 · 292 阅读 · 0 评论 -
系统整理springCloud系列(十一)springcloud alibaba 简介及注册中心nacos安装及应用
官网https://spring.io/projects/spring-cloud-alibaba 起初spring cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装。然而Netflix的服务发现组件Eureka已经停止更新,;而其他的众多组件也停止维护。需其他的一些替代产品,也就是spring cloud alibaba,目前正处于蓬勃发展的态式。Spring Cloud Alibaba为分布式应用程序开发提供了一站式解决方案。它包含开发分布式应用程序.原创 2020-07-15 09:14:51 · 379 阅读 · 0 评论 -
系统springCloud系列(四)客户端调用服务端服务
一,加入配置文件,同服务端配置文件server: port: 80spring: application: name: cloud-order-service zipkin: base-url: http://localhost:9411 sleuth: sampler: probability: 1eureka: instance: hostname:localhost client: register-...原创 2020-07-08 10:40:15 · 784 阅读 · 0 评论 -
hystrix 与高可用系统架构深入分析(二)
商品服务接口故障导致的高并发访问耗尽缓存服务资源的场景分析本章讲解一下最基本的商品服务接口调用故障,导致缓存服务资源耗尽的场景这里总结下上图的信息: 我们的缓存架构大体上上面这样,缓存架构简介 nginx 本地缓存,过期之后去请求 redis 缓存 redis 哨兵集群,高可用,大数据量,高并发 nginx 在 redis 获取不到的时候,就去缓存服务获取 缓存服务会在本地缓存中获取,如果获取不到则去商品服务获取,并返回 nginx原创 2020-07-07 09:05:29 · 281 阅读 · 0 评论 -
hystrix 与高可用系统架构深入分析(一)
一,在框架的使用上,个人觉得应该是在场景上才能理解的,比如为什么手游「赤潮」中进入游戏时加载界面, 显示的头像偶尔是不正确的,这种是不是就是使用了降级机制呢? :::在各种高并发导致的令人崩溃的异常场景下,还能运行接下来会花大部分章节讲解怎么保证高可用性:在各种系统的各个地方有乱七八糟的异常和故障的情况下,整套缓存系统还能继续健康的 运行 着网上会有一些将高可用的知识:HA、HAProxy 组件,主备服务间的切换,这就做到了高可用性, 主备实例,多冗余实例只是高可用最最基础的东西接下来会讲解原创 2020-07-07 08:44:49 · 440 阅读 · 0 评论 -
互联网API接口幂等设计介绍
互联网API接口幂等设计MVCC方案 多版本并发控制,该策略主要使用 update with condition(更新带条件来防止)来保证多次外部请求调用对系统的影响是一致的。在系统设计的过程中,合理的使用乐观锁,通过 version 或者 updateTime(timestamp)等其他条件,来做乐观锁的判断条件,这样保证更新操作即使在并发的情况下,也不会有太大的问题。例如select * from tablename where condition=#condition# // 取...原创 2020-07-06 10:48:18 · 665 阅读 · 0 评论 -
常见Web安全漏洞及防御
常见Web安全漏洞XSS攻击什么是XSS攻击手段XSS攻击使用Javascript脚本注入进行攻击例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端。<script>alert('sss')</script><script>window.location.href='http://www.baidu.com';</script>对应html源代码:<script&g..原创 2020-07-06 10:29:56 · 2617 阅读 · 0 评论 -
springCloud alibaba nacos openFeign 服务之间调用(二)
上一篇文章介绍了order-service 调用 user-service@Autowiredprivate RestTemplate restTemplate;@Bean//负载均衡@LoadBalancedpublic RestTemplate getRestTemplate(){return newRestTemplate();}...原创 2020-07-01 10:10:18 · 1146 阅读 · 0 评论 -
springCloud alibaba nacos 服务注册中心应用
一,启动nacos服务中心(nacos注册中心安装启动),新建父项目mall-parent,1,加入依赖,pom 文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/m原创 2020-07-01 09:46:15 · 128 阅读 · 0 评论 -
Feign调用报错could not be registered. overriding is disabled的解决办法
问题描述:Description:The bean 'XXXX.FeignClientSpecification' could not be registered. A bean with that name has already been defined and overriding is disabled.Action:XXXXXXConsider renaming one of the beans or enabling overriding by setting spr...原创 2020-06-28 10:39:26 · 2796 阅读 · 1 评论 -
elastic产品各个版本下载地址
https://www.elastic.co/cn/downloads/past-releases各个版本下载地址原创 2020-06-05 10:18:03 · 852 阅读 · 0 评论 -
springcloud alibaba, springboot springcloud , 版本之间依赖关系
组件版本关系Spring Cloud Alibaba Version Sentinel Version Nacos Version RocketMQ Version Dubbo Version Seata Version 2.2.1.RELEASE or 2.1.1.RELEASE or 2.0.2.RELEASE 1.7.1 1.2.1 4.4.0 2.7.6原创 2020-06-03 08:23:16 · 2526 阅读 · 1 评论