标签:main函数 分配 的区别 原因 dba 特点 tomcat部署 没有 依赖
dubbo的介绍
一。前引
软件构架的发展过程:
集中式架构(单体应用)---》垂直架构---》分布式架构---》流动计算架构(SOA)
集中式架构:就一个tomcat,所有功能部署在一起。。不能高并发
垂直架构:多个tomcat, 分成多个项目,项目与项目之间的存在数据冗余,耦合性较大
分布式架构:多个tomcat,将核心公共通用的业务抽取出来,作为独立的服务
分布式以后,web层和业务层分开成两个项目(不同的tomcat)
分布式架构最主要的特点就是远程调用
调用关系错综复杂
流动计算(SOA)架构:在分布式计算架构下,添加了监控中心与注册中心。
二。Dubbo
1.概念:Dubbo可以实现基于SOA架构的软件设计,是一种架构,是一款高性能的Java RPC框架。
Dubbo是可以和Spring框架无缝集成
Dubbo作为一个RPC框架,其最核心的功能就是要实现跨网络的远程调用
dubbo协议高效的原因:单一长连接和NIO异常通讯
与http协议的区别就是更加高效
2.图形原理:
3.Dubbo架构设计的元素:服务提供方,服务消费方,注册中心,监控中心,抽取出的公共业务
3.1注册中心:
存储的是 提供方提供的自己地址字符串。
注册中心是依靠Zookeeper(简称zk)树型目录服务。分为两种,一种是linux版本的,一种是windows版本的
对于windows版,直接D:\Astudy\软件语言\Java\java就业班\项目一\07.saax-export_day07\03.资料和工具\01 zookeeper\windows版zookeeper\zookeeper-3.4.6\bin 点击zkServer.cmd
对于linux版,把D:\Astudy\软件语言\Java\java就业班\项目一\07.saax-export_day07\03.资料和工具\01 zookeeper\linux版zookeeper下的压缩包拖入linux虚拟机
3.2服务提供方
相当于service层,
所以要有对应seviece接口和实现类
添加依赖,编写dubbo-provider.xml,编写web.xml用来监控dubbo-provider.xml
注意在实现类上加@Service(阿里巴巴的),这个注解是用来生成实现类的动态代理),这个注解是用来生成实现类的动态代理
而在springmvc用的@Service是从ioc容器里面取出的
日志配置文件放进去
部署tomcat的时候,记得改端口号,防止和8080相撞
运行tomcat,不报错就是正常
3.3服务消费方
相当于web层
添加依赖,编写dubbo-consumer.xml,编写web.xml去连接dubbo-consumer.xml
只需要编写和service层一样包结构的接口
配置控制器,控制器里面使用@Reference去引入service项目的服务接口
tomcat部署改端口号,在运行
3.4抽取出的公共业务
就是接口,抽取出来,包结构要一样
所以service是剩下实现了,web剩下控制器
3.5 监控中心 一般是给运维团队用
扩展:
1.我们测试的时候,可以用main函数启动服务
2.为集群的服务器分配请求的算法是负载均衡
负载均衡:random(随机,默认), roundrobin(轮询), leastactive(最少活跃调用数)
配置负载均衡策略,既可以在服务提供者一方配置,也可以在服务消费者一方配置
//在服务消费者一方配置负载均衡策略
@Reference(check = false,loadbalance = "random")
//在服务提供者一方配置负载均衡
@Service(interfaceClass = HelloService.class,loadbalance = "random")
3.Dubbo服务调用超时时间
原因:dubbo服务调用时间默认为1秒,且超过指定的时间调用服务还没有结束的话就自动重试2次。
解决:在提供方或者消费方一方就行修改就行
//在提供方,@Service(timeout=10000)
//在消费方,@Reference(timeout=10000)
标签:main函数 分配 的区别 原因 dba 特点 tomcat部署 没有 依赖
原文地址:https://www.cnblogs.com/lanto/p/13226953.html