微服务
文章平均质量分 94
陈晨辰呀
这个作者很懒,什么都没留下…
展开
-
分布式链路追踪原理详解及SkyWalking、Zipkin介绍
背景:追踪调用链路,监控链路性能,排查链路故障随着微服务架构的流行,一次请求往往需要涉及到多个服务,需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。单体架构中可以使用 AOP 在调用具体的业务逻辑前后分别打印一下时间即可计算出整体的调用时间,使用 AOP 来 catch 住异常也可知道是哪里的调用导致的异常。基本实现原理一个完整请求链路的追踪ID(traceid)用于查出本次请求调用的所有服务,每一次服务调用的跨度ID(spanid.原创 2021-04-21 21:06:29 · 13922 阅读 · 5 评论 -
Spring Cloud Gateway实战案例(限流、熔断回退、跨域、统一异常处理和重试机制)
Spring CloudGateway 作为新一代网关,在性能上有很大提升,并且附加了诸如限流等实用的功能。限流开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。API 网关作为所有请求的入口,请求量大,我们可以通过对并发访问的请求进行限速来保护系统的可用性。常用的限流算法常用的限流算法由:漏桶算法和令牌桶算法。1、漏桶算法 漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直...原创 2021-03-07 18:35:57 · 1746 阅读 · 0 评论 -
高可用解决方案:同城双活、异地双活、异地多活
后台服务可以划分为两类,有状态和无状态。高可用对于无状态的应用来说是比较简单的,无状态的应用,只需要通过F5或者任何代理的方式就可以很好的解决。后文描述的主要是针对有状态的服务进行分析。服务端进行状态维护主要是通过磁盘或内存进行保存,比如MySQL数据库,redis等内存数据库。除了这两种类型的维护方式,还有jvm的内存的状态维持,但jvm的状态生命周期通常很短。高可用的一些解决方案高可用,从发展来看,大致经过了这几个过程:冷备 双机热备 同城双活 异地双活 异地多活在聊异地多活的时候原创 2021-03-01 21:02:12 · 1171 阅读 · 0 评论 -
Spring声明式与编程式事务的区别,事务与非事务方法相互调用导致的事务不生效问题
事务1. 事务的4种特性 序号 参数 含义1 原子性(Atomicity) 事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。2 一致性(Consistemcy) 事务前后,数据库的状态都满足所有的完整性约束。3 隔离性(Isolation) 并发执行的事务是隔离的,一个不影响一个。通过设置数据库的隔离级别,可以达到不同的隔离效果4 持久性(Durability) 在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。2....原创 2020-05-22 17:46:57 · 2487 阅读 · 1 评论 -
原来 Elasticsearch 还可以这么理解
生活中的数据搜索引擎是对数据的检索,所以我们先从生活中的数据说起。我们生活中的数据总体分为两种: 结构化数据 非结构化数据 结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、Word 文档,邮件,各类报表、图片和咅频、视频信.转载 2020-09-06 18:22:23 · 443 阅读 · 0 评论 -
Git 从入门到放弃命令大全
对于刚学 Git 的朋友来说太痛苦了,一堆命令,于是就有了这篇文章,对于常用的命令进行梳理。 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 1. 初始化 在当前目录新建一个Git代码库git init 初始化一个新目录git init [project-name] 下载远程仓库的项目到本地git clone [url] 2. 配置配置文件分为全部..转载 2020-09-06 17:52:24 · 140 阅读 · 0 评论 -
图解Spring解决循环依赖
通常来说,如果问Spring内部如何解决循环依赖,一定是单默认的单例Bean中,属性互相引用的场景。比如几个Bean之间的互相引用:甚至自己“循环”依赖自己:先说明前提:原型(Prototype)的场景是不支持循环依赖的,通常会走到AbstractBeanFactory类中下面的判断,抛出异常。if(isPrototypeCurrentlyInCreation(bean...转载 2020-05-04 15:51:23 · 604 阅读 · 0 评论 -
Spring Cloud组件使用
Spring Cloud Stream基础应用实战https://mp.weixin.qq.com/s/8ptRRNFi7r52HWssIXbmWQSpring Cloud Sleuth使用ELK收集&分析日志https://mp.weixin.qq.com/s/6t9Sciv4TT-15DVjw8j3fQ...原创 2019-09-02 19:52:59 · 134 阅读 · 0 评论 -
API网关
前言假设你正在开发一个电商网站,那么这里会涉及到很多后端的微服务,比如会员、商品、推荐服务等等。那么这里就会遇到一个问题,APP/Browser怎么去访问这些后端的服务? 如果业务比较简单的话,可以给每个业务都分配一个独立的域名(https://service.api.company.com),但这种方式会有几个问题:每个业务都会需要鉴权、限流、权限校验等逻辑,如果每个业务都各自为...转载 2019-08-24 16:19:46 · 419 阅读 · 0 评论 -
32份有关微服务、DDD与中台经典架构文档
微服务微服务之概念篇微服务的历史与陷阱学习微服务,首先得了解为什么要使用微服务!致传统企业朋友:不够痛就别微服务,有坑Service Mesh:重塑微服务市场微服务之组件篇微服务数据一致性的演进:SAGA,CQRS,Event Sourcing的由来和局限微服务架构下分布式事务解决方案 —— 阿里GTS微服务架构:BFF和网关是如何演化出来的?...转载 2019-08-24 14:40:15 · 716 阅读 · 0 评论 -
Eureka服务注册与发现
目录什么是Eureka? Eureka注册的三大步 第一步,引用Maven 第二步,配置yml 第三步,开启Eureka注解 新建Eureka子项目 把provider子项目变成服务端 Eureka的自我保护机制 Eureka的发现 Eureka集群 什么是集群? 新建Eureka集群 什么是Eureka?Eureka是一个服务的注册中心,有服务端和客户...转载 2019-07-30 17:23:11 · 383 阅读 · 0 评论 -
ORM和 Spring Data Jpa
ORM什么是“持久化”持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。什么是“持久层”实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。什么是ORM即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要...转载 2019-06-10 16:24:40 · 856 阅读 · 0 评论 -
微服务Spring Cloud功能介绍
分布式:不同模块部署在不同服务器上作用:分布式解决网站高并发带来问题集群:多台服务器部署相同应用构成一个集群作用:通过负载均衡设备共同对外提供服务SOA:业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力,通过服务的组合和编排来实现上层的业务流程作用:简化维护,降低整体风险,伸缩灵活微服务:架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖...转载 2019-05-16 16:10:21 · 1125 阅读 · 0 评论 -
Spring之@Configuration、@Component、@Bean
@Configuration代表这个类是一个配置类,可理解为用spring的时候xml里面的<beans>标签@Bean用来定义一个bean,可以指定初始、销毁方法,及bean范围等,可理解为用spring的时候xml里面的<bean>标签@ComponentScan用来扫描指定包下面的注解类,相当于<context:component-scan...原创 2019-05-20 15:04:27 · 1632 阅读 · 0 评论