Motan源码阅读--工程概述

工程概述

Motan框架采用模块化设计,使用按需加载,模块有:

  • motan-core:motan核心框架
  • motan-transport-netty:基于Netty协议的长链接传输协议
  • motan-registry-consul:consul服务发现组件
  • motan-registry-zookeeper:zk服务发现组件
  • motan-springsupport:spring标签解析相关组件

默认配置

protocol协议默认为motan,基于hessian2实现。

负载均衡默认为activeWeight,低并发度优先,refer的某个时刻call的数量越小优先级越高。

容错策略默认为failover,失败自动切换,当出现失败,重试其他服务器。 Failfast快速失败,只发起一次调用,失败立即报错。

配置服务端工作线程数。 配置客户端为每个服务建立的连接数。

注册中心motan:registry

包含以下属性:

  • Name:标识配置名称;
  • regProtocol:标识注册中心协议
  • Address:标识注册中心地址

服务提供方motan:service

常用属性:

  • Interface:标识服务的接口类名
  • Ref:标识服务的实现类,引用具体的spring业务实现对象
  • Export:标识服务的暴露方式,格式为“protocolId:port”,其中protocolId:应对motan:protocol中的id
  • Group:标识服务的分组
  • Module:标识模块信息
  • basicService:标识使用基本配置

Motan在注册中心的服务以group形式保存的,一般推荐一个分组以机房+业务线进行命名,如rf-user-rpc。


调用方motan:referer

常用属性:

  • Id:标识配置项
  • Group:标识服务分组
  • Module:标识模块信息
  • protocol:标识referer使用的协议
  • registry:标识referer的注册中心
  • basicReferer:标识使用的基本配置

优雅停机

Motan支持consul,zk集群环境下优雅关闭节点,当需要关闭或重启节点时,可以先将待上线节点从集群摘除,避免直接关闭影响正常请求。

管理后台

后台包括RPC服务查询,流量切换,Motan指令设置等功能,需使用zk作为注册中心。

原文发布于微信公众号 - 服务端技术杂谈(develop_king)

原文发表时间:2018-08-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Seebug漏洞平台

GitLab 任意文件读取漏洞 (CVE-2016-9086) 和任意用户 token 泄露漏洞

Author:dawu,LG(知道创宇404安全实验室) Data:2016-10-09 0x00 漏洞概述 1.漏洞简介 GitLab 是一个利用Ruby o...

45270
来自专栏程序员的碎碎念

php调用美图秀秀插件上传头像

登录美图秀秀WEB开放平台(http://open.web.meitu.com/wiki/), 1.1、设置crossdomain.xml 下载cros...

49850
来自专栏技术记录

解决openssh漏洞,升级openssh版本

关于解决漏洞的问题我就不详说了,主要就是升级版本。这里我们就直接简单记录下步骤: 1、升级 使用root用户登录系统进入到/home/guankong ,上传o...

67280
来自专栏Angular&服务

homebrew 安装指定版本gradle(软件)安装源软件版本切换

可以看到,我这里是已经安装了 gradle 4.9 版本,第一行显示了 brew 使用的 bottled 里的 gradle 为 4.9 版本,在第 4 行中有...

53520
来自专栏王磊的博客

Ubuntu 18.04.1 搭建Java环境和HelloWorld

官网地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

18420
来自专栏鸿的学习笔记

日志采集技术笔记

使用Linux的rename机制保证文件写入要么成功,要么失败,绝对不能出现写了一半的情况。

44250
来自专栏程序小工

【Linux】系统学习Crontab定时任务

crontab 是一个用于设置周期性执行任务的工具。目前服务器端的运行环境大多数为 Linux,在日常的运营和维护中会有很多需要定期执行的操作,其中有些操作是可...

20620
来自专栏Java3y

Linux进程管理

每个用户均可同时运行多个程序。为了区分每一个运行的程序,Linux给每个进程都做了标识,称为进程号(process ID),每个进程的进程号是唯一的。

43800
来自专栏程序员叨叨叨

一招搞定Windows无法安装到GPT分区形式磁盘疑难

今天给堂弟的电脑重装系统时,遇到了以往USB安装系统经常出现的问题,“Windows无法安装到这个磁盘。选中的磁盘采用GPT分区形式”。之前在CSDN的博客上有...

8320
来自专栏IT笔记

JavaWeb项目架构之NFS文件服务器

当用户A通过互联网上传文件时,经过负载均衡,随机或者定向分配到某个节点。但是当用户B去下载这个文件的时候,并不确定会向哪个节点发送请求,这样会导致用户存在一定几...

57090

扫码关注云+社区

领取腾讯云代金券