dubbo

一个服务通常分两个模块=实现功能的模块+对外提供接口以供调用的share(api)
  • 对外share的模块 发布maven的远程私服上
    其他服务需要调用就在pom中引入这个share dependecy进行接口调用
  • 现实公司都会自己创建一套公共所有接口 使用的response类
    属性包含 接口返回data 错误码 错误原因 业务是否处理成功等
@FeignClient(name="myApplication",url="${myApplication-share}")
public interface myApplicationApi{
  @RequestMapping(path="/workApi/add",method=RequestMethod.POST)
 public @ResponseBody   MyResponse<addDTO>  add(@RequestBody AddDTO addDTO);
  
  @RequestMapping(path="/workApi/delete",method=RequestMethod.POST)
  public @ResponseBody MyResponse<deleteDTO> delete(@RequestBody DeleteDTO deleteDTO);
  
}

其他服务就可以引入share进行接口调用
真正实现功能的服务也需要引入这个depedency 进行接口的实现

服务治理–DUBBO的进化

服务之间通过RPC调用然而不止需要RPC 也需要服务之间的治理

一对一的服务调用 融合rpc框架dubbo 只需在配置文件(或注解)写明对应关系

服务提供者声明自身名字
使用的dubbo的端口 协议
写明 借由dubbo这个框架要向外提供的接口 @Service


服务调用者 写明自身应用名字 和 获取指定的远程服务代理对象 @Reference(url=“dubbo://192.168.12.1:28080/com.guigu.chat.IHelloService”)

多个服务调用 dubbo+zookeeper

无需指定 提供者和消费者一一对应关系 只需在彼此之间配置相同的服务注册中心地址即可
dubbo注册到zookeeper上

dubbo.register.adress=zookeeper://192.168.12.106:2181
为什么使用zookeeper

zookeeper拥有以下特点 便于实现注册中心的功能
有临时节点、持久化节点、有序节点、容器节点、TTL节点
watcher机制

介绍下几种机制
微服务治理最需要做到 感知服务上下线 负载均衡

  • 允许宕机 临时节点 (与客户端会话同生命期限) 服务宕机 或者 下线 就会删除这个节点 符合现实场景
  • 因为是类似分布式文件的系统 每一个目录下只允许有一个同名的文件节点
    排他性 分布式锁保证
  • 持久化节点 会有一些节点 比如service接口提供节点 会持久化在磁盘
  • 主从机制依附于 zookeeper中的有序临时节点
    有序节点 创建节点后面增加一个递增的序列 这个序列在同一级的父节点之下也是唯一的
    当有序的序列 前面节点删除了 下面节点监听在同一序列下比他小的节点 发现删除 再次争夺主从
  • 动态监控 watcher zookeeper提供订阅znode的功能 getData() getChildern() exits()
    监听、注册当前结点子节点的状态 如果增加 修改 删除 了 那就进行一个同步的更新
    如果发现不再变化了 就是收不到这个node的消息了 客户端可以在收到事件同步之后 回调一个注册事件的消息
融合springcloud 一体化的dubbo (RPC+服务治理)框架

和dubbo+zookeeper几乎一样 唯一区别就是配置文件上关于zookeeper的前面标识有些区别spring.cloud.zookeerper.connect-string
而且可以配置是否订阅zookeeper
spring.cloud.zookeerper.discovery.register=trew/false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值