Cat 客户端采用什么策略上报消息树
策略分类
目前搞清楚两种
第一种(蓝色):默认服务器列表中选一个,算法核心是根据应用名的哈希值取模。也就是说同一个应用始终打到同一台服务器上,如果这台服务器挂了,另选一台服务器。
第二种(红色):应用指定服务器列表。

处理逻辑:
第一步是找应用列表,先找应用指定的,没有的话,然后一堆判断,最后找默认的服务器列表

第二步,选出3台服务器,客户端上报用第一台,如果第一台失联,接着用第二台

思考
一个应用所有的流量打到一台Cat服务上,如果这个应用的流量特别大呢。。。
我们的实践是hashcode(应用名+ip),以分散流量,后续随着Cat服务器增加,还会考虑用分组来解决聚合的机器过多的问题。
Cat 客户端采用什么策略上报消息树的更多相关文章
- Cat 客户端如何构建调用链消息树
场景 & 代码 Inner0 中的某方法调用了 Inner1,代码 Inner1的代码很简单, Cat通过一个线程本地变量来保存调用链的相关信息,其中核心的数据结构是消息树和操作栈.消息树用来 ...
- 深入详解美团点评CAT跨语言服务监控(三)CAT客户端原理
cat客户端部分核心类 message目录下面有消息相关的部分接口 internal目录包含主要的CAT客户端内部实现类: io目录包含建立服务端连接.重连.消息队列监听.上报等io实现类: spi目 ...
- 怎么把CAT客户端的RootMessageId记录到每条日志中?
什么是RootMessageId? 为了理解RootMessageId先简单介绍一下CAT的数据结构设计.CAT客户端会将所有消息都封装为一个完整的消息树(MessageTree),消息树可能包括Tr ...
- 重温WCF之WCF传输安全(十三)(4)基于SSL的WCF对客户端采用证书验证(转)
转载地址:http://www.cnblogs.com/lxblog/archive/2012/09/20/2695397.html 前一篇我们演示了基于SSL的WCF 对客户端进行用户名和密码方式的 ...
- CAT客户端如何从Apollo中读取配置?
运行环境 以下就是这个示例的运行环境,如果版本号不一样,区别也应该不会很大,可以根据实际情况做相应调整. JDK 8 spring boot 2.0.7.RELEASE cat-client 3.0. ...
- 基于JDK6的JAX-WX为客户端提供XML与JSON格式数据服务,以及客户端采用AXIS调用案例
1:WebService服务端工程目录如下: 需要第三方jar包:gson-2.2.4.jar\javax.xml.bind.jar\commons-lang-2.5.jar 源码如下: packag ...
- WINDOWS 2008 采用IP策略解决445,139等病毒攻击问题
@echo off title 创建IP安全策略,屏蔽135.. . . . 等端口 :: 配置说明文档地址 :: http://blog.csdn.net/lpc_china/article/det ...
- winform 客户端采用HTTP协议与服务端通信
本来从来没有仔细研究过Http协议,今天因为公司业务需求,调试了半天,终于现在会Winform用Http协议与服务端通信了,其中常用的有POST和Get方式: 仔细看了人人网和新浪等大部分都是采用GE ...
- 【转】C# client 与java netty 服务端的简单通信,客户端采用Unity
http://blog.csdn.net/wilsonke/article/details/24721057 近日根据官方提供的通信例子自己写了一个关于Unity(C#)和后台通信的类,拿出来和大家分 ...
随机推荐
- 编写带对话框界面的OCX
编写带对话框界面的OCX步骤: 1.添加Dialog资源,切换到资源视图,将对话框的Style设置为Child,在对话框界面右击添加类,输入类名MyDlg,使得其继承与CDialogEx.(继承CDi ...
- 计算生日是星期几-soj
编写一个程序,只要输入年月日,就能回答那天是星期几. 输入一个日期,包括年.月.日.(一组测试数据) 输出这个日期是星期几. 输入: 1 1 1 2 1 1 2006 7 10 输出: Monday ...
- selenium基本操作
#coding=utf-8from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selen ...
- 基于文本图形(ncurses)的文本搜索工具 ncgrep
背景 作为一个VIM党,日常工作开发中,会经常利用grep进行关键词搜索,以快速定位到文件.如图: 利用grep进行文本搜索 但是,这一过程会有两个效率问题: 展示的结果无法进行直接交互,需要手动粘贴 ...
- 如何清除PHP中不需要的Layout模板
最简单的办法就是在需要清除的静态页的最前端加上 {__NOLAYOUT__} 就可以清除所有的layout效果, 继而设置自己的css.js效果.
- 《Linux命令行与shell脚本编程大全》第二十六章 一些有意思的脚本
26.1 发送消息 26.1.1 功能分析 1.确定系统中都有谁 $who 给出的信息包括用户名 用户所在终端 用户登入系统的时间 2.启用消息功能 用户可以禁止别人给我发消息,所以需要先检查一下是否 ...
- CCF-201412-2-Z字形扫描
问题描述 试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zi ...
- Lonlife 1000 - Spoon Devil's 3-D Matrix
1000 - Spoon Devil's 3-D Matrix Time Limit:1s Memory Limit:32MByte Submissions:208Solved:65 DESCRIPT ...
- NGUI_Input
九.输入框Input 1.凡是用户可以输入文本的地方,几乎都用输入框,有登录账号和密码.输入角色名称.输入聊天内容 2.手动拼接输入框,拖动预制体的就不再说了 (1).创建一个Sprite作为输入框的 ...
- C++、Objective-C 混合编程
在XCODE中想使用C++代码,你须要把文件的扩展名从.m改成.mm.这样才会启动g++编译器. 我们来看个測试代码: [java] view plaincopy class TestC { priv ...