目录
一、分布式简介
一、分布式应用
在分布式系统中,国内常用zookeeper+dubbo组合,而spring boot推荐使用全栈的spring,spring boot+spring cloud。
二、zookeeper和dubbo
zookeeper:是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、主服务等。
Dubbo:是alibaba开源的分布式服务框架(远程rpc调用框架),他最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦(或者最大限度地松耦合)。从服务模型的角度来看,dubbo采用的是一种非常简单的模型,要么提供方提供服务,要么是消息方消息服务,所以基于这一点可以抽象出服务提供方和服务消费方两个角色。
Dubbo的架构图
二、安装zookeeper
三、整合zookeeper和dubbo使用
创建一个消费者项目
创建一个接口
实现接口
创建另外一个提供者项目
将服务提供者注册到注册中心
引入dubbo相关依赖
引入zookeeper依赖
配置zookeeper
zookeeper的ip和端口
扫描的包路径
添加注解@service,而且该注解是使用dubbo包下的
回到消费者,调用提供者发布到zookeeper的service
同样引入dubbo和zookeeper的jar包
配置相关参数
从提供这项目中那一份路径一模一样的service接口过来
在消费者项目中远程从zookeeper注册中心调用service的实现
测试调用
四、spring Cloud
spring cloud是一个分布式的整体解决方案,spring cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局锁,leader选举,分布式session,集群状态)中快速构建的工具,使用spring cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接
springcloud分布式开发五大常用组件
服务发现-Netflix Eureka
客服端负载均衡-Netflix Ribbon
断路器-Netflix Hystrix
服务网关-Netflix Zuul
分布式配置-spring cloud config
项目 测试
创建注册中心eureka-server
创建项目provider-ticket
创建项目consumer-user
注册中心eureka-server的配置文件
开启eureka注解
运行启动
项目provider-ticket
创建service层
创建controller层
配置文件
启动服务
连接注册中心的ticket请求能够访问
访问注册中心,可以看到8001端口被注册进来了
打两个jar,端口分别为8001、8002
运行
项目consumer-user
修改配置类
开启注解发现服务
从远程注册中心中,获取ticket名
运行
负载均衡:在8001和8002分别均衡访问