当前位置: 首页 > news >正文

网站开发流程的三个部分如何做网络平台

网站开发流程的三个部分,如何做网络平台,过期域名查询网站,银川网站建设哪家价格低Sentinel 实时监控仅存储 5 分钟以内的数据#xff0c;如果需要持久化#xff0c;需要通过调用实时监控接口来定制#xff0c;即自行扩展实现 MetricsRepository 接口#xff08;修改 控制台源码#xff09;。 本文通过使用Mysql持久化监控数据。 1.构建存储表#xff08…Sentinel 实时监控仅存储 5 分钟以内的数据如果需要持久化需要通过调用实时监控接口来定制即自行扩展实现 MetricsRepository 接口修改 控制台源码。 本文通过使用Mysql持久化监控数据。 1.构建存储表mysql CREATE TABLE sentinel_metric (id INT NOT NULL AUTO_INCREMENT COMMENT id主键,gmt_create DATETIME COMMENT 创建时间,gmt_modified DATETIME COMMENT 修改时间,app VARCHAR(100) COMMENT 应用名称,timestamp DATETIME COMMENT 统计时间,resource VARCHAR(500) COMMENT 资源名称,pass_qps INT COMMENT 通过qps,success_qps INT COMMENT 成功qps,block_qps INT COMMENT 限流qps拒绝的qps,exception_qps INT COMMENT 发送异常的次数,rt DOUBLE COMMENT 所有successQps的rt的和,单位ms; 控制台响应时间(平均响应时间)rt/success_qps,count INT COMMENT 本次聚合的总条数: 集群的服务数量,resource_code INT COMMENT 资源的hashCode,INDEX app_idx(app) USING BTREE,INDEX timestamp_idx(timestamp) USING BTREE,PRIMARY KEY (id) ) ENGINEINNODB DEFAULT CHARSETutf8; 2.修改控制台源码 2.1 添加Maven依赖 !-- mysql db --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.25/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.1/version/dependency 2.2 修改配置文件 spring.datasource.urljdbc:mysql://127.0.0.1:3306/xx?useUnicodetruecharacterEncodingUTF-8 spring.datasource.usernamexx spring.datasource.passwordxxxxx spring.datasource.driver-classcom.mysql.cj.jdbc.Driver2.3 逆向代码生成(新增) 参考Springboot入门之Mybatis逆向工程_Ocean上源码的博客-CSDN博客 package com.alibaba.csp.sentinel.dashboard.metric.dao;import com.alibaba.csp.sentinel.dashboard.datasource.entity.MetricEntity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName;import java.util.Date;TableName(sentinel_metric) public class Metric {/*** 主键ID*/TableId(value id, type IdType.INPUT)private Long id;/*** 创建时间*/TableField(gmt_create)private Date gmtCreate;/*** 修改时间*/TableField(gmt_modified)private Date gmtModified;/*** 应用名称*/private String app;/*** 监控信息的时间戳*/private Date timestamp;/*** 资源名*/private String resource;/*** 通过qps*/TableField(pass_qps)private Long passQps;/*** 成功qps*/TableField(success_qps)private Long successQps;/*** 限流qps*/TableField(block_qps)private Long blockQps;/*** 异常qps*/TableField(exception_qps)private Long exceptionQps;/*** 所有successQps的rt的和*/private Double rt;/*** 本次聚合的总条数*/private Integer count;/*** 资源的hashCode*/TableField(resource_code)private Integer resourceCode;public Metric(MetricEntity metric) {this.id metric.getId();this.gmtCreate metric.getGmtCreate();this.gmtModified metric.getGmtModified();this.app metric.getApp();this.timestamp metric.getTimestamp();this.resource metric.getResource();this.passQps metric.getPassQps();this.successQps metric.getSuccessQps();this.blockQps metric.getBlockQps();this.exceptionQps metric.getExceptionQps();this.rt metric.getRt();this.count metric.getCount();this.resourceCode metric.getResourceCode();}public Metric() {}public Long getId() {return id;}public void setId(Long id) {this.id id;}public Date getGmtCreate() {return gmtCreate;}public void setGmtCreate(Date gmtCreate) {this.gmtCreate gmtCreate;}public Date getGmtModified() {return gmtModified;}public void setGmtModified(Date gmtModified) {this.gmtModified gmtModified;}public String getApp() {return app;}public void setApp(String app) {this.app app;}public Date getTimestamp() {return timestamp;}public void setTimestamp(Date timestamp) {this.timestamp timestamp;}public String getResource() {return resource;}public void setResource(String resource) {this.resource resource;}public Long getPassQps() {return passQps;}public void setPassQps(Long passQps) {this.passQps passQps;}public Long getSuccessQps() {return successQps;}public void setSuccessQps(Long successQps) {this.successQps successQps;}public Long getBlockQps() {return blockQps;}public void setBlockQps(Long blockQps) {this.blockQps blockQps;}public Long getExceptionQps() {return exceptionQps;}public void setExceptionQps(Long exceptionQps) {this.exceptionQps exceptionQps;}public Double getRt() {return rt;}public void setRt(Double rt) {this.rt rt;}public Integer getCount() {return count;}public void setCount(Integer count) {this.count count;}public Integer getResourceCode() {return resourceCode;}public void setResourceCode(Integer resourceCode) {this.resourceCode resourceCode;}Overridepublic String toString() {return SentinelMetricsEntity{ id id , gmtCreate gmtCreate , gmtModified gmtModified , app app \ , timestamp timestamp , resource resource \ , passQps passQps , successQps successQps , blockQps blockQps , exceptionQps exceptionQps , rt rt , count count , resourceCode resourceCode };}}package com.alibaba.csp.sentinel.dashboard.metric.dao;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper;Mapper public interface MetricMapper extends BaseMapperMetric {}package com.alibaba.csp.sentinel.dashboard.metric.service;import com.alibaba.csp.sentinel.dashboard.datasource.entity.MetricEntity; import com.alibaba.csp.sentinel.dashboard.metric.dao.Metric; import com.baomidou.mybatisplus.extension.service.IService;import java.util.Collection; import java.util.List;/*** p* 服务类* /p** author ocean* since 2023-05-21*/ public interface MetricService extends IServiceMetric {ListString listResourcesOfApp(String app);ListMetricEntity queryByAppAndResourceBetween(String app, String resource, Long startTime, Long endTime);void saveAll(IterableMetricEntity metrics);}package com.alibaba.csp.sentinel.dashboard.metric.service.impl;import com.alibaba.csp.sentinel.dashboard.datasource.entity.MetricEntity; import com.alibaba.csp.sentinel.dashboard.metric.dao.Metric; import com.alibaba.csp.sentinel.dashboard.metric.dao.MetricMapper; import com.alibaba.csp.sentinel.dashboard.metric.service.MetricService; import com.alibaba.csp.sentinel.util.StringUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import org.springframework.stereotype.Service;import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.stream.Collectors;Service public class MetricServiceImpl extends ServiceImplMetricMapper, Metric implements MetricService {private final ReentrantReadWriteLock readWriteLock new ReentrantReadWriteLock();Overridepublic void saveAll(IterableMetricEntity metrics) {if (metrics null) {return;}readWriteLock.writeLock().lock();try {ListMetric metricList Lists.newArrayList();metrics.forEach(data - {metricList.add(new Metric(data));});this.saveBatch(metricList);} finally {readWriteLock.writeLock().unlock();}}Overridepublic ListString listResourcesOfApp(String app) {ListString results new ArrayList();if (StringUtil.isBlank(app)) {return results;}readWriteLock.readLock().lock();try {LambdaQueryWrapperMetric metricLambdaQueryWrapper Wrappers.lambdaQuery(Metric.class).eq(Metric::getApp, app).orderByAsc(Metric::getTimestamp);return this.list(metricLambdaQueryWrapper).stream().map(Metric::getResource).collect(Collectors.toList());} finally {readWriteLock.readLock().unlock();}}Overridepublic ListMetricEntity queryByAppAndResourceBetween(String app, String resource, Long startTime, Long endTime) {ListMetricEntity results new ArrayList();if (StringUtil.isBlank(app)) {return results;}readWriteLock.readLock().lock();try {LambdaQueryWrapperMetric metricLambdaQueryWrapper Wrappers.lambdaQuery(Metric.class).eq(Metric::getApp, app).eq(Metric::getResource, resource).ge(Metric::getTimestamp, new Date(startTime)).le(Metric::getTimestamp, new Date(endTime)).orderByAsc(Metric::getTimestamp);ListMetric metricList this.list(metricLambdaQueryWrapper);return metricList.stream().map(MetricEntity::new).collect(Collectors.toList());} finally {readWriteLock.readLock().unlock();}} }2.4 修改源码 2.4.1 MetricController 修改统计时长修改如下标记处代码  2.4.2 MetricFetcher 3. 验证查询数据库
http://www.dnsts.com.cn/news/186499.html

相关文章:

  • 门户网站前台页面广告排版设计图片
  • 购物网站模板外链代发2分一条
  • wordpress视频防止下载seo关键词排名优化方案
  • 如何保持网站中的图片江北网站建设价格
  • wordpress 浮动div重庆网站推广优化软件业务
  • 网站开发视频播放好做吗代做课程设计的网站
  • 织梦网做网站seo优化方案报价
  • 做外贸主要看什么网站大型视频网站开发
  • 免费的html模板下载优质的seo快速排名优化
  • wordpress网站支持中文注册爱站seo排名可以做哪些网站
  • 做网站推广员需要设置网站字体
  • 顺德网站建设方案高端网站的设计开发公司
  • 织梦网站文章相互调用如何查询百度搜索关键词排名
  • 合肥网站建设多少钱登封seo公司
  • 电商网站建设关键词优化沈阳图书设计公司
  • 富民网站建设建站代理赚钱吗
  • 网站是哪个公司做的郑州公司建网站
  • 免费推广网站大全下载杭州建设信息港官网
  • 网站排名如何做厦门行业网站建设
  • 企业网站的基本内容有哪些king cms网站建设
  • 新乡个人网站建设价格wordpress 获取栏目名称
  • 北京网站建设seo优化Wordpress生成密码加密方式
  • 网站死链怎么删除植物设计网站推荐
  • 汕头网站推广系统搜索seo神器
  • 伪装学渣无极网站企业文化建设方案
  • 网站经营许可备案网站排名优化软件哪家好
  • 网站空格键代码怎样看网站的建设时间
  • 我的世界的家怎么做视频网站免费做app的软件有哪些
  • 手机网站模板尺寸有什么网站专做买生活污水设备
  • 移动端网站和app区别wordpress出现不能登录