![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 86
困知勉行1985
学而时习之,不亦说乎
展开
-
Redis并发问题解决方案
Redis并发问题解决方案,分布式锁,原子操作,事务,虽然能解决并发问题,但是后2者不能完全保证数据一致性,因为都没有失败回滚原创 2023-11-23 11:30:33 · 2162 阅读 · 0 评论 -
Redis cache-aside模型-分布式锁等问题研究
缓存穿透,缓存击穿,雪崩,预热等情况,都是Redis缓存里没有对应数据的情况,这种时候如果发生大并发怎么办?这就需要并发排他原创 2022-09-02 17:45:31 · 832 阅读 · 1 评论 -
RabbitMQ的死信队列详解
RabbitMQ的死信队列详解,全面了解 RabbitMQ的功能转载 2022-07-14 11:09:58 · 3879 阅读 · 0 评论 -
关于java web系统设计的一些点的思考总结
1.怎样提高数据库的读写能力?以Mysql,MongoDB为例,思想还是分流提高读能力:主从复制,读写分离。集群中所有数据库数据是相同的,读请求被分流到集群中的任何一个数据库,这样自然增加了读能力。但是增加从数据库并不能增加写能力,反而在一定程度上降低了主数据的写能力,因为写操作都是在主数据库中进行的,每增加一个从数据库,从数据库要从主数据库同步数据,这样会占用主数据IO,从而降低主数据库写IO操作性能。 提高写能力:主从集群不能提高写能力,那么可以通过分片集群的方式分流写操作,从而同时提高写能力原创 2022-05-14 09:11:03 · 365 阅读 · 0 评论 -
SEATA整合sharding-jdbc
本文使用的初始源代码来自于:seata-samples/springcloud-seata-sharding-jdbc-mybatis-plus-samples at master · seata/seata-samples · GitHub但是在运行上面代码过程中,发现老是运行失败,出现各种各样的错误,最后发现是因为配置的原因,初始代码中给的配置信息不全,这里给出完整的配置信息1.seata-order- sample模块(1). application.properties#订单微服务原创 2022-05-06 22:55:20 · 2288 阅读 · 3 评论 -
Kafka生产与消费--简单示例
下面用java给出一个kafka生产与消费的简单示例:运行环境:java:java version "1.8.0_291"kafka:<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11</artifactId> <version>2.1.0</version></dependency&原创 2022-05-03 07:29:23 · 2902 阅读 · 0 评论 -
Kafka生产者原理与优化
Kafka生产者生产消息,基本上包括下面几个部分:线程:多个线程可以操作同一个kafkaProducer去生产消息,并且可以给多个不同的topic生产消息 kafkaProducer: kafka消息生产者,具体对应kafka的一个java类,里面包含了partitioner分区器(根据具体消息的key去选择发送到哪个分区,如果没有key则轮询选择分区);accumulator累加器(针对缓冲区进行操作,缓存产生的消息,缓冲区大小可以根据业务调优-优化),还有双向队列dq用来缓存消息(缓冲区中),dq原创 2022-04-14 13:14:11 · 2665 阅读 · 0 评论 -
华为云k8s环境部署应用--服务发现与负载均衡专题
上一篇文章:华为云k8s环境部署应用_wdquan19851029的专栏-CSDN博客1.K8s环境(CCE)服务发现。本文专门研究在华为云k8s(CCE)环境下,微服务调用RPC是怎样实现服务发现和负载均衡的。关键就在于k8s集群中的服务发现 service (Pod, service, controller.....)举例说明:我们在代码中是怎样调用微服务的呢?我们使用RestTemplate调用微服务, restTemplate访问的地址是 “String url = sc原创 2022-03-14 11:40:28 · 992 阅读 · 0 评论 -
centos7安装Mongodb-4.0
1.下载 官方下载地址:https://www.mongodb.com/download-center/community2.上传解压(1)rz命令上传(2)解压安装解压:tar -zxvf mongodb-linux-x86_64-4.0.6.tgz移动:mv ./mongodb-linux-x86_64-4.0.6 /usr/local/mongodb 3.配置conf与目录(1).进入mongodb目录cd /usr/local/mongodb/(转载 2022-03-07 17:03:14 · 837 阅读 · 0 评论 -
centos7 安装Redis
一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装[root@localhost local]# yum install -y gcc二、下载并解压安装包[root@localhost local]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz[root@localhost local]# tar -zxvf re..转载 2022-03-07 16:00:08 · 113 阅读 · 0 评论 -
对于分布式事务的理解
一个请求需要执行多个操作,其中有数据库操作,也有远程的微服务操作,这种情况下光靠本地数据库的事务,是无法保证数据的一致性的,这时候该怎么办呢?原创 2022-02-28 07:55:51 · 356 阅读 · 0 评论 -
SpringCloud启动失败汇总
1.Nacos配置读取失败org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1 at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:218) ~[snakeyaml-1.27.jar!/:na] at org.yaml.snakeyaml.re原创 2022-02-24 15:54:24 · 1612 阅读 · 0 评论 -
springboot bootstrap.yml nacos配置中心
一.本地Nacos安装环境: Win7 ,JDK8 ,maven3.51.下载安装包2.启动nacos服务,bin文件下下面startup.cmd3.访问 http://localhost:8848/nacos二.整合SpringbootSpringboot版本如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp...翻译 2022-02-16 17:51:15 · 12988 阅读 · 0 评论 -
centos7 安装seata + springboot配置
实际上只是部署一个单例的Seata,但是仍然按照集群的方式去配置。Seata的高可用依赖于注册中心、配置中心和数据库来实现;因此我们需要修改相关的配置。下面我们以nacos(注册中心和配置中心)和MySQL为例子,Seata-Server使用注册中心进行集群间的通信,同时将事务数据保存到数据库中让整个集群统一使用事务信息。关于nacos安装,请参考:centos7 部署nacos_wdquan19851029的专栏-CSDN博客1.安装mysql数据库本文使用yum安装首先添加mysql 的原创 2022-01-28 11:30:54 · 4753 阅读 · 0 评论 -
centos7 部署nacos
1.安装JDKjdk压缩包解压(自己去下载):tar zxvf jdk1.8.0_181.tar配置环境变量:修改/etc/profile文件,在文件最后加上:export JAVA_HOME=/usr/local/jdk1.8.0_181export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar使配置生效:source /etc.原创 2022-01-27 14:09:55 · 6515 阅读 · 1 评论 -
centos7 安装使用SkyWalking
1.搭建ES在本文中,我们需要将skywalking采集到的数据导入到ES中,所以需要首先安装ES,我们用的是ES集群。ES集群搭建文档:华为云contos7系统部署ES集群--3个主节点_wdquan19851029的专栏-CSDN博客ES单机搭建文档 :centos7安装ELK-单机版_wdquan19851029的专栏-CSDN博客2.搭建Skywalking有了ES之后,我们开始搭建Skywalking。1.解压skywalking压缩包tar zxvfapac..原创 2022-01-27 10:28:56 · 4716 阅读 · 0 评论 -
centos7安装ELK-单机版
前言:首先要有一个全面的认识,什么是ELK?Elastic Stack也就是ELK,ELK是三款软件的集合,分别是Elasticsearch,logstas,Kibana,在发展过程中,有了新的成员Beats加入,所以就形成了Elastic Starck.也是就是说ELK是旧的称呼,Elastic Stack是新的名字。先通过Beats采集一切的数据如日志文件,网络流量,Win事件日志,服务指标,健康检查等,然后把数据发送给elasticsearch保存起来,也可以发送给logstas处理然后再原创 2022-01-26 16:26:26 · 21775 阅读 · 0 评论 -
华为云contos7系统部署ES集群--3个主节点
一、集群部署1.ES集群的基本核心概念Cluster集群 一个ElasticSearch集群由一个或多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识。Node节点 一个ElasticSearch实例即一个Node,一台机器可以有多个实例,正常使用下每个实例应该会部署在不同机器上。ElasticSearch的配置文件中可以通过node.master、node.data来设置节点类型。node.master:表示节点是否具有成为主节点的资格true代表的是有资格竞选主节点原创 2022-01-20 11:45:35 · 5176 阅读 · 0 评论 -
谈谈服务雪崩、降级与熔断
引言首先,之所以谈这个话题呢,是发现现在很多人对微服务的设计缺乏认识,所以写一篇扫盲文。当然,考虑到目前大多微服务的文章都是口水文,烟哥争取将实现方式讲透,点清楚,让大家有所收获!OK,我要先说明一下,我有很长一段时间将服务降级和服务熔断混在一起,认为是一回事!为什么我会有这样的误解呢?针对下面的情形,如图所示:当 Service A调用 Service B,失败多次达到一定阀值, Service A不会再去调 Service B,而会去执行本地的降级方法!对于这么一套机制:在Spri.转载 2021-11-01 10:27:05 · 382 阅读 · 0 评论 -
微服务拆分
前言:微服务在最近几年大受欢迎,很多公司的研发人员都在考虑微服务架构,同时,随着 Docker 容器技术和自动化运维等相关技术发展,微服务变得更容易管理,这给了微服务架构良好的发展机会。在做微服务的路上,拆分服务是个很热的话题。我们应该按照什么原则将现有的业务进行拆分?是否拆分得越细就越好?接下来一起谈谈服务拆分的策略和坚持的原则。在介绍如何拆分之前,我们需要了解下拆分的目的是什么,这样才不会在后续的拆分过程中忘了最初的目的。拆分的本质是为了将复杂的问题简单化,那么我们在单体架构阶段遇到了哪些复转载 2021-10-08 16:35:25 · 160 阅读 · 0 评论 -
什么是消息中间件?主要作用是什么?
在了解中间件之前,我们先了解一下什么是同步?首先我们想一下,两个公司之间如果有互相调用接口的业务需求,如果没有引入中间件技术,是怎么实现的呢?那么引入中间件后,是如何做到异步调用的呢?用户发起请求给系统A,系统A接到请求直接调用系统B,系统B返回结果后,系统A才能返回结果给用户,这种模式就是同步调用。所谓同步调用就是各个系统之间互相依赖,一个系统发送请求,其他系统也会跟着依次进行处理,只有所有系统处理完成后对于用户来讲才算完成了一次请求。只要其他系统出现故障,就会报错给用户。.转载 2021-09-14 10:34:12 · 1885 阅读 · 0 评论 -
Springboot低级错误集锦
1. application.properties文件中的注释springboot配置文件中注释如果加的地方不对,可能造成意想不到的错误,而且极其不易排查例如配置springcloud gateway的路由转发:#配置路由规则#第1种配置方法zuul.routes.api-wkcto.path=/api-wkcto/** # 一个*只能匹配单层路径,**可以匹配多层路径#路径匹配之后,请求将会被转发到服务05-springcloud-service-feign上。zuul.rout原创 2021-08-25 22:54:34 · 106 阅读 · 0 评论 -
分布式顶层架构设计之--究竟啥才是互联网架构“高并发”
一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。吞吐量:单位时间内处理的请求数量。QPS:每转载 2021-06-25 10:11:44 · 184 阅读 · 0 评论 -
分布式顶层架构设计之--究竟啥才是互联网架构“高可用”
一、什么是高可用高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。百度的搜索首页,是业内公认高可用保障非常出色的系统,甚至人们会通过www.baidu.com .转载 2021-06-25 10:04:02 · 327 阅读 · 0 评论 -
spring cloud(四) Eureka配置Httpbasic验证+Eureka配置详解
一、 为EurekaServer配置Httpbasic验证为了保证服务的安全性,我们为EurekaServer配置Httpbasic验证,只有知道username和password的服务示例才能注册到EurekaServer。那接下来我们修改一下eureka_server项目,配置httpbasic验证,然后为product_server和consume_server配置eureka_server的username和password。...转载 2021-05-20 11:41:10 · 1393 阅读 · 0 评论 -
spring cloud(三)Eureka高可用性+Feign声明式Rest客户端
目录spring cloud(一) 从一个简单的springboot服务开始 spring cloud(二) 起步,集成Eureka服务发现 spring cloud(三)Eureka高可用性+Feign声明式Rest客户端 spring cloud(四) Eureka配置Httpbasic验证+Eureka配置详解 未完待续一、 配置Eureka高可用性介绍Eureka服务器没有后端存储,但是注册表中的服务实例必须发送心跳包以保持注册更新,因此可以在内存中完成。Eureka客户端还具有服转载 2021-05-20 11:32:41 · 848 阅读 · 0 评论 -
spring cloud(二) 起步,集成Eureka服务发现
目录spring cloud(一) 从一个简单的springboot服务开始 spring cloud(二) 起步,集成Eureka服务发现 spring cloud(三)Eureka高可用性+Feign声明式Rest客户端 spring cloud(四) Eureka配置Httpbasic验证+Eureka配置详解 未完待续 未完待续一、 Eureka介绍上一篇我们使用spring boot编写了两个简单的服务,并让consume_server通过硬编码的方式调用了product_se转载 2021-05-20 11:20:51 · 914 阅读 · 0 评论 -
spring cloud(一) 从一个简单的springboot服务开始
目录spring cloud(一) 从一个简单的springboot服务开始 spring cloud(二) 起步,集成Eureka服务发现 spring cloud(三)Eureka高可用性+Feign声明式Rest客户端 spring cloud(四) Eureka配置Httpbasic验证+Eureka配置详解 未完待续一、 为什么要使用微服务呢?它相比传统的单体应用有什么优缺点呢?从单体应用和微服务的区别开始说起吧。简单来说,传统的单体应用就是把项目所需的全部文件打包在一起,而微服转载 2021-05-20 11:13:45 · 904 阅读 · 0 评论 -
分布式事务Seata -- seata+springboot+jpa+dubbo+druid
目录1.重点还是seata-server的配置:1.1将seata-server注册到zk -- 服务注册1.2 zk做为配置中心 :导入seata-server配置1.3 seata-server的事务log存储相关配置:1.4 启动seata-server1.5 启动zk2.Seata client配置:3.代码解读:3.1 服务注册:4.执行结果:1.显示抛出异常,全局事务回滚:2.正常执行,完成全局事务提交:运行实例:https://github.原创 2021-05-17 17:23:55 · 1456 阅读 · 2 评论 -
分布式事务Seata -- Seata、Dubbo和Nacos来保证业务数据的一致性
运行seata 实例: https://github.com/seata/seata-samples/tree/master/nacos按照user guide的步骤,一步一步的完成Seata、Dubbo和Nacos 集成其中重点是seata server的配置与启动,下面是其基本配置:1.将seata-server注册到nacos的相关配置:修改registry.conf文件,选择nacos做为注册中心。registry { # file 、nacos 、eureka、redis原创 2021-05-14 23:13:56 · 1730 阅读 · 13 评论 -
seata异常:io.seata.common.exception.FrameworkException: No available service
运行seata 实例: https://github.com/seata/seata-samples/tree/master/nacos按照user guide中的account - storage -order的顺序启动,一切正常,nacos中可以看到有三个provider和一个comsumer,并且seata-server这个服务也注册进了nacos。但是在启动DubboBusinessTester 进行测试的时候,报以下错误:15:04:16,743 |-INFO in ch.qos原创 2021-05-13 15:24:03 · 27498 阅读 · 3 评论 -
分布式事务 Seata 及其三种模式详解 | Meetup#3 回顾
本片文章的主要目的是记录一下Seata的重要文章的地址,理清学习分布式事务的路径。Seata官网地址:http://seata.io/zh-cn/index.html作者:屹远(陈龙),蚂蚁金服分布式事务框架核心研发,Seata Committer。本文根据 8 月 11 日 SOFA Meetup#3 广州站 《分布式事务 Seata 及其三种模式详解》主题分享整理,着重分享分布式事务产生的背景、理论基础,以及 Seata 分布式事务的原理以及三种模式(AT、TCC、Saga)的分布式事务实现。转载 2021-05-06 14:10:56 · 596 阅读 · 0 评论 -
分布式事务JTA/XA atomikos -- 基于springboot的Dubbo + 动态数据源 + mybatis-plus
本文code地址:https://github.com/wdquan1985/dubbo-dynamicDatasource-jtaAtomikos原创 2021-01-05 11:45:39 · 2177 阅读 · 1 评论