发表于: 2019-10-19 22:32:26

1 1040


今日完成

基本是概念性东西

1.SOA架构

SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式

主要实现就是将传统项目中的一个一个模块拆分成一个一个项目.这样可以降低模块间代码的耦合度,利于扩展,利于维护

2.dubbo框架

2.1简介

1.rpc协议

跨服务器, 跨tomcat, 从一个项目, 调用另一个项目中的方法

2.dubbo作用

跨项目调用方法, 例如从A项目中的controller调用B项目中的service方法

3.dubbo使用方法

1.service实现类上写@Service注解, 注意这个@service注解不是spring包的是阿里的dubbo包下的

2.controller注入的时候使用@Refrence注解来进行注入, 也是阿里dubbo包下面的

3.如果controller和service之间传输pojo实体类, 那么实体类必须实现Java的序列化接口

2.2dubbo原理

1.流程图

2.节点角色说明

Registry: 服务注册与发现的注册中心(相当于中间),是一个软件(Zookeeper)

Provider: 暴露服务的服务提供方

Consumer: 调用远程服务的服务消费方

Monitor: 统计服务的调用次调和调用时间的监控中心

Container: 服务运行容器

3.调用关系说明

0. 服务容器负责启动,加载,运行服务提供者

1. 服务提供者在启动时,向注册中心注册自己提供的服务(包括把ip地址报给注册中心)

2. 服务消费者在启动时,向注册中心订阅自己所需的服务(知道ip地址)

3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者

4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用

5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

4.Dubbox本地 JAR包部署与安装

mvn install:install-file -Dfile=d:\setup\dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar

2.3注意点

1.如果controller先启动,service还没启动,会报错

2.Controller添加dubbo的jar包,service添加dubbo的jar包

3.Controller调用service底层使用的是dubbo协议,dubbo底层使用的是rpc协议

2.4注册中心Zookeeper

注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小

官方推荐使用 zookeeper 注册中心,Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbox 服务的注册中心,工业强度较高,可用于生产环境


碰到问题


明日计划

跑个demo,整合任务


启发


返回列表 返回列表
评论

    分享到