分布式应用
- 在分布式系统中,罕用zookeeper+dubbo组合
SpringBoot举荐应用全栈的Spring,SpringBoot+SpringCloud
Zookeeper+Dubbo
Zookeeper
Zookeeper:(注册核心)
- 是一个分布式,开源的分布式应用程序协调服务
为分布式应用提供一致性服务的软件:
- 配置保护
- 域名服务
- 分布式同步
组服务
Dubbo
Dubbo是Alibaba开源分布式框架
- 最大的特点是依照分层的形式架构,应用这种形式使各层之间解耦合(最大限度地松耦合)
- 从服务模型角度看,Dubbo采纳简略的模型:要么是提供方提供服务,要么是生产方生产服务
形象出提供方(Provider) 和服务生产方(Consumer) 两个角色
Dubbo的应用:Provider:1.引入dubbo-spring-boot-starter依赖2.引入zookeeper的客户端工具zkclient依赖3.配置application.properties中duboo的相干属性: dubbo.application.name=provider-ticket dubbo.regestry.address=zookeeper://localhost:2181 dubbo.scan.base-packages=com.web.ticket.service4.在实现类上标注@Service注解(com.alibaba.dubbo.config.annotation),将服务公布进来.并且将类增加到容器中@ComponentConsumer:1.引入dubbo-spring-boot-starter依赖2.引入zookeeper的客户端工具zkclient依赖3.配置application.properties中duboo的相干属性: dubbo.application.name=provider-ticket dubbo.regestry.address=zookeeper://localhost:21814.创立和Provider完全相同的接口目录构造:com.web.ticket.service.TicketService5.创立service类,在service类中通过标注@Reference注解引入TicketService
SpringBoot+SpringCloud
SpringCloud
SpringCloud:
- SpringCloud是分布式的整体解决框架
SpringCloud提供了在分布式系统中疾速构建的工具:
- 配置管理
- 服务发现
- 熔断
- 路由
- 微代理
- 管制总线
- 一次性token
- 全局锁
- leader选举
- 分布式session
- 集群状态
- SpringCloud能够疾速的启动服务或构建利用,同时可能疾速和云平台资源进行对接
SpringCloud分布式开发组件:
- 服务发现: Eureka
- 客户端负载平衡: Ribbon
- 断路器: Hystrix
- 服务网关: Zuul
分布式配置: SpringCloud Config
Eureka-Server:1.创立Eureka注册核心Cloud Discovery-Eureka Server2.配置文件:server.port=8761 eureka.instance.hostname=eureka-server eureka.client.registry-with-eureka=false(不将本人注册到Eureka上) eureka.client.fetch-registry=false(不从Eureka上获取服务的注册信息) eureka.client.service-url.defaultZone=http://localhost:8761/eureka/3.在注册核心主类上标注@EnableEurekaServer注解启动Eureka注册服务Provider(同一个利用能够在注册核心注册多个)1.创立提供者CloudDiscovery-Eureka Discovery2.创立service办法,创立controller层通过Http服务申请进行通信(SpringCloud整合微服务是通过轻量级Http进行服务通信)3.配置文件:server.port=8001 spring.application.name=provide-ticket eureka.instance.prefer-ip-address=true(注册服务的时候应用服务的IP地址) eureka.instance.eureka.client.service-url.defaultZone=http://localhost:8761/eureka/4.在主类上标注@EnableEurekaClient注解将服务提供者(Provider)服务注册到注册核心Consumer1.创立消费者CloudDiscovery-Eureka Discovery2.创立controller层通过Http服务申请进行通信3.配置文件:spring.application.name=consumer-user server-port=8200 eureka.instance.prefer-ip-address=true(注册服务的时候应用服务的IP地址) eureka.instance.eureka.client.service-url.defaultZone=http://localhost:8761/eureka/4.在主类上标注@EnableEurekaClient(@EnableDiscoveryClient)注解开启发现服务性能5.创立RestTemplate并标注@Bean增加办法创立Http服务进行通信,标注@LoadBalanced注解启用负载平衡机制