![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 67
maybe宸
在有限的时光里,多做有意义的事。
展开
-
ignite分布式内存数据库在springboot中应用
ignite是一个分布式内存数据库,每一个ingite服务即一个节点。在ignite中不区分master、slave,节点间互相平等,支持横向扩展,只要有足够多的节点,支持PB级数据存储。数据支持内存、内存+原生持久化、内存+第三方DB持久化多种不同策略。作为缓存可用于关系型数据库的缓存层。缓存提供...原创 2021-03-26 16:28:39 · 2682 阅读 · 4 评论 -
Dubbo自定义扩展filter
DUBBO版本:2.7.0Dubbo的扩展点是带@SPI注解的,比如:@SPIpublic interface Filter { /** * do invoke filter. * <p> * <code> * // before filter * Result result = invoker.invoke(invocation); * // after filter * return .原创 2021-03-09 09:36:16 · 799 阅读 · 0 评论 -
spring cloud + feign 和 dubbo 两种框架下的无业务代码侵入的日志trace方案
新公司架构对外提供http接口服务,内部微服务间采用Dubbo进行通信。因为服务拆的非常散,HTTP到RPC服务之间的日志完全独立不利于排查问题。所以开发了一个小功能,trace日志追踪。正好之前也开发过spring cloud系的相同功能,来分别记录一下。通用内容:日志框架logback日志输出格式中加入traceId的输出 <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG.原创 2021-03-09 09:05:20 · 984 阅读 · 3 评论 -
redis为什么这么快?
一说到微服务缓存大家都想到使用redis来做,因为它快。支持10W+的qps。那它到底为什么这么快呢?今天来简单回顾一下。内存操作第一个肯定要说的是redis的内存操作,相对于关系型数据库的将数据存入磁盘。内存的操作速度就相当快。没有磁盘IO操作的耗时自然就快了。看过一个资料,CPU读取一次内存数据,大约需要100个时钟周期。这对于磁盘IO真的非常快了。redisObjectredis的对象及数据结构设计也是它快的很重要的原因。redis中并不是直接使用数据结构存储,而是通过r..原创 2020-06-09 14:34:50 · 587 阅读 · 0 评论 -
温故知新,redis集群复习
redis集群简介定义redis集群是一个提供多个redis实例间共享数据的程序集。优势自动分割数据到不同node上;并且部分node不可达时能够继续提供服务。集群的数据分片处理没有使用一致性hash算法而使用hash槽进行数据分片。redis集群有15384个槽。每个node负责一部分槽。例如0-5000;5001-10000;10001-16384每次操作通过对key进行15384取模得到一个数字,用这个数字来匹配使用哪个对应的node。比如...原创 2020-05-21 21:19:30 · 121 阅读 · 0 评论 -
来选择一个适合你的分布式ID生成方案吧
在我们的分布式架构中,我已经做了分布式ID生成器,使用的是redis方案.最近又了解了一下分布式ID的不同方案,这里记录一下UUIDUUID是我们很常见的一个ID方案,理论上唯一,生成方式简单。但ID本身无意义所以不适合做ID需要表示含义的内容,如需要像客户展示的订单号;而且总长36位过长,去除"-"后也有32位,存储到DB占用存储空间大。而且作为聚集索引的话,每次去比较转换添加新的索...原创 2020-04-24 22:47:42 · 367 阅读 · 0 评论 -
spring cloud + nacos 多环境部署
我们开发过程中,要经历本地开发环境、dev开发环境、qa测试环境、(甚至还有uat演示环境)、生产环境。那么我们就需要将服务做多环境处理。我们现在使用都是spring boot架构,它可以根据配置文件的配置去匹配子文件后缀,不过在Spring cloud环境下使用了nacos作为配置中心需要使用bootstrap.yml替换 appliation,yml作为配置文件。因为bootstrap的加...原创 2020-01-18 10:38:25 · 3265 阅读 · 0 评论 -
spring boot 使用 nacos作为注册和配置中心
nacos是阿里开源的注册、配置中心,可以实现服务的注册发现,配置的动态刷新等。nacos提供了集群模式,单机模式,还有一个内置了数据库的包。实现开箱即用。这里单独说一下nacos的namespace概念,nacos在所有注册和配置之外做了一层命名空间,保证每个命名空间下的配置和注册的服务的独立性。简述一下使用过程吧。首先需要添加nacos的依赖compile 'org.spri...原创 2020-01-18 09:34:36 · 1247 阅读 · 2 评论 -
微服务整合J2cache并改造使用
我们的微服务架构中,存在一个单独的基础数据中心,存放了各个服务、页面、app端的所需要的基础数据信息。这些数据的特点就是不易变,查询量大;最适合的场景就是进行缓存。经过一番商讨,决定使用J2Cache二级缓存。整个缓存架构过程:具体更多关于J2cache可以去查看官网文档。我这里简述我们的使用方法,因为我们是springboot项目,Spring的IOC可以让我们...原创 2020-01-06 22:08:27 · 4159 阅读 · 1 评论 -
Spring cloud gateway + JWT时Netty限制header大小导致请求bad Request问题解决
写得比较匆忙,本文主要以整体微服务架构简述开头,按照问题排查过程叙述,加以springboot启动源码浅析和解决办法。如有错误请指正先说版本Spring boot 2.0.4。Spring cloud F版 jdk1.8我们目前的微服务架构,当用户登录后会发放JWT的token令牌给前端,之后的请求都将此token放到http的header中传入后台。但是前端调用时发现之前正...原创 2019-12-24 22:53:16 · 5285 阅读 · 3 评论 -
Spring Cloud Gateway 微服务网关
给公司做的微服务架构中,我们用了gateway作为所有微服务的前端入口,对后端微服务进行路由。gateway使用了webflux的纯异步IO方式开发。实现了更高效的网关服务。gateway的使用使用很简单,这里简单说一下,我们使用的是gradle作为构建工具dependencies { compile 'org.springframework.boot:sprin...原创 2019-12-01 21:41:00 · 403 阅读 · 0 评论 -
K8s基础概念
最近在做新的系统架构,使用了比较新的容器技术K8s来做一整套分布式系统架构。今天来记录一下K8s的一些基础概念。纯凭记忆,如有错误请指正。什么是K8s网上能看到的就不说了,说一些我理解的。K8s是一套google开源的利用容器技术的分布式及系统解决方案。通过对应用程序的容器化管理,实现服务的自动管理,如部署,多实例,负载均衡,自动重启等。如果说spring cloud是一套...原创 2019-11-04 21:56:50 · 251 阅读 · 0 评论 -
Spring Cloud Eureka + Openfeign 搭建
要开新项目啦,哈哈哈这回是个分布式微服务项目,所以先来实践一下。架构使用spring boot2.1.1, jdk8,其实想用JDK11的,但是考虑到后面有可能会应用到项目中,所以直接JDK8吧。IDE用STS4.1,注册中心eureka现在的微服务不能保证每个节点永远不出现问题,所以我们需要注册和发现中心,我理解eureka主要作用就是进行微服务的自动注册和发现,以及心跳检测...原创 2019-01-11 14:58:51 · 1928 阅读 · 8 评论 -
Spring Cloud Config + Spring Cloud Bus + RabbitMq实现微服务高可用配置中心
在一个微服务架构中会有很多微服务,每个微服务都有自己的配置文件,这会随着微服务的数量增多而变的难以管理。所以spring cloud 给我们提供了一个很强大的配置管理中心,spring cloud config,他可以将我们的配置文件集中于一处进行集中管理。并且可以通过spring cloud bus + rabbitMQ 进行广播,同步到所有节点,并且直接生效。 注意几点...原创 2019-01-17 11:29:30 · 637 阅读 · 0 评论 -
Spring Cloud 整体架构学习心得
最近要开新项目,使用微服务架构,正好就在之前的spring boot基础之上。所以觉得还是要把最近的思考写一下。让我们小到大一点点说。本文只代表我个人观点理解。1,springspring几乎可以说是现在java开发者都知道的一个开源框架,使用javabean致力于解决企业级应用开发的复杂性。总结有以下优点:1,高内聚低耦合2,简化开发3,IOC一个大工厂管...原创 2019-01-16 15:23:44 · 2233 阅读 · 0 评论 -
spring cloud openfeign 深入学习
spring cloud 架构使用openfeign进行声明式的服务调用,之前我们已经写过了关于openfeign的简单搭建使用。详情请点这里今天我们就不写使用了,我们来看一下openfeign的一些详解。@EnableFeignClients先看一下源码:/* * Copyright 2013-2018 the original author or authors. *...原创 2019-01-22 15:54:37 · 1252 阅读 · 0 评论 -
Spring Cloud Zuul 服务网关默认规则及负载均衡示例
我们微服务架构中,各个微服务之间的调用是通过各个eureka客户端把自己注册到eureka服务端中,然后使用feignClient进行调用。这样我们就可以只关心调用的微服务的服务名而无需关心他的实际IP,端口,集群的负载均衡。那么问题来了,如果外部调用呢?前后端分离时,前端调用我们后端暴露接口,如何做到动态调整,负载均衡,并且如果直接访问后端暴露接口是否真正安全?所以今天我们来看一...原创 2019-01-22 17:20:28 · 6603 阅读 · 1 评论 -
分布式事务的几种方案
最近正在给公司做分布式事务解决方案。也看了不少资料,对分布式事务的几个方案也有了一些自己的理解。这里写个博客记录一下学习过程,再说说结合业务相关内容。CAP原则CAP原则指出三个原则:一致性,可用性,还有分区容错性。一致性:指分布式系统中的各节点的数据一致性。A中存储V=10,B中也要是V=10。才满足一致性原则。可用性:指分布式系统中每次访问,都有可用节点可以对请求进行响应。...原创 2019-05-31 17:37:43 · 984 阅读 · 0 评论 -
spring cloud consul 使用以及和eureka的区别
现在在做供应链项目,项目还是一套微服务架构体系。注册中心从之前用的eureka换到了consul。架构的理由估计是eureka不更新了吧。所以来学习一下consul的内容。最近比较忙,我也不再单独查资料了,就把自己知道的写出来好了。如有错误请指正哈。什么是consulconsul是一个spring cloud 中集成好的开源的分布式的服务注册发现中心。由Go语言编写。支持健康检查,多数...原创 2019-06-04 12:36:17 · 6202 阅读 · 4 评论 -
Redis实现接口幂等
最近自己在做一套spring开发脚手架,期间做了一个幂等工具。今天分享一下吧。也请大家给提提意见。看看有哪些问题。实现思路大概就是一个声明式的方式,通过注解进入切面,实现对目标方法的环切。利用redis的单线程特性。实现接口幂等。不多说了,直接上代码,现阶段还不是很完善。后续如果整个项目完善了,到时候再发上来吧。先看一下注解:/** * 幂等注解 * 用于c...原创 2019-08-29 10:57:24 · 3638 阅读 · 3 评论 -
spring boot dubbo zookeeper的分布式简单示例
之前学习了一阵spring cloud,一直没想着写博客,这两天看了看dubbo+zk,先写一下这个相关的内容吧。才疏学浅,有错误请指正。首先需要安装zookeeper下载地址:https://zookeeper.apache.org/releases.html找到download,进行下载即可。下载后,解压到自己想要解压的某个地方。以我的windows系统为例,我解压到:E:\zookeeper...原创 2018-04-26 16:46:31 · 506 阅读 · 1 评论