Fork me on GitHub
dubbo源码分析10 -- 服务远程暴露(下)

dubbo源码分析10 -- 服务远程暴露(下)

在前面的文章我们分析了一下 dubbo 远程服务暴露过程中通过 Netty 进行 Socket 服务暴露。使得远程客户端可以访问这个暴露的服务,这个只是解决了访问之前点到点的服务调用。对于分步式环境当中,越来越多的服务我们如何管理并且治理这些服务是一个问题。因此 dubbo 引入了注册中心这个概念,把服务暴露、服务调用的信息保存到注册中心上面。并且还可以订阅注册中心,实现服务自动发现。因为 dubbo 远程暴露里面的过程还是比较复杂的,所以我就分为三个文章来讲解 dub...

dubbo源码分析9 -- 服务远程暴露(中)

dubbo源码分析9 -- 服务远程暴露(中)

在上一篇文章我们讲解了一下 dubbo 远程服务暴露过程中通过 Netty 进行 Socket 服务暴露。使得远程客户端可以访问这个暴露的服务,这个只是解决了访问之前点到点的服务调用。对于分步式环境当中,越来越多的服务我们如何管理并且治理这些服务是一个问题。因此 dubbo 引入了注册中心这个概念,把服务暴露、服务调用的信息保存到注册中心上面。并且还可以订阅注册中心,实现服务自动发现。因为 dubbo 远程暴露里面的过程还是比较复杂的,所以我就分为三个文章来讲解 dub...

JDK 动态应用实例

公司需要新开发一个项目,功能在这里不需要Care,主要是基于我们之前的会员网关以及资金网关。这两个服务都是支持 GET/POST 的 https 请求的调用。因为我们这个项目是第三方支付,所以安全方面比较关注。请求方式使用的是 https 方式,然后数据在传输过程过程中需要把请求的数据进行加签,对于敏感数据(比如手机,实名,银行卡等)还需要加密。其中请求参数包括基本参数与业务参数,而对于响应参数的格式是 JSON 的数据 基本参数就是所有请求都需要传递的参数:主要包...

dubbo源码分析8 -- 服务远程暴露(上)

dubbo源码分析8 -- 服务远程暴露(上)

在上一篇文章我们讲解了一下 dubbo 服务暴露过程中的本地暴露。它只是一个开胃小菜,主要是为我们后面讲解远程暴露开个头。下面就来分析一下 dubbo 在远程暴露里面发生了哪些事。因为 dubbo 远程暴露里面的过程还是比较复杂的,所以我就分为三个文章来讲解 dubbo 的远程暴露: dubbo 远程暴露 – Netty 暴露服务 dubbo 远程暴露 – Zookeeper 连接 dubbo 远程暴露 – Zookeeper 注册 & 订阅 这就篇就是分...

dubbo源码分析7 -- 服务本地暴露

dubbo源码分析7 -- 服务本地暴露

在上一篇文章我们分析了一下 dubbo 在服务暴露发生了哪些事,今天我们就来分析一下整个服务暴露中的本地暴露。(PS:其实我感觉本地暴露蛮鸡肋的)。本地暴露需要服务提供方与服务消费方在同一个 JVM。下面我们来写一个本地暴露使用的例子: 1) DemoService.java 12345public interface DemoService { String sayHello(String name);} 2) DemoServiceI...

dubbo源码分析6 -- 服务暴露概述

dubbo源码分析6 -- 服务暴露概述

dubbo的服务模型是非常简单的,要么是服务提供方(Provider)提供服务,要么是服务消费方(Consumer)消费服务,从dubbo官网的系统架构图就可以看出来。 Provider与Consumer通过Registry来解耦合,这一点和Spring有点相似。在Spring中它的核心领域模型是Bean.我们通过配置bean,然后Spring容器获取到需要的对象。不需要关心对象的创建过程,并且我们可以在Spring的Bean的生命周期过程来来定制化对象。在使用dubb...

dubbo源码分析5 -- SPI 分析

dubbo源码分析5 -- SPI 分析

如果大家看过之前的 dubbo 内核 SPI 实现 – 2.dubbo源码分析 之 内核SPI实现, 有可能还是一头雾水,下面我讲一下dubbo的具体应用。最典型的应用就是 Protocol 接口。 Protocol 属于 dubbo 十层结构 中的远程调用层, 它封装了RPC调用。以Invocation 和 Result 为中心, 其它的扩展接口还包括 Invoker 和 Exporter。 Protocol 是服务域, 它是 Invoker 暴露和引用的主功能入口,...

Java AES 加密算法

Java AES 加密算法

Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京工业大学的数学和计算机科学系的 Shigeru Chiba (千叶 滋)所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态”AOP”框架。 关于java字节码的处理,目前有很多工具,如bcel,asm。不过这些都需要直接跟虚拟机指令打交道。如果你不想了解虚拟机指令,可以采用javassist。javassist是jboss的一个子...

Java AES 加密算法

Java AES 加密算法

转载地址:JAVA版AES加密算法 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密...

Jdk8 Optional 的正确姿势

转载地址:jdk8 Optional 的正确姿势 我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了. 1234567891011Optional<User> user = ......if (user.isPresent()) { return user.getOrders();&#...