简介
Dubbo是什么?
dubbo是阿里开源的分布式服务治理框架,对服务的负载均衡,权重,监控,路由规则,禁用启用的管理,以及服务的自动注册和发现
分布式架构下面临问题
在分布式架构下,我们会将一个系统拆分各个子系统,子系统和传统的Service层,拆分为服务层(对外提供服务)和Controller层(接收请求,交给对应的服务处理)
优点:
1.各个子系统之间的交互不要再开发额外的接口 都是依赖服务
2.对于压力比较大的服务可以做负载均衡
缺点:
1.因为都是依赖服务,子系统之间调用服务都是静态的如:htttpRequset.post("服务地址",参数)。导致大量的模版代码对业务的侵入
2.不知道服务的调用情况(调用次数,响应时间,是否异常)。不知道服务被哪些地方调用了(子系统之间相互调用,错综复杂)带来维护难度
3.无法单独对服务进行管理
Dubbo解决问题
业务代码侵入
dubbo Provider会将服务信息注册到注册中心(zookeeper/redis)
dubbo Consumer 从注册中心订阅服务(服务地址 服务url 服务返回类型)基于动态代理生成代理类并注入到spring 容器(解决大量模版代码对业务的侵入)
对服务的治理
使用dubbo-admin 可以对服务进行权重 路由 负载均衡 禁用/启用 进行管理
对服务监控
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
使用dubbo-monitor 可以对服务的调用次数调用时间进行检测
zookeeper安装
参考:https://www.cnblogs.com/LQBlog/p/9354464.html
dubbo-admin安装
1.从github下载dubbo-admin项目
https://github.com/apache/incubator-dubbo-ops/
也可以使用idea git客户端直接clone
2.导入到idea
3.进入dubboadmin项目 修改application.properties文件
dubbo-admin\src\main\resources\application.properties
#
server.port=7001
spring.velocity.cache=false
spring.velocity.charset=UTF-8
spring.velocity.layout-url=/templates/default.vm
spring.messages.fallback-to-system-locale=false
spring.messages.basename=i18n/message
spring.root.password=root
spring.guest.password=guest
dubbo.registry.address=zookeeper://192.168.65.128:2181?backup=192.168.65.128:2182,192.168.65.128:2183
zookeeper改为自己电脑安装的
4.启动dubboadmin输入账号密码root/root
因为新版的dubbo-admin是基于spring-boot 所以可以直接运行DubboAdminApplication看效果