发表于: 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,整合任务
启发
无
评论