架构
文章平均质量分 73
Yang_yangyang
大鹏一日同风起,扶摇直上九万里!!!
展开
-
Nginx 代理服务,访问ftp图片,图片乱码
nginx 反向代理图片乱码原创 2024-01-08 14:54:05 · 622 阅读 · 0 评论 -
Docker夺命连环15问,你能坚持第几问?
Docker夺命连环15问,你能坚持第几问?转载 2023-02-02 15:24:40 · 466 阅读 · 0 评论 -
修改Docker默认安装路径
本人是个重度强迫症,所有的软件,都不安装到C盘(系统盘)。所以在安装Docker时,也遇到了整个问题。无法更改安装路径,默认安装在C盘,这就让人很不爽,我的电脑,我居然决定不了软件的安装位置?!(其实是因为C盘硬盘空间太小了),上网一所,果然很多志同道合的同志在找出路。总结一下,以备不时之需。建立软连接,把默认要安装的位置映射到其他盘,比如D盘。至于 Docker 默认的安装位置是怎么知道的,安装一次的都会知道,这里就直接剧透了,默认位置是: C:\Program Files\Docker 建原创 2022-02-07 10:24:19 · 7587 阅读 · 16 评论 -
Redis分布式锁到底安全吗?你真的会用 Redis 分布式锁么?
关于 Redis 分布式锁的话题,很多文章已经写烂了,我为什么还要写这篇文章呢?因为今天这篇文章想探讨下,关于 Redis 分布式锁的使用 ,以及redis 处理问题的思路,包括「安全性」问题。因为我发现网上 99% 的文章,并没有把这个问题真正讲清楚。导致很多读者看了很多文章,依旧云里雾里。例如下面这些问题,你能清晰地回答上来吗?基于 Redis 如何实现一个分布式锁?Redis 分布式锁真的安全吗?Redis 的 Redlock 有什么问题?一定安全吗?业界争论 Redlock,到底在争论转载 2021-06-11 17:24:05 · 323 阅读 · 1 评论 -
fail-fast 机制。List 不要随便remove 元素
代码片段1:其中IDs意义是:不为空的 String[] IDs 数组。List stkCs = new ArrayList();Collections.addAll(stkCs, IDs);List delList = new ArrayList();//用来装需要删除的stkCfor(String stkc :stkCs){List list = searchSer原创 2016-12-21 20:06:38 · 1851 阅读 · 0 评论 -
[已解决]Tomcat启动报栈溢出的问题分析及处理org.bouncycastle.asn1.ASN1Boolean
问题缘由: 在tomcat下部署war包启动时报错,关键错误信息如下: Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [] due to a StackOverflowError. Possible root causes in...转载 2021-05-07 10:59:09 · 1017 阅读 · 0 评论 -
Spring 事务失效的 8 大场景,看看你都遇到过几个
用 Spring 的@Transactional注解控制事务有哪些不生效的场景?不知道小伙伴们有没有这样的经历,在自己开心的编写业务代码时候,突然某一个方法里的事务好像失效了。然后 debug 跟踪代码时发现,自己第一步的 insert 或者 update 的数据在语句执行完毕后,数据库中并没有立即出现更改或保存完的新数据。所以一度怀疑spring 的事务失效了。那么这篇文章就来总结一下,大家给大家造成 “spring事务失效”错觉的 几个常见场景,然后对症下药。Let's GO!!!以本人..原创 2021-03-04 10:46:42 · 1736 阅读 · 3 评论 -
Spring 如何在一个事务中开启另一个事务?
Spring 如何在一个事务中开启另一个事务?这样的情景可能不常见,但是还是会有的,一旦遇到,如果业务比较复杂,就会很麻烦,但是还是有解决的方案的,比如将一个service方法拆成两个方法,也就是将两个操作的事务分开。但是这只适用与业务比较简单的,如果出现多次数据库的写操作,而我们调用的系统只需要其中一个写操作的最新数据,如果我们将它分开,那么如果调用目标系统出现异常的时候,那么之前的写操作就不能回滚了。举个简单的例子:@Servicepublic class ServiceA { @Tran原创 2021-03-04 10:45:02 · 850 阅读 · 1 评论 -
dubbo源码分析18 -- 服务监控
原文地址:http://www.carlzone.cn/dubbo/18-dubbo-service-monitor/在分布式服务当中监控服务的各项指标至关重要,而 dubbo 也提供了一个简单的监控中心(Simple Monito)。Simple Monitor挂掉不会影响到Consumer和Provider之间的调用,所以用于生产环境不会有风险。 并且配置好了之后可以结合 admin 管理后台...转载 2018-07-03 14:07:31 · 398 阅读 · 0 评论 -
dubbo源码分析19 -- 服务治理
原文地址:http://www.carlzone.cn/dubbo/19-dubbo-service-admin/在之前的 dubbo 源码分析中我们分析了 dubbo 的服务暴露。provider 把需要暴露的服务地址信息注册到注册中心(比如:zookeeper),然后把通过 java nio 框架 netty 以 socket 的方式把远程服务暴露给 consumer 调用,并且订阅注解中心,...转载 2018-07-03 14:07:38 · 414 阅读 · 0 评论 -
dubbo源码分析20 -- 远程调用概述
原文地址:http://www.carlzone.cn/dubbo/20-dubbo-network-summary/在之前的文章我们分析了 dubbo 的服务治理,也就是在 consumer 端在进行服务引用的时候。consumer 首先会根据配置 Protocol(协议) 创建 Invoke 调用对象,它代表一个可执行体,可向它发起 invoke 调用,它有可能是一个本地的实现,也可能是一个远...转载 2018-07-05 09:56:02 · 196 阅读 · 0 评论 -
dubbo源码分析21 -- 远程通信 netty
原文地址:http://www.carlzone.cn/dubbo/21-dubbo-network-netty/dubbo 做为 RPC 框架,需要进行跨 JVM 通信,要保证高性、稳定的进行远程通信。dubbo 底层通信选择了 netty 这个 nio 框架做为默认的网络通信框架并且通过自定义协议进行通信。dubbo 支持以下网络通信框架:Netty(默认)MinaGrizzly1、 nett...转载 2018-07-05 09:56:09 · 210 阅读 · 0 评论 -
dubbo源码分析22 -- consumer 发送与接收原理
原文地址:http://www.carlzone.cn/dubbo/22-dubbo-network-consumer/在前面的文章中,我们分析了 dubbo 从 provider 进行服务暴露,然后把服务信息注册到注册中心上面解耦 consumer 与 provider 的调用。consumer 通过 javassist 创建代理对象引用远程服务。当通过代理对象调用远程服务的时候,讲到进行真正调...转载 2018-07-05 09:56:15 · 427 阅读 · 0 评论 -
dubbo源码分析23 -- provider 接收与发送原理
原文地址:http://www.carlzone.cn/dubbo/23-dubbo-network-provider/在前面一篇博客中分享了 dubbo 在网络通信当中的 consumer 的发送以及接收原理。通过集群容错最终选择一个合适的 Invoke 通过 netty 直联调用 provider 的服务。众所周知, netty 是基于 Java Nio 的 Reactor 模型的异步网络通信...转载 2018-07-05 09:56:20 · 249 阅读 · 0 评论 -
dubbo源码分析24 -- 调用核心 Invoke
原文地址:http://www.carlzone.cn/dubbo/24-dubbo-core-invoke/任何框架或组件,总会有核心领域模型,比如:Spring 的 Bean,Struts 的 Action,Napoli 的 Queue 。对于 Dubbo 来说它的核心就是 Service(服务接口),而 Service 不管是 provider 暴露服务,还是 consumer 引用服务。它...转载 2018-07-05 09:56:25 · 300 阅读 · 0 评论 -
Json解析之 ---- FastJSON 实现 Map、JSON、String 之间的互转
简介Fastjson是一个Java语言编写的高性能功能完善的JSON库(由阿里巴巴团队完善开发)。高性能fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。支持标准Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之...原创 2018-08-10 10:50:17 · 707 阅读 · 2 评论 -
dubbo源码分析17 -- 集群容错总结
原文地址:http://www.carlzone.cn/dubbo/17-dubbo-cluster-summary/在集中式环境中服务的机器台只有一台,这样对于服务不仅存在服务单点故障问题而且还存在流量问题。为了解决这个问题,就引入的分布式与集群概念。>分布式:一个业务分拆多个子业务,部署在不同的服务器上 >集群:同一个业务,部署在多个服务器上当请求来临时,如何从多个服务器中,选择一...转载 2018-07-03 14:07:25 · 191 阅读 · 0 评论 -
dubbo源码分析16 -- 集群容错之LoadBalance
原文地址:http://www.carlzone.cn/dubbo/16-dubbo-cluster-loadbalance/在集中式环境中服务的机器台只有一台,这样对于服务不仅存在服务单点故障问题而且还存在流量问题。为了解决这个问题,就引入的分布式与集群概念。>分布式:一个业务分拆多个子业务,部署在不同的服务器上 >集群:同一个业务,部署在多个服务器上1、 dubbo 服务治理当请求...转载 2018-07-03 14:07:19 · 173 阅读 · 0 评论 -
2.dubbo源码分析 之 内核SPI实现
原文地址:http://www.carlzone.cn/dubbo/2-dubbo-spi/Dubbo采用微内核+插件体系,使得设计优雅,扩展性强。那所谓的微内核+插件体系是如何实现的呢!大家是否熟悉spi(service providerinterface)机制,即我们定义了服务接口标准,让厂商去实现(如果不了解spi的请谷歌百度下), jdk通过ServiceLoader类实现spi机制的服务...转载 2018-06-29 13:52:29 · 324 阅读 · 0 评论 -
3.dubbo源码分析 之 动态编译
原文地址:http://www.carlzone.cn/dubbo/3-dubbo-compile/我们运行的Java代码,一般都是编译之后的字节码。Dubbo为了实现基于SPI思想的扩展特性,可以灵活的添加额外的功能。对于SPI接口需要能够动态生成,这样就需要在运行的时候去编译加载这个设配类的代码。下面我们就是来了解下Dubbo的动态编译。我们首先来看一下Compile的类图。Compile接口...转载 2018-06-29 13:53:36 · 297 阅读 · 0 评论 -
4.dubbo源码分析 之 与 Spring 集成
原文地址:http://www.carlzone.cn/dubbo/4-dubbo-integration-spring/Spring框架从2.0版本开始,提供了基于Schema风格的Spring XML格式用来定义bean的扩展机制。引入Schema-based XML是为了对Traditional的XML配置形式进行简化。通过Schema的定义,把一些原本需要通过几个bean的定义或者复杂的b...转载 2018-06-29 13:54:20 · 199 阅读 · 0 评论 -
5.dubbo源码分析 之 SPI分析
原文地址:http://www.carlzone.cn/dubbo/5-dubbo-spi-analyze/如果大家看过之前的 dubbo 内核 SPI 实现 -- 2.dubbo源码分析 之 内核SPI实现, 有可能还是一头雾水,下面我讲一下dubbo的具体应用。最典型的应用就是 Protocol 接口。Protocol 属于 dubbo 十层结构 中的远程调用层, 它封装了RPC调用。以Inv...转载 2018-06-29 13:55:06 · 226 阅读 · 0 评论 -
6、dubbo源码分析 之 服务暴露概述
原文地址:http://www.carlzone.cn/dubbo/6-dubbo-provider-expose/dubbo的服务模型是非常简单的,要么是服务提供方(Provider)提供服务,要么是服务消费方(Consumer)消费服务,从dubbo官网的系统架构图就可以看出来。Provider与Consumer通过Registry来解耦合,这一点和Spring有点相似。在Spring中它的核...转载 2018-06-29 13:55:57 · 210 阅读 · 0 评论 -
7、dubbo源码分析 之 服务本地暴露
原文地址:http://www.carlzone.cn/dubbo/7-dubbo-local-expose/在上一篇文章我们分析了一下 dubbo 在服务暴露发生了哪些事,今天我们就来分析一下整个服务暴露中的本地暴露。(PS:其实我感觉本地暴露蛮鸡肋的)。本地暴露需要服务提供方与服务消费方在同一个 JVM。下面我们来写一个本地暴露使用的例子:> 1) DemoService.javapub...转载 2018-06-29 13:59:51 · 279 阅读 · 0 评论 -
dubbo 源码分析汇总
原文地址:http://www.carlzone.cn/dubbo/0-dubbo-sourcecode-overview/Dubbo |ˈdʌbəʊ| 是一个高性能的、基于 java 的 RPC 框架,由阿里巴巴开源。与许多 RPC 系统一样,dubbo 基于定义服务的思想,指定可以用其参数和返回类型远程调用的方法。在服务器端,服务器实现这个接口,并运行一个 dubbo 服务器来处理客户端调用。...转载 2018-06-29 14:01:04 · 296 阅读 · 0 评论 -
8、dubbo源码分析 之 服务远程暴露(上)
原文地址:http://www.carlzone.cn/dubbo/8-dubbo-expose-top/在上一篇文章我们讲解了一下 dubbo 服务暴露过程中的本地暴露。它只是一个开胃小菜,主要是为我们后面讲解远程暴露开个头。下面就来分析一下 dubbo 在远程暴露里面发生了哪些事。因为 dubbo 远程暴露里面的过程还是比较复杂的,所以我就分为三个文章来讲解 dubbo 的远程暴露:dubbo...转载 2018-06-29 14:13:59 · 255 阅读 · 1 评论 -
9、dubbo源码分析 之 服务远程暴露(中)
原文地址:http://www.carlzone.cn/dubbo/9-dubbo-expose-middle/在上一篇文章我们讲解了一下 dubbo 远程服务暴露过程中通过 Netty 进行 Socket 服务暴露。使得远程客户端可以访问这个暴露的服务,这个只是解决了访问之前点到点的服务调用。对于分步式环境当中,越来越多的服务我们如何管理并且治理这些服务是一个问题。因此 dubbo 引入了注册中...转载 2018-06-29 14:14:39 · 306 阅读 · 0 评论 -
10、dubbo源码分析 之 服务远程暴露(下)
原文地址:http://www.carlzone.cn/dubbo/10-dubbo-expose-lower/在前面的文章我们分析了一下 dubbo 远程服务暴露过程中通过 Netty 进行 Socket 服务暴露。使得远程客户端可以访问这个暴露的服务,这个只是解决了访问之前点到点的服务调用。对于分步式环境当中,越来越多的服务我们如何管理并且治理这些服务是一个问题。因此 dubbo 引入了注册中...转载 2018-07-03 14:06:34 · 265 阅读 · 0 评论 -
11、dubbo源码分析 之 服务引用
原文地址:http://www.carlzone.cn/dubbo/11-dubbo-consuer-ref/在使用 dubbo 的时候,我们对于远程服务调用是无感知的。当需要调用远程服务的时候我们只需要进行以下配置,就可以像本地调用的方式调用远程服务:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www....转载 2018-07-03 14:06:45 · 391 阅读 · 0 评论 -
12、dubbo源码分析 之 Listener & Filter
原文地址:http://www.carlzone.cn/dubbo/12-dubbo-extenstion-filter-listener/Dubbo 是阿里巴巴开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输入与输出功能。作为一个优秀的框架,至少应该包含以下几个特点:完善的文档活跃的社区良好的扩展性今天主要讨论的主题就是 dubbo 中良好的扩展性。 dubbo 的扩...转载 2018-07-03 14:06:55 · 282 阅读 · 0 评论 -
dubbo源码分析13 之 集群容错 Invoke
原文地址:http://www.carlzone.cn/dubbo/13-dubbo-cluster-overview/在集中式环境中服务的机器台只有一台,这样对于服务不仅存在服务单点故障问题而且还存在流量问题。为了解决这个问题,就引入的分布式与集群概念。>分布式:一个业务分拆多个子业务,部署在不同的服务器上 >集群:同一个业务,部署在多个服务器上当请求来临时,如何从多个服务器中,选择...转载 2018-07-03 14:07:01 · 346 阅读 · 0 评论 -
dubbo源码分析14 -- 集群容错之Directory
原文地址:http://www.carlzone.cn/dubbo/14-dubbo-cluster-directory/在集中式环境中服务的机器台只有一台,这样对于服务不仅存在服务单点故障问题而且还存在流量问题。为了解决这个问题,就引入的分布式与集群概念。>分布式:一个业务分拆多个子业务,部署在不同的服务器上 >集群:同一个业务,部署在多个服务器上1、 dubbo 服务治理当请求来临...转载 2018-07-03 14:07:08 · 191 阅读 · 0 评论 -
dubbo源码分析15 -- 集群容错之Route
在集中式环境中服务的机器台只有一台,这样对于服务不仅存在服务单点故障问题而且还存在流量问题。为了解决这个问题,就引入的分布式与集群概念。>分布式:一个业务分拆多个子业务,部署在不同的服务器上 >集群:同一个业务,部署在多个服务器上1、 dubbo 服务治理当请求来临时,如何从多个服务器中,选择一个有效、合适的服务器,这个集群所需要面对一问题。所以在集群里面就引申出负载均衡(LoadBa...转载 2018-07-03 14:07:13 · 372 阅读 · 0 评论 -
1.dubbo源码分析 之 架构原理探索
原文地址:http://www.carlzone.cn/dubbo/1-dubbo-architecture/在之前的文章中介绍了Dubbo的出现背景以及使用方式,下面我们通过源码的方式来分析一下Dubbo的架构。1、准备在分析探索Dubbo架构原理之前,我们需要准备一下环境,用于后面我们来分析dubbo的架构。1.1 ZookeeperDubbo使用Zookeeper为注册中心。所以需要在本地启...转载 2018-06-29 13:51:00 · 522 阅读 · 0 评论