分布式
文章平均质量分 62
各种分布式解决方案
_夜半钟声到客船
永远保持对技术的热情
展开
-
学习提高:Mac Pro下安装MongoDB,MongoDB远程连接并执行命令
学习提高:Mac Pro下安装MongoDB,MongoDB远程连接并执行命令原创 2022-08-03 09:22:09 · 791 阅读 · 0 评论 -
生产稳定:SpringBoot 2.3.12.RELEASE版本快速升级log4j2低版本,解决漏洞升级2.17.0版本,修改pom解决
SpringBoot 2.3.12.RELEASE版本升级log4j2低版本,解决漏洞升级到2.17.0原创 2021-12-14 19:54:58 · 2679 阅读 · 0 评论 -
微服务注册中心,服务手动剔除,Eureka、Nacos
日常工作中,排查问题时通常需要将注册中心的服务手动剔除掉,将请求不在路由到某个服务。Eureka:通过Postman发起Delete请求http://eureka注册中心地址/eureka/apps/服务名/实例IP:实例端口Nacos通过Postman发起Delete请求http://nacos注册中心地址/nacos/v1/ns/instance?serviceName=服务名&ip=实例IP&port=实例端口-------------欢迎各位留言交流,如有不正确的原创 2021-11-02 11:04:15 · 728 阅读 · 0 评论 -
【面试】幂等性问题的思考和总结,防重、幂等,常用解决方案,解决方式
1、幂等性幂等性:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。幂等性接口:是指可以使用相同参数重复执行,并能获得相同结果的接口。数学中:在一次元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同;在二次元运算为幂等时,自己重复运算的结果等于它自己的元素。计算机学中:幂等指多次操作产生的影响只会跟一次执行的结果相同,通俗的说:某个行为重复的执行,最终获取的结果是相同的,不会因为重复执行对系统造成变化。防重和幂等的区别:防重设计主要为了避免产生重复数据原创 2021-11-02 09:22:37 · 6631 阅读 · 0 评论 -
微服务环境下设计多级缓存架构
微服务架构中的多级缓存设计缓存,是每位软件开发人员都很熟悉的技术,它是目前架构设计中提高性能最便捷的方式。下面的这个例子:假设应用程序将原始数据存储在MySQL数据库中。众所周知MySQL数据库会将数据存储在硬盘以防掉电数据丢失,但是受限于硬盘的物理设计,即使是目前性能最好的SSD硬盘,也跟内存这种高速IO设备差一个数量级。目前大多数的应用软件都以“度多写少”场景为主。因此我们需要在设计上进行数据的读写分离,在数据写入时直接落盘处理。而占比90%的数据读取操作时则以Redis为代原创 2021-10-29 09:21:04 · 428 阅读 · 0 评论 -
知识积累:Elasticsearch7.6.2 支持英文字符大小写的分词和搜索做法
最近项目当中有个需求需要大小写敏感,而Elasticsearch默认是通过小写处理的。所以需要通过设置自定义索引的分析器来处理。以下是操作步骤,前提是已经配置安装号ELasticsearch 和 Kibana;1、配置索引# 支持大小写 搜索PUT /heizi{ "settings": { "analysis": { "analyzer": { "my_custom_analyzer":{ "tokenizer":"keyword",原创 2021-08-02 09:56:57 · 1034 阅读 · 0 评论 -
【SpringCloud 微服务】服务治理
1、注册中心为什么需要服务治理?随着单体应用向分布式微服务架构的迁移,面向不同业务域的微服务越来越多,微服务集群的规模增长迅速。之前只需要对单体应用进行监控管理的情况,现在则要面对的是几十甚至上百个微服务的监控管理。服务化的特点及优势根据业务范围拆分成多个服务 各个服务独立运维部署 服务间可通信(Rest、RPC、MQ)服务化的优势架构上系统更加清晰 核心模块稳定,以服务组件为单位进行升级,避免了频繁发布带来的风险 开发管理方便 单独团队维护、工作分明...原创 2021-06-03 16:07:39 · 729 阅读 · 3 评论 -
MySQL 多线程并发更新同一行,通过主键id更新,死锁问题以及解决
最近项目中用到Job+多线程并发执行更新同一行数据,通过主键id更新的场景,但是任务一执行就出现dead lock异常,经过分析和排查,发现多线程并发读取同一行数据获取共享锁(Shard Lo)原创 2021-06-01 10:58:50 · 6437 阅读 · 0 评论 -
【SpringCloud 微服务】什么是Spring Cloud,什么是微服务
Spring Cloud什么是 Spring Cloud? Spring Cloud为开发人员提供了工具,可快速构建分布式系统,是基于Spring Boot的Spring集成应用程序,简化了分布式微服务系统基础设施的开发。通过Spring Boot风格进行封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。和Spring Boot的关系 Spring Boot可以离开Spring原创 2021-05-26 11:03:25 · 391 阅读 · 2 评论 -
RabbitMQ读书小记
第2章:使用AMQ协议与Rabbit进行交互 使用AMQ协议与RabbitMQ通信 AMQ协议的底层帧结构 向RabbitMQ发布消息 向RabbitMQ消费消息 2.1 AMQP作为一种RPC机制下图演示连接协议过程:要连接到RabbitMQ需要完成三个同步RPC请求序列,这三个RPC请求分别对应启动、调整、和打开连接操作。在AMQP中,信道使用协商的AMQP连接作为相互传输信息的渠道,而且他们将传输过程与其他正在进行中的会话隔离开来。一个AM原创 2020-10-23 16:17:32 · 296 阅读 · 1 评论 -
整合spring-cloud-alibaba、dubbo和nacos注册中心微服务
此环境需要nacos本地单机模式启动:本地构建nacos 启动此环境包含的模块:dubbo接口定义 服务生产者ServiceA 服务消费者ServiceB1.dubbo接口定义package com.fu;public interface ServiceA { String greet(String name);}2.服务生产者ServiceApom配置:<?xml version="1.0" encoding="UTF-8"?><p原创 2020-09-01 11:28:51 · 599 阅读 · 1 评论 -
SpringCloud集成seata实现分布式事务管理,apollo配置中心,eureka注册中心
SpringCloud集成seata实现分布式事务管理,apollo配置中心,eureka注册中心原创 2020-08-14 15:04:27 · 764 阅读 · 0 评论 -
spring事务失效- 某个业务调用未提交 另一业务方法查询问题以及常见场景
最近项目中遇到一个问题。就是我们的业务订单申请退款的场景。由于申请退款需要先更新订单的状态为退款中;然后发起了第三方支付平台的退款请求,第三方回调回来的时候,前一步的更新订单为退款中未完成事务。导致了退款回调处理失败。先发下之前的存在问题的调用关系图:修改后的关系图:产生上面的问题原因,我们经过分析后,是在订单服务的订单更新方法添加了spring事务注解@Transactional;在这个方法内先更新订单,然后发起第三方调用;最后方法结束,事务完成。基于上面的分析,我们定的修改方.原创 2020-07-09 11:44:06 · 1496 阅读 · 0 评论 -
zookeeper使用和原理探究【转】
第一部分:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系转载 2014-11-27 11:21:54 · 1263 阅读 · 0 评论 -
Zookeeper的选主机制,分布式集群协调
ZooKeeper是什么?ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.翻译为:ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务。配置管理现在很多的应用都需要获取配置信息,通常都是由统一集群管理和维护原创 2020-06-16 10:09:45 · 479 阅读 · 0 评论 -
Alibaba nacos 本地构建以及源码研究
首先通过github pull源码到本地,git clone https://github.com/alibaba/nacos.git但是启动会报错:分析报错原因,根据报错的提示可以看到ServerMemberManager类;直接点进去看ServerMemberManager的源码;下面是跟踪步骤:1. init();3. // Initializes the lookup mode initAndStartLookup(); 3.this.lookup = LookupFact原创 2020-06-05 16:11:04 · 2194 阅读 · 6 评论