美文网首页程序员
分布式系统的远程服务

分布式系统的远程服务

作者: Real_man | 来源:发表于2018-12-12 19:12 被阅读9次

如果项目拆分为分布式系统,那么服务的生产者和消费者是不可少的,然后远程服务这块的技术点也是少不了的。

image

服务之间的调用可以采用不同的协议,TCP,UDP,HTTP,Hession,Protobuf等。每一种协议都有自己的特点HTTP用起来更简单,TCP用起来性能更好。

服务注册

注册中心也有很多选项,Zookeeper,etcd,Consul。ZooKeeper属于老牌的知名度很高的一个分布式协调组件,ectd是近些年新兴的基于REST风格的配置中心,ectd更简单。Consul的话配置起来也很简单,并且提供了健康检查和多数据中心。还是每种软件都有自己的优缺点,如果感兴趣需要我们多做一些研究。

Consul提供了自己的Wweb-UI界面,只是比较简陋。一般公司注册服务的时候都会有自己的服务管理后台,可以在后台注册服务。

注册方式:

  • 表单提交,单个注册
  • 使用JSON批量注册
image

服务发现

服务发现一般是系统中的消费者处理,这个选项更多了,说一个例子。

如果采用的是Tomcat,在启动的时候可以配置ServletContextListener监听类,从服务注册中心拉取配置的远程服务,并且先缓存在本地。同时再注册中心的节点上添加监听器,当数据改变的时候,再次从节点获取数据更新本地的缓存。

数据一般存储在ConcurrentHashMap里面

    /**
     * 注册中心标准实现类,初始化
     */
    private static IRegisterCenter registerCenter = new RegisterCenterStandard();
    /**
     * 注册中心缓存对象
     */
    private final ConcurrentHashMap<String, String> registerCenterMap = new ConcurrentHashMap<String, String>();
    /**
     * 存放工程名-url映射
     */
    private final Map<String, String> projectUrlMap = new ConcurrentHashMap<String, String>();

调用远程服务的时候从拉取的配置获取值。远程服务的key有自己的规则,不同公司都可以定义自己的风格

key: 项目名.模块名.系统名.方法名

遵守一定的规则才行,有的时候系统可能在服务上又做了一层集群的话,可能还要处理一下集群之间的调度策略。

相关的开发,主要是规范比较重要。

最后

剩下的再做一下服务注册中心的监控。实时的连接数,收发包数,延迟,请求量,节点数,出现异常进行报警等。

这里主要对远程服务做了基本的介绍,分布式系统的构建都是一步步完成的,适合自己业务的才是好的。

内部用起来都是比较简单的,但除了用之外掌握其原理,才能早日实现升职加薪

参考

相关文章

  • Java B2B2C多用户商城 springcloud架构-sp

    在分布式环境下,特别是微服务结构的分布式系统中, 一个软件系统调用另外一个远程系统是非常普遍的。这种远程调用的被调...

  • Java B2B2C多用户商城 springcloud架构-sp

    在分布式环境下,特别是微服务结构的分布式系统中, 一个软件系统调用另外一个远程系统是非常普遍的。这种远程调用的被调...

  • 分布式事务相关解决方案

    什么事分布式事务 分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务...

  • 实操Redission 分布式服务

    9.1. 分布式远程服务(Remote Service) 基于Redis的Java分布式远程服务,可以用来通过共享...

  • 分布式系统中服务降级策略探究已经出炉了!!!

    在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是 A 系统调用 B 系统服务,B 系统调用 ...

  • 分布式系统中服务降级策略探究-chat

    在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是 A 系统调用 B 系统服务,B 系统调用 ...

  • #goCode#rpc简单实现

    什么是rpc RPC:Remote Procedure Call 远程过程调用,解决分布式系统中服务调用问题,能够...

  • Hystrix熔断机制原理剖析

    一、前言 在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是 A 系统调用 B 系统服务,B ...

  • 分布式系统的远程服务

    如果项目拆分为分布式系统,那么服务的生产者和消费者是不可少的,然后远程服务这块的技术点也是少不了的。 服务之间的调...

  • Hystrix 初识

    Netflix公司开源的Hystrix框架,对延迟和故障可以提供强大的容错能力,在分布式系统中对请求远程系统、服务...

网友评论

    本文标题:分布式系统的远程服务

    本文链接:https://www.haomeiwen.com/subject/uxwphqtx.html