
分布式相关
文章平均质量分 67
XCXCXCXCX__
这个作者很懒,什么都没留下…
展开
-
【缓存一致性】关于数据库与缓存的一致性问题的分析和解决方案
想起遇到过的缓存与数据库的问题和一些思考,在这里做一些系统性的分析和总结,讨论一下对数据库与缓存的一致性问题及解决方案。1,先更新数据库再更新缓存可能出现的问题:a). A更新数据库(或发现缓存失效而查询数据库)b). B更新数据库c). B更新缓存d). A更新缓存(覆盖了B的缓存)出现数据不一致的问题,且问题发生可能性较小。(如果A更新数据库较耗时)另外,当更新数据库成...原创 2018-11-17 19:16:12 · 874 阅读 · 1 评论 -
微服务系列(五)解读分布式锁
微服务系列(五)解读分布式锁首先,锁是一个熟悉的字眼,在单机应用中,我们常常使用J.U.C等并发工具类来控制多线程读写问题,也会使用ReentrantLock/ReentrantReadWriteLock或是synchronized关键字来给方法或代码块加锁,从而达到同样的目的。我理解的锁说到锁,我能想到这样几个关键字:临界区、共享变量、并发问题从抽象的角度去考虑,锁就是一个能给什么东...原创 2019-05-31 11:14:06 · 1222 阅读 · 0 评论 -
微服务系列(四)单点登陆问题
微服务系列(四)单点登陆问题分布式系统中单点登陆问题是一个非常常见的问题,开发者经常需要面临不同系统或模块需要不同的认证,而某些场景下,用户只需要一次登陆,即可访问跨模块、系统的服务。ps.分享基于spring boot2.0.x、spring cloud Finchley.SR2一次Oauth 2.0的使用经历由于项目采用了Spring Cloud全家桶来构建底层服务,Spring框...原创 2019-05-31 11:13:57 · 969 阅读 · 0 评论 -
微服务系列(三)如何选择配置中心
微服务系列(三)如何选择配置中心前面通过源码分析过了注册中心的实现,本文继续思考如何选择【微服务基础设施组件:配置中心】对于注册中心,要对于项目特性,并结合注册中心的功能和实现特性来决定匹配度,那么对于配置中心,我们最应该了解的则是其配置信息的组织模式(决定系统的扩展性、可维护性等)、数据的存储方式和通信方式(决定性能、响应速度)、以及组件之间的契合度(笔者认为,如果两个组件之间是完全解耦的...原创 2019-05-31 11:13:48 · 735 阅读 · 0 评论 -
微服务系列(二)(5) Nacos源码分析
微服务系列(二)(5) Nacos源码分析Nacos (official site: http://nacos.io) is an easy-to-use platform designed for dynamic service discovery and configuration and service management. It helps you to build cloud na...原创 2019-05-31 11:13:38 · 13419 阅读 · 1 评论 -
微服务系列(二)(4) ZooKeeper源码分析-part-3
微服务系列(二)(4) ZooKeeper源码分析-part-3本文将继续探究以下内容:Zookeeper Client发送命令链路追踪,Zookeeper的事务请求原理,Watcher监听原理使用ZooKeeper Client的小伙伴应该熟悉这个类org.apache.zookeeper.ZooKeeper,可能有人使用了ZkClient或curatorFramework,而这两种方便...原创 2019-05-31 11:13:27 · 452 阅读 · 0 评论 -
微服务系列(二)(3) ZooKeeper源码分析-part-2
微服务系列(二)(3) ZooKeeper源码分析-part-2前文跟踪源码分析了ZooKeeper Server的初始化过程,通讯原理及选举机制,本文将继续进入源码,探究ZooKeeper的存储机制。通过前文的链路追踪,可以知道ZooKeeper的存储核心类是org.apache.zookeeper.server.ZKDatabase下面就开始分析解读它的实现,它在内存中保存了怎样的数...原创 2019-05-31 11:13:20 · 333 阅读 · 0 评论 -
微服务系列(二)(2) ZooKeeper源码分析-part-1
微服务系列(二)(2) ZooKeeper源码分析-part-1本节开始进行ZooKeeper的源码分析,针对Zookeeper Server的初始化过程,通讯原理及选举机制做源码层面上的介绍作为ZooKeeper的使用者,应该知道如何部署和启动Zookeeper吧看源码的入口就从这里作为出发点,找到zkServer.sh或者zkServer.cmd截取zkServer.sh里的一段重...原创 2019-05-31 11:13:12 · 453 阅读 · 1 评论 -
微服务系列(二)(1) Eureka源码分析
微服务系列(二)(1) Eureka源码分析关于eureka的使用,就不做介绍了,不熟悉的可以参考官方文档引入依赖,修改好配置文件,在主类上加上注解@EnableEurekaServer,启动服务,一个简单的eureka搭建好了。先看看@EnableEurekaServer@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIM...原创 2019-05-31 11:13:01 · 496 阅读 · 0 评论 -
微服务系列(二)探究不同注册中心的底层原理
微服务系列(二)探究不同注册中心的底层原理市面上常见的注册中心有 eureka、zookeeper、consul,又由于笔者有关注目前还在0.8.0版本的nacos,本文就针对这四个注册中心,从底层实现来探讨它们的适用场景,并尝试寻找一些可扩展的入口,也便于开发者在其上进行改造和定制化。前言在介绍四种开源项目之前,先简单认识一下注册中心。我的简单理解:注册中心提供服务注册和服务发现...原创 2019-05-31 11:12:50 · 1029 阅读 · 0 评论 -
微服务系列(一)聊聊服务网关
微服务系列(一)聊聊服务网关前几年随着分布式架构的演变,微服务开始兴起,自然也产生了一系列支持微服务的框架,例如本文要聊到的Spring Cloud。Spring 相信做Java的小伙伴们已经耳熟能详了,也正是应该这个Spring生态获得广大的关注,在Spring之上开发的新兴框架如Spring Boot、Spring Cloud也很快让大家熟知。下面主要针对Spring Cloud聊聊它...原创 2019-05-31 11:12:12 · 5383 阅读 · 1 评论 -
【分布式事务】Spring Cloud集成fescar的示例demo
spring-cloud-fescarspring cloud集成fescar的demo工程准备工作阅读官方文档Quick Start,并成功启动fescar-server传送门初始化demo数据库工程路径下fescar_demo.sql文件测试效果修改demo工程中的配置文件account-service:用户账户服务,仅提供用户账户的扣减接口,端口:11...原创 2019-03-12 20:10:46 · 2975 阅读 · 0 评论 -
Dubbo系列(四)源码分析之服务调用
Dubbo系列(四)源码分析之服务调用前文介绍了Dubbo中服务暴露的过程,本文继续介绍服务调用的过程,让一次服务调用过程连接起来理解。如果读者是第一次阅读本文且对Dubbo SPI没有了解,可以先阅读《Dubbo系列(二)源码分析之SPI机制》、《Dubbo系列(三)源码分析之服务暴露》。ps.本文只考虑整合Zookeeper的情况下的默认配置调用过程读取配置信息这里就不赘述了, ...原创 2019-01-15 09:47:46 · 234 阅读 · 0 评论 -
Dubbo系列(三)源码分析之服务暴露
Dubbo系列(三)源码分析之服务暴露前文介绍了Dubbo SPI机制,相信读者应该具备Dubbo中SPI实现类跟踪的能> 力,那么在本文中将会直接跳过SPI分析的过程。如果读者是第一次阅读本文且对Dubbo SPI没有了解,可以先阅读《Dubbo系列(二)源码分析之SPI机制》读取配置信息依赖Spring容器根据spring官方文档给的规范进行扩展,增加Dubbo命名标签,如...原创 2019-01-15 09:45:44 · 491 阅读 · 0 评论 -
Dubbo系列(二)源码分析之SPI机制
Dubbo系列(二)源码分析之SPI机制在阅读Dubbo源码时,常常看到ExtensionLoader.getExtensionLoader(*.class).getAdaptiveExtension();ExtensionLoader.getExtensionLoader(*.class).getExtension(“name”);那么需要深入了解dubbo,了解SPI源码是必不可少...原创 2019-01-15 09:43:58 · 381 阅读 · 0 评论 -
Dubbo系列(一)dubbo介绍和入门
Dubbo系列(一)dubbo介绍和入门学习Dubbo 之前,先了解一下这几个问题:Dubbo是什么?互联网发展的背景Dubbo介绍Dubbo的优势在哪里?了解了dubbo之后,让我们从零搭建一个简单的dubbo项目。Dubbo是什么官网介绍Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核...原创 2019-01-15 09:42:39 · 3141 阅读 · 0 评论 -
微服务系列(六)探究Spring Cloud服务调用
微服务系列(六)探究Spring Cloud服务调用大纲分布式架构的“骨架”基于http协议的通讯模式RestTemplate与Feign新的选择WebClient从Spring源码中我看到了什么分布式架构的“骨架”分布式架构是由一个个组件组装而成,各司其职,对外提供服务。而将他们联系起来的则是网络,组件之间的通讯方式则是这个分布式架构的“骨架”。如果没有“骨架”,每个组...原创 2019-07-30 20:27:21 · 482 阅读 · 0 评论