dubbo微服务组件 dubbo实现微服务_java

 

dubbo微服务组件 dubbo实现微服务_微服务_02

 

dubbo微服务组件 dubbo实现微服务_类名_03

 

dubbo微服务组件 dubbo实现微服务_类名_04

dubbo微服务组件 dubbo实现微服务_microservices_05

 

dubbo微服务组件 dubbo实现微服务_java_06

 

dubbo微服务组件 dubbo实现微服务_微服务_07

 1.微服务架构

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_08

 

dubbo微服务组件 dubbo实现微服务_microservices_09

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_10

 进程级别的隔离

将整个项目分为不同的服务,每一个服务都是一个应用程序,都可以独立运行,按照单一职责实现特定功能,因此具有一些优点1插拔式2容易维护,3CI/CD4.容错 

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_11

 

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_12

API网关

客户端 --> 后端应用

 

dubbo微服务组件 dubbo实现微服务_类名_13

CDN:Content Delivery Network 静态资源 ,内容分发网络

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_14

 对外揭露请求,对内路由

2.Dubbo

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_15

 从一个运行的进程中调用另一个进程里的方法

dubbo微服务组件 dubbo实现微服务_类名_16

 去这取得接口实现类

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_17

 Dubbo原理

提供者启动spring容器

容器中:1.实现了真正对外暴露的接口功能的对象

            2.供外界调用的服务对象

dubbo微服务组件 dubbo实现微服务_java_18

端口,与协议

dubbo微服务组件 dubbo实现微服务_java_19

服务端:socket发送请求

是如何调用到方法:(通过暴露的全限定类名为key找到实现类value,通过url发送socket(动态代理,接收到返回值)从而远程调用)

提供者:实现类加入容器,提交给服务,协议端口()(提交给服务,接口和实现类)  (在boot中这会接口与实现类会被Service注解代替,填写的就是端口号协议以及注册中心了)

BOOT:提供者:1.注解(service)2.配置文件(提供)

消费者:1.注解 2.配置文件

消费者:把接口(来自依赖)加入容器:reference标签,接口,端口号和协议,所以从容器拿出来就知道是dubbo的,之后调用方法,执行的时候就是动态代理(告诉容器实现类的来源,来自dubbo)

提供者中有一个Map<String,服务对象>

Key:接口的全类名,  ->服务对象   服务对象是实现了接口的对象

消费者中也有一个spring容器:

1.服务引用对象(DemoService)

一个代理对象(远程代理promoProxy什么的,传过去全限定类名和参数,对方接收解析之后,从Map里的全限定类名,从容器中取得这个类,之后执行方法返回返回值dubbo协议)

当代理对象(代理对象实现了同样的接口JDK远程动态代理)被调用时,说明用户想调用DemoService接口的功能

当对应方法被调用的时候,就表明了调用的对应方法

dubbo微服务组件 dubbo实现微服务_java_20

dubbo微服务组件 dubbo实现微服务_微服务_21

dubbo微服务组件 dubbo实现微服务_java_22

(思考一下两个容器的问题)没什么问题,一个是装着接口,然后reference指向治理中心的实现类

一个容器就是提供给治理中心的 

考虑提供者的集群模式

引入服务注册中心

配置文件:去掉url

dubbo微服务组件 dubbo实现微服务_microservices_23

服务的注册与自动发现;

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_24

SpringBoot

dubbo微服务组件 dubbo实现微服务_类名_25

 

dubbo微服务组件 dubbo实现微服务_java_26

 

dubbo微服务组件 dubbo实现微服务_类名_27

 负载均衡策略

dubbo微服务组件 dubbo实现微服务_microservices_28

 在消费者中设置负载均衡策略

dubbo微服务组件 dubbo实现微服务_microservices_29

 

dubbo微服务组件 dubbo实现微服务_微服务_30

 

dubbo微服务组件 dubbo实现微服务_microservices_31

单体架构的优点: 功能简单,快速构建

单体架构的弊端: 耦合复杂,业务发展,业务复杂

====>微服务架构: 功能特征:单一职责 运行特征: 独立运行部署对外服务  

                              模块化角度对比区别 :微服务架构下的模块化,模块之间调用需要特殊手段(减少的耦合),模块化之间存在了清晰的边界

                               什么是微服务架构:将原本的单体应用拆分为服务的架构风格

                               微服务架构的优缺点: 

                               微服务项目的架构图->API网关(对外接受请求,对内实现请求路由),CDN

                               落地微服务项目所面临的问题: 服务的调用 , 服务的治理 ==>引出了Dubbo框架  

RPC实现原理 b.服务注册中心 

                               -->Dubbo与SpringBoot整合 a.@Service注解 与@Reference注解 b.服务提供者集群 ->服务调用的负载均衡问题(Reference注解中设置

dubbo微服务组件 dubbo实现微服务_dubbo微服务组件_32

)