- 博客(20)
- 收藏
- 关注
原创 idea提示 Unnecessary ‘Arrays.asList()‘ call
摸鱼看到idea代码泛黄 鼠标放上去看到提示 为什么? 于是就开始百度 终于明白 Arrays.asList将数组转换成list,但是转换的list只能用来遍历,没有清空删除等方法。 那我用来遍历为什么给我提示Unnecessary ‘Arrays.asList()’ call ? 因为数组也可以直接for循环,asList就是多此一举。 @Test public void test(){ int[] str = {1,2,3,4,5,6,7,8,9}; fo
2021-09-16 12:03:35
2150
1
原创 redisson实现分布式锁
redisson分布式锁解决的问题 1.多个服务之间同一时间只能有一个服务执行业务方法 2.锁与线程的通讯,例如执行业务的时间比锁设置的失效时间还要长,redis就要判断是否需要延长锁失效时间 导入jar 这里使用maven导入 <!-- 引入redisson--> <dependency> <groupId>org.redisson</groupId> <artifactId
2021-08-31 11:37:17
843
原创 使用ShardingSphere实现分库分表
基本概念 什么是Sharding Shpere 官网地址:http://shardingsphere.apache.org/index_zh.html 目前它由两个互相独立,却又能混合部署配合使用的产品:Sharding-JDBC 和 Sharding-Proxy,它提供了标准化的数据分片,分布式事务和数据库治理功能,可适用于如java同构,异构语言,云原生等各种多样化的应用场景。 什么是分库分表 1.数据库数据量是不可控的,随着时间和业务的发展,造成表里面的数据会越来越多,如果再去对数据库表curd操作的
2021-07-27 18:06:07
627
原创 rabbitMQ 消息队列
为什么要用MQ MQ有以下几个功能 1.流量消峰 ··对流量进行限制,比如系统最多能容纳一万访问,但是到了促销时间,突然来了两万订单系统当然处理不了。但是可以使用消息队列做缓冲,把一秒钟的访问分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单操作。 2.应用解耦 ··如果一个消费系统直接调用订单系统,库存系统,会员系统数据库,当其中有一个系统报错整个操作就会中断。如果使用消息队列,消费系统就先调用消息队列,订单系统,库存系统,会员系统的调用操作就由消息队列进行完成,当其中一个系统调用失败,消息
2021-07-14 18:32:48
321
原创 Spring Cloud Alibaba Seata处理分布式事务
引 单体应用被拆分成微服务应用,原来三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成,此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证。 Seata简介 seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务 分布式事务处理过程的一ID+三组件模型 star----Transacion ID 全局唯一事务ID,相当于100个人一个班,班级名称就是他们的全局唯一事务id。 三组件模型 end---
2021-07-02 14:07:49
169
原创 SpringCloud Alibaba Sentinel实现熔断与断流
是什么 面向云原生微服务的流量控制,熔断降级组件 与Hystrix的区别 Hystrix 1.需要程序员自己手动搭建监控平台 2.没有一套web界面可以给我们进行更加细粒度化的配置流控,速率控制,服务熔断,服务降级。。。 Sentinel 1.单独一个组件可以独立出来 2.直接界面化的细粒度统一配置 流量控制规则简介 资源名:唯一名称 针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源) 阈值类型/单机阈值: ····QPS(每秒钟请求数量):当调用该api的Q
2021-06-26 17:43:25
215
原创 Spring Cloud Alibaba Nacos 服务注册和配置中心
是什么? 就是注册中心 + 配置中心的组合 等价于 Eureka+Config+Bus 能干嘛? 替代Eureka做服务注册中心 替代config做服务配置中心 下载地址 https://github.com/alibaba/Nacos 官网 https://nacos.io/zh-cn/ 运行 bin目录下的 .\startup.cmd 访问 localhost:8848/nacos u:nacos p:nacos ...
2021-06-23 18:54:29
130
原创 spring cloud Sleuth 链路跟踪
完整的调用链路的工作原理 表示一请求链路,一条链路通过Trace标识,Span标识发起的请求信息,各span通过parentId关联起来 简单来说就是 启动 下载zipkin: https://repo1.maven.org/maven2/io/zipkin/zipkin-server/ java -jar 下载好的jar包 打开浏览器 localhost:9411/zipkin/ 配置 pom <!-- sleuth+zipkin--> <dependen
2021-06-19 15:50:38
81
原创 SpringCloud Stream消息驱动
Stream解决了什么? 屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型 所以它是什么? SpringCloudStream是一个构建消息驱动微服务的框架。 应用程序通过input或者output来与SpringCloudStream中的binder对象交互。 通过我们配置来bingding,而SpringCloudStream的binder对象负责与消息中间件交互 所以,我们只需要搞清楚如何与SpringCloudStream交互就可以方便使用消息驱动的方式。 SpringCloudStrea
2021-06-18 17:31:31
74
原创 SpringCloud Bus消息总线
Bus支持两种消息代理:RabbMQ和Kafka SpringCloud Bus配合SpringCloud Config 实现配置的动态刷新 Bus能管理和传播分布式系统间的消息,就想一个分布式执行器,可用于广播状态的更改,事件推送等,也可以作为微服务的通信通道 什么是总线? 在微服务架构系统中,通常会使用轻量级的消息代理来构建一个共同的消息主题,并让系统中所有微服务都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称他为总线,在总线上的各个实例,都可以方便的广播一些需要让其他连接在该主题上的实
2021-06-17 17:55:42
124
原创 RabbitMQ启动失败 一>启动成功后访问失败解决
出错的原因是刚买到电脑第一次填写用户名的时候写了中文????,当我反应过来时候已经后悔莫及 所以电脑用户名不要太花里胡哨! 看的日志文件报错信息与这个博主有点相像: https://blog.csdn.net/weixin_43816739/article/details/90698254 但是直接set 环境变量没解决我的问题,于是我想继续找: https://www.jianshu.com/p/c12e2c996614 手动创建一个环境变量后启动成功了 但是还是不能访问15672,看日志也只有【wor
2021-06-17 15:33:53
174
原创 Spring Cloud Config分布式配置中心
分布式系统面临的配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中的,动态的配置管理设施是必不可少的。 SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。 实现 1.将主要配置文件上传到git 2.创建spring cloud config 服务端 2.1pom <depende
2021-06-16 17:37:03
49
原创 springcloud 服务网关 gateway
为什么要选择gateway 和 zuul有什么不同 Zuul 1.X是基于servlet之上的一个阻塞式处理模型,即spring实现了处理所有request请求的一个servlet(DispatcherServlet)并由该servlet阻塞式处理,所以SpringCloud Zuul 无法摆脱servlet模型的弊端。 gateway Spring WebFlux是Spring 5.0引入的新的响应式框架,区别于Spring MVC它不需要依赖ServletAPI,它是完全异步非阻塞的,并且基于React
2021-06-15 17:10:46
172
原创 springCloud入门使用Hystrix
分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败 服务雪崩 多个微服务时间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他微服务,这就是所谓的扇出,如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的雪崩效应。 对于高流浪的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟
2021-06-14 17:42:38
131
原创 openFeign
如何使用OpenFeign 1.pom <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> 2.定义接口 @Component @FeignClient(
2021-06-11 16:25:17
96
1
原创 RestTemplate使用
getForObject() postForObject() 返回对象为响应体中数据转化成的对象,基本上可以理解为json getForEntity()postForEntity() 返回对象为ResponesEntity对象,包含了响应中的一些重要信息,比如响应头,响应状态码,响应体等。 IRule:根据特定算法中从服务列表中选取一个要访问的服务 如何替换IRule算法 在@SpringBootApplication主键扫描以外的地方新建一个包编写以下代码 @Configuration public c
2021-06-11 14:52:03
98
原创 eureka,zookeeper,consul三个注册中心的同异点
首先要先认识CAP cap理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性,分区容错性这三个需求,因此根据CAP原理将NoSQL数据库分成了满足CA原则,满足CP原则和满足AP原则三大类: CA-单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。 CP-满足一致性,分区容忍性的系统,通常性能不是特别高。 AP-满足可用性,分区容错性的系统,通常可能对一致性要求低一些。 注意:CAP理论关注粒度是数据,而不是整体系统设计的策略 AP(Eureka) CP(Zookeeper/con
2021-06-10 16:10:37
100
1
原创 Zookeeper
安装Zookeeper https://blog.csdn.net/weixin_51311218/article/details/116800331
2021-06-10 14:17:24
57
原创 SpringCloud Eureka注册中心入门使用
为什么要使用注册中心? 使用springCloud微服务框架是需要进行服务拆分,降低服务功能之间的耦合性。一个服务往往需要进行集群负载均衡的动作,这时候Eureka可以对服务进行注册管理,不管这个服务有多少集群,程序员不需要关注每一个的ip地址以及端口,只需要关注在Eureka中注册的服务名即可。 Eureka入门步骤 1.创建Eureka模块 1.1建model 在project下创建一个maven模块 1.2改pom 引入Eureka所需要的pom标签 <dependencies&g
2021-06-08 17:37:23
207
原创 oim-server-web打包测试环境不起作用问题 vue+typeScript
本人对前端只有个略懂 当我使用npm run test测试 alert(process.env.NODE_ENV) 结果是正常能返回出 当我使用npm run build --test打包部署服务器后 返回的结果是 2021 04 25 暂时未找到解决方法 所以先冒着被同事孤立的风险用以下解决方法 修改前 class Config { private dev: string = 'http://127.0.0.1:10000'; private test: string = 'htt
2021-04-25 15:58:34
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人