码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Taurus.MVC 微服务框架 入门开发教程:项目部署:7、微服务节点的监控与告警。


    系统目录:

    本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。

    开源地址:https://github.com/cyq1162/Taurus.MVC

    本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。

    Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序下载)。

    Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET Core(C#)项目集成:应用中心。

    Taurus.MVC 微服务框架 入门开发教程:项目集成:3、客户端:其它编程语言项目集成:Java集成应用中心。

    Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。

    Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。

    Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务间的调用方式:Rpc.StartTaskAsync。

    Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

    Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

    Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

    Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。

    Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。

    Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。

    Taurus.MVC 微服务框架 入门开发教程:项目部署:7、微服务节点的监控与告警。

    Taurus.MVC 微服务框架 入门开发教程:架构演进:1、从单应用程序简单过渡到负载均衡。

    Taurus.MVC 微服务框架 入门开发教程:架构演进:2、负载均到模块拆分负载。

    Taurus.MVC 微服务框架 入门开发教程:架构演进:3、模块拆分负载到多级负载均衡。

    Taurus.MVC 微服务框架 入门开发教程:运行示例:https://github.com/cyq1162/Taurus.MVC.MicroService.Demo

    前言:

    以过多天的努力,终于一直更新到了V3.1.2版本:V3系列到目前的版本的更新如下:

    复制代码
    1、新增:注册中心服务注册。(2022-07-23)
    2、新增:网关代理转发。(2022-07-23)
    3、新增:网关安全效验([MicroService]属性标记时接口仅允许微服务间调用)。(2022-07-24)
    4、新增:网关集群。(2022-07-25)
    5、新增:注册中心故障转移。(2022-07-25)
    6、新增:服务间调用方法提供。(2022-07-26)
    7、优化:路由寻址与代理转发的兼容。(2022-07-27)
    8、优化:统一日志监控,方便问题定位。(2022-07-28)
    9、新增:文件代理转发,支持作为网站网关。(2022-07-29)
    10、优化:Taurus.Core.Controller 去掉方法与属性:方法【CheckFormat】、属性【Sort、Order】。(2022-07-29)
    11、新增:Kestrel下网关和服务启动后触发请求(配置项:MicroService.App.RunUrl)。(2022-07-29)
    12、新增:Kestrel 实现多域名绑定转发。(2022-07-29)
    13、优化:大量微服务的注册性能优化和并发测试。(2022-07-30)
    14、优化:服务端和客户端各自独立。(2022-07-31)
    15、新增:兼容微软mvc框架引用即可成为微服务端。(2022-08-01)
    16、新增:完成Web的Cookie转发。(2022-08-01)
    17、新增:控制台日志输出,方便调试。(2022-08-01)
    18、新增:模块配置:“*”,代表:注册所有模块。(2022-08-03)
    19、新增:模块配置:“*.*”代表:注册所有域名。(2022-08-03)
    20、优化:网关或注册中心使用域名访问时:先匹配域名注册,再匹配模块注册。(2022-08-03)
    21、优化:网关并发请求和其它细节优化。(2022-08-10)
    22、优化:控制器下找不到的方法路径,也统一跳转到全局Default。(2022-08-12)
    23、优化:大量并发请求的稳定性。(2022-08-15)
    24、新增:模块配置:【模块名|版本号】如:"xxx|1,yyy|2",对于多模块,允许指定各自版本号。(2022-08-16)
    25、优化:版本升级:新版运行每次注册【5-10秒】仅清除1个旧版本,用于平滑版本过渡版本升级。(2022-08-16)
    26、优化:版本升级:仅绑定域名的追加*通配符;优化获取Host算法(模块高版本存在时,忽略低版本通配符)。(2022-08-17)
    27、优化:微服务对外接口的文档显示,以便其它编程语言查看与调试。(2022-08-17)
    -------------------------V3.1.1.0【升级微服务功能】(2022-09-09 - 2022-09-13)-----------------------------
    1、优化:调整Controller的名称空间:Taurus.Core =>Taurus.Mvc
    2、优化:控制器命名调整:允许控制器名称不以Controller结尾(DefaultController除外)。
    3、优化:Extend 更名:Plugin :原有Auth模块,独立出外部项目,变更为插件方式提供。
    4、优化:微服务网关代理调用。
    5、优化:微服务间的Key的网络调用请求头传参数名变更:microservice => mskey。
    6、优化:CheckAck、CheckToken、CheckMicroService、BeginInvode、EndInvode等方法(参数优化)。
    7、新增:IgnoreDefaultControllerAttribute 允许控制器忽略全局DefaultController事件。
    8、新增:提供微服务间的调用方式:Taurus.MicroService.Rpc。
    --------------------------V3.1.1.1:(2022-09-13 - 2022-10-11)---------------------------------------------
    1、优化:新方法的反射获取提前到控制器初始化阶段。
    2、优化:反射程序集(配置*号时,跳过错误的加载项而不抛异常)。
    3、优化:Linux 下Mvc Views 文件路径大小写的获取。
    4、优化:MicroService.MSConfig 更名为:MicroService.MsConfig。
    ---------------------------V3.1.2.0:(2022-10-12)---------------------------------------------
    1、新增:注册中心注册的信息(包含客户端和服务端)可写入指定数据库(配置MsConn数据库链接,配置MsTableName(可选)。(2022-10-12)
    复制代码

    当前最新版本最后一条更新:

    通过指定数据库链接,可以将所有的服务信息,都存档在指定的数据库中,然后自行根据该数据,自行生成图表监控即可。

    下面介绍该使用方式(该方式使用和《项目集成:5、统一的日志管理》一文中的使用方式相似):

    PS:【本功能已暂时移除】

    1、配置数据库链接:MsConn

    appsettings.json:配置如下:

    复制代码
    复制代码
    {
      "ConnectionStrings": {
        "MsConn": "server=.;database=MsHost;uid=sa;pwd=123456"
      },
      "AppSettings": {
        //...
      }
    }
    复制代码
    复制代码

    web.config:配置如下:

    复制代码
    复制代码
    
      
        
      
    
    复制代码
    复制代码

    2、配置数据库链接(备,可选):MsConn_Bak

    appsettings.json:配置如下:

    复制代码
    复制代码
    {
      "ConnectionStrings": {
        "MsConn": "server=.;database=Ms;uid=sa;pwd=123456"
      "MsConn_Bak": "server=.;database=Ms_bak;uid=sa;pwd=123456"
    },
      "AppSettings": {
       //......
      }
    }
    复制代码
    复制代码

    web.config:配置如下:

    复制代码
    复制代码
    
      
        
      

    复制代码
    复制代码

    说明:

    如果主数据库了,默认链接会切换到备数据库链接写,避免监控数据丢失。

    3、自定义数据库表名:(默认:MsRegCenter)

    appsettings.json:配置如下:

    复制代码
    复制代码
    {
      "ConnectionStrings": {
        "MsConn": "server=.;database=Ms;uid=sa;pwd=123456"
      "MsConn_Bak": "server=.;database=Ms_bak;uid=sa;pwd=123456"
    },
      "AppSettings": {
       "MsTableName":"自定义微服务模块信息表名" } }
    复制代码
    复制代码

    web.config:配置如下:

    复制代码
    复制代码
    
      
        
      


        

    复制代码
    复制代码

    说明:

    对于数据库,可以独立一个数据库,但对于不同的微服务集群,可以采用不同的表名来区分监控日志。

    4、自定义数据库日志表名:按每天或每月生成一张表进行采集(可选)

    在【注册中心】运行代码中(Programs.cs)找个写代码的地方:

    1、按每天生成1张日志表:

    MsConfig.LogTableName="表名"+DateTime.Now.ToString("yyyyMMdd");

    2、按每月生成1张日志表:

    MsConfig.LogTableName="表名"+DateTime.Now.ToString("yyyyMM");

    3、按每年生成1张日志表:

    MsConfig.LogTableName="表名"+DateTime.Now.ToString("yyyy");

    说明:

    一般没有这个需求,但还是告诉有这么个可以动态调整表名的方式。

    5、自动生成的数据库表结构:

    运行注册中心后,如果配置了对应的数据库链接,框架会自动创建对应的数据表,同时系统每5秒,会更新一次数据库表。

     

    表数据说明:

    1、服务端:(版本号默认都为0)

    复制代码
    注册中心:RegCenter。
    
    注册中心(从):RegCenterOfSlave。 
    
    网关中心:Gateway。
    
    如果要搜索服务端数据,查询Version=0即可。
    复制代码

    2、客户端:版本号>=1

    微服务中心:各自配置的名称。
    版本号未配置时,默认为1,可配置项>=1。

    其它说明:

    Host:为各主机的可请求地址。
    
    LastActiveTime:各主机请求注册中心的最新时间(超过10秒,即为离线)。

    总结:

    仅需在【注册中心】应用程序中,配置好数据库链接,即可收获所有相关的信息。

    以便于对各节点进行监控,进行故障告警。

    补充:新版本>=V3.1.4本功能已取消,由注册中心UI取代本功能。

     

  • 相关阅读:
    12.函数
    高性能服务器之mysql数据库连接池设计与实现
    Web APIs简介 Dom
    MinIO:开源对象存储解决方案的领先者
    浅谈Maven以及在项目中的应用
    成绩管理系统
    计算机毕业设计ssm基于vuejs的二手车交易平台ue120系统+程序+源码+lw+远程部署
    切换至root用户时,命令提示符颜色为白色,如何修改?
    【opencv图像处理】--4. 低、高通滤波,卷积和各种算子
    防火墙实验一
  • 原文地址:https://www.cnblogs.com/cyq1162/p/16786088.html
  • 最新文章
  • 【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
    SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
    不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
    Halo插件:支持GitHub的图床附件策略
    电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
    华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
    软件更好写之后口碑会更重要
    大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
    Java标签跳转:一个鲜为人知但却很实用的小技巧
    多智能体系统论文速读
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号