CAT埋点实战-服务器搭建-代码实现

可先了解理论知识

1、点评Cat报表、消息类型简介

2、CAT客户端架构设计

3、CAT服务端设计

4、CAT埋点实战

本文测试代码git地址:https://gitee.com/carpentor/framework-cat.git

服务搭建

1、下载源码mvn clean install -DskipTests,如果编译报错直接下载:http://unidal.org/nexus/service/local/repositories/releases/content/com/dianping/cat/cat-home/3.0.0/cat-home-3.0.0.war

2、mysql新建库名:cat;执行源码目录sql:script/CatApplication.sql

3、在tomcat所在磁盘新建目录:\data\appdatas\cat

4、在目录下放下图两个文件,相关文件在git代码根目录\data\appdatas\cat

5、对程序运行盘下的/data/appdatas/cat和/data/applogs/cat有读写权限。例如cat服务运行在e盘的tomcat中,则需要对e:/data/appdatas/cat和e:/data/applogs/cat有读写权限。

6、将war包重命名为:cat.war然后放tomcat启动

文件解释:

        1、client.xml:配置cat服务端地址端口,服务端也配置了该文件主要意义是把自身当成一个客户端进行监控--客户端服务端都需要配置2280是cat内部使用端口

<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
        <server ip="10.1.1.1" port="2280" http-port="8080"/>
        <server ip="10.1.1.2" port="2280" http-port="8080"/>
        <server ip="10.1.1.3" port="2280" http-port="8080"/>
    </servers>
</config>

2、datasources.xml:配置cat的数据源相关--每个cat服务端都需要配置

启动tomca访问http://127.0.0.1:8080/cat/s/config?op=routerConfigUpdate

进行客户端路由配置

注意:

        1、图中ip要改为cat服务端内网ip否则当你访问就会如下图

       2、如果cat服务端集群配置可参考如下

<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="10.1.1.1" backup-server-port="2280">
   <default-server id="10.1.1.1" weight="1.0" port="2280" enable="false"/>
   <default-server id="10.1.1.2" weight="1.0" port="2280" enable="true"/>
   <default-server id="10.1.1.3" weight="1.0" port="2280" enable="true"/>
   <network-policy id="default" title="default" block="false" server-group="default_group">
   </network-policy>
   <server-group id="default_group" title="default-group">
      <group-server id="10.1.1.2"/>
      <group-server id="10.1.1.3"/>
   </server-group>
   <domain id="cat">
      <group id="default">
         <server id="10.1.1.2" port="2280" weight="1.0"/>
         <server id="10.1.1.3" port="2280" weight="1.0"/>
      </group>
   </domain>
</router-config>

配置完后重启cat服务即可使用 

项目埋点

本次埋点是抽取公共包cat-http-common,业务项目引用公共包,只要在业务代码启动类上加@EnableCat注解即可

项目是基于http埋点,包含restTemplate

架子如图:

调用顺序:cat-zuul-->cat-http-->cat-http2; 

先后启用cat-zuul,cat-http,cat-http2,然后post访问:http://localhost:8003/cat-http/cat-http1

附上几张图自己体会

1、

2=====点击Log view

源码

cat-zuul里新增过滤器,调用端入口调用Cat.logRemoteCallClient(ctx);将message_id放入hander

 被调用者过滤器解析header里的message_id发送cat:Cat.logRemoteCallServer(catContext);

 详细代码git地址:https://gitee.com/carpentor/framework-cat.git

公众号主要记录各种源码、面试题、微服务技术栈,帮忙关注一波,非常感谢

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是使用docker-compose搭建ES集群的步骤: 1. 首先,在你的机器上安装Docker和Docker Compose。 2. 创建一个新的文件夹,用于存储docker-compose.yml文件和ES配置文件。 3. 在该文件夹中创建一个名为docker-compose.yml的文件,并将以下内容复制到文件中: ``` version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1 container_name: elasticsearch environment: - node.name=es-node1 - cluster.name=es-docker-cluster - discovery.seed_hosts=es-node1,es-node2,es-node3 - cluster.initial_master_nodes=es-node1,es-node2,es-node3 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata1:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - esnet elasticsearch2: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1 container_name: elasticsearch2 environment: - node.name=es-node2 - cluster.name=es-docker-cluster - discovery.seed_hosts=es-node1,es-node2,es-node3 - cluster.initial_master_nodes=es-node1,es-node2,es-node3 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata2:/usr/share/elasticsearch/data networks: - esnet elasticsearch3: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1 container_name: elasticsearch3 environment: - node.name=es-node3 - cluster.name=es-docker-cluster - discovery.seed_hosts=es-node1,es-node2,es-node3 - cluster.initial_master_nodes=es-node1,es-node2,es-node3 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata3:/usr/share/elasticsearch/data networks: - esnet volumes: esdata1: driver: local esdata2: driver: local esdata3: driver: local networks: esnet: ``` 这个文件定义了三个ES节点,每个节点都有自己的容器,并且它们都属于同一个网络。 4. 创建一个名为elasticsearch.yml的文件,并将以下内容复制到文件中: ``` cluster.name: "es-docker-cluster" network.host: 0.0.0.0 discovery.seed_hosts: elasticsearch,elasticsearch2,elasticsearch3 cluster.initial_master_nodes: elasticsearch,elasticsearch2,elasticsearch3 ``` 这个文件定义了ES节点的配置信息。 5. 运行以下命令启动ES集群: ``` docker-compose up -d ``` 这个命令将启动三个ES节点,并在后台运行它们。 6. 等待片刻,然后运行以下命令来查看ES集群的状态: ``` curl http://localhost:9200/_cat/nodes?v ``` 如果一切正常,你应该能够看到三个节点的状态信息。 这样,一个使用docker-compose搭建的ES集群就创建完成了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值