云计算:迈向智能世界白皮书(2023版)

智能计算芯世界 2023-09-25 08:03

人工智能技术在快速发展,但人工智能应用于各行业都需要一个过程,基于各行业众多的创新实践,AI应用到商业系统可以分为三个层次:

• 点级解决方案:AI解决非常具体的问题,用于改进现有流程的某个环节且可独立部署,不改变系统。

• 应用级解决方案:AI解决一系列问题,使能独立可部署的新流程,也不改变系统。

• 系统级解决方案:AI能够同时改进多个现有流程,或者 通过改变相互依赖的流程使能多个新流程。

智能化的旋律一旦奏响,便将穿透企业内部的边界,连点成线、聚线成面。人工智能将驱动生产力从“量变到质变”,并逐步成为经济发展的核心引擎,重塑千行万业 。在我们看来,对数智化转型而言:战略驱动是根本、数据底座是基础、人工智能是核心。

  • 趋势一:人工智能重塑千行万业,已从点级走向应用与系统级
  • 趋势二:AI for Industry,加速行业应用创新落地
  • 趋势三:大模型驱动应用变革,AIGC重塑应用全生命周期,从代码为中心走向模型为中心
  • 趋势四:AI云服务逐渐成为企业构建大模型首选。
下载链接:
《华为:迈向智能世界白皮书2023版(合集)》
1、迈向智能世界白皮书2023版(计算)
2、迈向智能世界白皮书2023版(云计算) 3、迈向智能世界白皮书2023版(数字金融) 4、迈向智能世界白皮书2023版(数据通信) 5、迈向智能世界白皮书2023版(数据存储)

《FMS 2023闪存峰会CXL合集(1)》

《FMS 2023闪存峰会CXL合集(2)》


下载链接:
下一代超融合架构白皮书
《46+份超融合技术及报告合集》
《数据中心技术合集》
1、数据中心超融合以太技术白皮书
2、数据中心可持续发展能力要求 

3、数据中心绿色设计白皮书(2023) 

4、新型数据中心高安全技术体系白皮书

异构融合计算技术白皮书
超融合数据中心网络
中国联通的开放网络研究与实践
中国联通开放硬件网络设备白皮书
白牌网络及交换机白皮书汇总
1、掘金云数据中心白盒化趋势.pdf
2、商用交换芯片SDN支持现状分析.pdf
3、未来网络白皮书——白盒交换机技术白皮书.pdf
4、协议无关交换机架构技术与应用白皮书.pdf
5、中国联通开放硬件网络设备白皮书.pdf
6、中兴通讯CO重构技术白皮书.pdf
《2022网信自主创新调研报告(2023)》
《2022中国物联网行业研究报告》
2021年中国物联网云平台发展研究报告
《算力网络技术合集(1)》
1、算力网络关键技术及发展挑战分析 2、中国算力网络全景洞察白皮书 3、算力感知网络CAN技术白皮书(中国移动) 4、算力时代网络运力研究白皮书 5、数字中国建设关键基础设施,算力网络时代来临(2023) 6、算力网络技术白皮书
《算力网络技术合集(2)》
7、算力网络场景下SLA约束的能耗优化微服务调度策略(2023) 8、网络算力接入时延圈绘制展示研究和实践(2023) 9、浅析面向算力时代全光底座的构建 10、云渲染任务智能算力调度策略研究(2023) 11、算力网络推进金融元宇宙落地(2023) 12、全光算力网络关键技术及建设策略研究(2023)

数据中心绿色设计白皮书(2023)

存储系统性能和可靠性基础知识

云基建专题:AI驱动下光模块趋势展望及弹性测试

精华:数据库系统的分类和评测研究

可重构计算:软件可定义的计算引擎

近存及存内计算专题简介

集装箱冷板式液冷数据中心技术规范

浸没式液冷发展迅速,“巨芯冷却液”实现国产突破

两相浸没式液冷—系统制造的理想实践

浸没液冷服务器可靠性白皮书

天蝎5.0浸没式液冷整机柜技术规范

AIGC加速芯片级液冷散热市场爆发

某液冷服务器性能测试台的液冷系统设计

《智能存储与磁盘故障预测合集》

《内存技术应用研究及展望合集》


本号资料全部上传至知识星球,加入全栈云技术知识星球下载全部资料。




免责申明:本号聚焦相关技术分享,内容观点不代表本号立场,可追溯内容均注明来源,发布文章若存在版权等问题,请留言删除,谢谢。



温馨提示:扫描二维码关注“全栈云技术架构”公众号,点击阅读原文进入“全栈云技术知识”星球获取10000+技术资料。


智能计算芯世界 聚焦人工智能、芯片设计、异构计算、高性能计算等领域专业知识分享.
评论 (0)
  • Wayking RadarSensors_LRR7710_中英文产品手册
    Wayking RadarSensors_LRR7710_中英文产品手册
  • RadarSensors_ARS408-21_cn数据手册
    RadarSensors_ARS408-21_cn数据手册
  • 13、如何解决直插差模电感的异响问题
    13、如何解决直插差模电感的异响问题
  • CS5511芯片设计原理图
    CS5511的LVDS输出可以配置为在120 Hz时支持高达1920x1080或在100 Hz时支持1920x1200。CS5511 LVDS接口支持单端口和双端口模式。CS5511具有5个配置引脚,可支持32个不同面板分辨率和LVDS工作模式与一个闪光图像的组合。
  • XPM52C规格书 65W USB PD 多协议降压芯片
    XPM52C 是一款集成同步开关的降压转换器,支持多种输出快充协议、支持 USB Type-C 和 PD 等多种快充协议,包括 USB Type-C 和 PD 协议,高通 QC2.0/3.0/3.0+,华 为 FCP/SCP/HVSCP,VOOC 2.0/4.0 协议,联发科 PE,三星 AFC,USB BC1.2 DCP 以及 Apple 2.4A 充电规范,为车载充电器、各种快充适配器、智能排插等供电设备提供完 整的解决方案。
  • 基本_碳化硅功率器件_选型手册_2023Q3.pdf
    基本_碳化硅功率器件_选型手册_2023Q3.pdf
  • 基于单片机的工业级液晶图形显示控制芯片RA8889ML3N-Datasheet
    TFT-LCD液晶显示控制芯片RA8889ML3N的优势:
    低功耗及功能强大:这款芯片最大支持分辨率为1366x2048,内置128Mb SDRAM,可为内容显示进行快速刷新,同时内置视频解码单元,支持JPEG/AVI硬解码播放,为普通单片机实现视频播放提供可能。
    支持多种接口:RA8889ML3N支持MCU端的8080/6800 8/16-bit 非同步并列接口和3/4线SPI及IIC串列接口,以及最大驱动1366x800分辨率的TFT LCD。
    显示功能强大:RA8889ML3N提供多段的显示记忆体缓冲区段,支持多图层功能,并提供画中画(PIP)、支持透明度控制与显示旋转镜像等显示功能。

    应用范围广:这款芯片广泛应用于自动化控制设备、电力监测控制、测量检测仪器仪表、电教设备、智能家电、医疗检测设备、车用仪表及工控自动化等领域。

    技术咨询与交流:QQ2851189731, 微信13760238805

  • 托马斯微积分第十版中文
    电子书为扫描版本,自己手动添加书签作为目录供参考
  • Geehy极海微控制器选型手册
    Geehy极海微控制器选型手册,产品基于Arm® Cortex®-M0+/M3/M4F/RISC-V内核,覆盖工业级/车规级/电机控制专用以及无线MCU,丰富的产品组合阵营,满足客户多样化产品应用需求!
  • ECG前置电路设计
    TI出的一个经验文档,讲的很不错
  • RadarSensors_ARS308-21_cn数据手册
    RadarSensors_ARS308-21_cn数据手册
  • [完结19章]SpringBoot开发双11商品服务系统教程下载
    如何使用SpringBoot开发一款关于双11商品服务的系统?今天就给大家说道说道,希望对大家的学习有所帮助!
    1.什么是SpringBoot?
    Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发的。
    Spring Boot是由Pivotal团队提供的基于Spring的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot集成了绝大部分目前流行的开发框架,就像Maven集成了所有的JAR包一样,Spring Boot集成了几乎所有的框架,使得开发者能快速搭建Spring项目。
    2.SpringBoot的优点
    快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
    内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
    快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
    可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
    ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况

    后端配置
    1.1创建Springboot工程
    打开idea->file->new->project
    选择spring Initializer进行配置,java版本选择8,点击next
    - internal 应用代码
        - controllers 控制器模块
          - admin 后端控制器
          - front 前端控制器
        - listen redis监听器
        - models 模型模块
        - service 服务模块
          - product_serive 商品服务
          - wechat_menu_serive 微信公众号菜单服务
          ......
    - conf 公共配置
      -config.yml yml配置文件
      -config.go 配置解析,转化成对应的结构体
      
    - middleware 中间件
        - AuthCheck.go  jwt接口权限校验
    - cors.go 跨域处理
    ......
    - pkg 程序应用包
      - app
      - base
      - casbin
      - jwt
      - qrcode
      - wechat
      .....
    - routere 路由
    - logs 日志存放
    - runtime 资源目录
    首先,我仔细分析了需求,并且根据业务逻辑设计了合适的接口。
    对于多表关联查询,我使用了MyBatis的注解来编写SQL语句,并通过@One和@Many等注解来实现结果集的映射。
    对于数据分页,我使用了MyBatis-Plus提供的Page对象,并结合相关方法来实现数据分页查询。
    2. 上课中的优秀项目
    在课堂上,我完成了一个优秀的项目,主要是学生实体类的增删改查功能。通过这个项目,我巩固了对Spring Boot框架的理解和掌握。
    具体实现如下:
    //初始化redis
    err := cache.InitRedis(cache.DefaultRedisClient, &redis.Options{
    Addr:        global.CONFIG.Redis.Host,
    Password:    global.CONFIG.Redis.Password,
    IdleTimeout: global.CONFIG.Redis.IdleTimeout,
    }, nil)
    if err != nil {
    if err != nil {
    global.LOG.Error("InitRedis error ", err, "client", cache.DefaultRedisClient)
    panic(err)
    }
    panic(err)
    }

    //初始化mysql
    err = db.InitMysqlClient(db.DefaultClient, global.CONFIG.Database.User,
    global.CONFIG.Database.Password, global.CONFIG.Database.Host,
    global.CONFIG.Database.Name)
    if err != nil {
    global.LOG.Error("InitMysqlClient error ", err, "client", db.DefaultClient)
    panic(err)
    }
    global.Db = db.GetMysqlClient(db.DefaultClient).DB

    开发步骤
    SpringBoot 开发起来特别简单,分为如下几步:
    创建新模块,选择Spring初始化,并配置模块相关基础信息
    选择当前模块需要使用的技术集
    开发控制器类
    运行自动生成的Application类
    知道了 SpringBoot 的开发步骤后,接下来我们进行具体的操作
    shutdown.NewHook().Close(
    //关闭http server
    func() {
    ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
    defer cancel()
    if err := server.Shutdown(ctx); err != nil {
    logging.Error("http server shutdown err", err)
    }
    },

    func() {
    //关闭kafka producer(特别是异步生产者,强制关闭会导致丢消息)
    if err := mq.GetKafkaSyncProducer(mq.DefaultKafkaSyncProducer).Close(); err != nil {
    logging.Error("kafka shutdown err", err)
    }
    },
    func() {
    //关闭mysql
    if err := db.CloseMysqlClient(db.DefaultClient); err != nil {
    logging.Error("mysql shutdown err", err)
    }
    },
    func() {
    //关闭redis
    if err := cache.GetRedisClient(cache.DefaultRedisClient).Close(); err != nil {
    logging.Error("redis shutdown err", err)
    }
    },
    )
    //也可以自己实现优雅关闭
    //signals := make(chan os.Signal, 0)
    //signal.Notify(signals, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
    //s := <-signals
    //global.LOG.Warn("shop receive system signal:", s)
    //ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
    //defer cancel()
    //err := server.Shutdown(ctx)
    //if err != nil {
    // global.LOG.Error("http server error", err)
    //}
    //mq.GetKafkaSyncProducer(mq.DefaultKafkaSyncProducer).Close()

    选择 Spring Initializr ,用来创建 SpringBoot 工程
    以前我们选择的是 Maven ,今天选择 Spring Initializr 来快速构建 SpringBoot 工程。而在 Module SDK 这一项选择我们安装的 JDK 版本。
    type StoreProduct struct {
    Image        string         `json:"image" valid:"Required;"`
    SliderImage  string         `json:"slider_image" valid:"Required;"`
    StoreName    string         `json:"store_name" valid:"Required;"`
    StoreInfo    string         `json:"store_info" valid:"Required;"`
    Keyword      string         `json:"keyword" valid:"Required;"`
    CateId       int            `json:"cate_id" valid:"Required;"`
    ProductCate  *StoreCategory `json:"product_cate" gorm:"foreignKey:CateId;association_autoupdate:false;association_autocreate:false"`
    Price        float64        `json:"price" valid:"Required;"`
    VipPrice     float64        `json:"vip_price" valid:"Required;"`
    OtPrice      float64        `json:"ot_price" valid:"Required;"`
    Postage      float64        `json:"postage" valid:"Required;"`
    UnitName     string         `json:"unit_name" valid:"Required;"`
    Sort         int16          `json:"sort" valid:"Required;"`
    Sales        int            `json:"sales" valid:"Required;"`
    Stock        int            `json:"stock" valid:"Required;"`
    IsShow       *int8          `json:"is_show" valid:"Required;"`
    IsHot        *int8          `json:"is_hot" valid:"Required;"`
    IsBenefit    *int8          `json:"is_benefit" valid:"Required;"`
    IsBest       *int8          `json:"is_best" valid:"Required;"`
    IsNew        *int8          `json:"is_new" valid:"Required;"`
    Description  string         `json:"description" valid:"Required;"`
    IsPostage    *int8          `json:"is_postage" valid:"Required;"`
    GiveIntegral int            `json:"give_integral" valid:"Required;"`
    Cost         float64        `json:"cost" valid:"Required;"`
    IsGood       *int8          `json:"is_good" valid:"Required;"`
    Ficti        int            `json:"ficti" valid:"Required;"`
    Browse       int            `json:"browse" valid:"Required;"`
    IsSub        *int8          `json:"is_sub" valid:"Required;"`
    TempId       int64          `json:"temp_id" valid:"Required;"`
    SpecType     int8           `json:"spec_type" valid:"Required;"`
    IsIntegral   *int8          `json:"isIntegral" valid:"Required;"`
    Integral     int32          `json:"integral" valid:"Required;"`
    BaseModel
    }

    //定义商品消息结构
    type ProductMsg struct {
    Operation string `json:"operation"`
    *StoreProduct
    }
    切换web服务器
    现在我们启动工程使用的是 tomcat 服务器,那能不能不使用 tomcat 而使用 jetty 服务器,jetty 在我们 maven 高级时讲 maven 私服使用的服务器。而要切换 web 服务器就需要将默认的 tomcat 服务器给排除掉,怎么排除呢?使用 exclusion 标签
    func (e *StoreProductController) Post(c *gin.Context) {
    var (
    dto  dto2.StoreProduct
    appG = app.Gin{C: c}
    )
    httpCode, errCode := app.BindAndValid(c, &dto)
    if errCode != constant.SUCCESS {
    appG.Response(httpCode, errCode, nil)
    return
    }
    productService := product_service.Product{
    Dto: dto,
    }
    model, err := productService.AddOrSaveProduct()
    if err != nil {
    appG.Response(http.StatusInternalServerError, constant.FAIL_ADD_DATA, nil)
    return
    }

    //发消息队列
    defer func() {
    operation := product.OperationCreate
    if dto.Id > 0 {
    operation = product.OperationUpdate
    }
    productMsg := models.ProductMsg{
    operation,
    &model,
    }
    msg, _ := json.Marshal(productMsg)
    p, o, e := mq.GetKafkaSyncProducer(mq.DefaultKafkaSyncProducer).Send(&sarama.ProducerMessage{
    Topic: product.Topic,
    Key:   mq.KafkaMsgValueStrEncoder(strconv.FormatInt(dto.Id, 10)),
    Value: mq.KafkaMsgValueEncoder(msg),
    },
    )
    if e != nil {
    global.LOG.Error("send product msg error ", e, "partition :", p, "offset :", o, "id :", dto.Id)
    }
    }()

    appG.Response(http.StatusOK, constant.SUCCESS, nil)

    }


  • 15、贴片叠层电感应用测试中不良率高的原因
    15、贴片叠层电感应用测试中不良率高的原因
  • [完结11章]技术大牛成长课,从0到1带你手写一个数据库系统
    大家好,今天我将给大家分享关于如何开发一个数据库系统的知识,将从0到1手把手带着一步步去开发这个项目,希望我的分享对大家的学习和工作有所帮助,如果有不足的地方还请大家多多指正。

    一、什么是数据库系统
    数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成 

    二、数据库管理系统的主要功能包括
    数据定义功能:DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的对象进行定义
    数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。
    数据操纵功能:DBMS提-供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等
    数据库的事务管理和运行管理:数据库在建立、运用和维护时由数据管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用以及发生故障后的系统恢复
    数据库建立和维护功能:数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。

    三、数据库系统结构
    1.1模式(概念模式或逻辑模式)
    定义:数据库中全体数据的逻辑结构特征的描述,是所有用户的公用数据库结构。

    特性:

    一个数据库只有一个模式
    模式与应用程序无关,只是数据的一个框架
    1.2子模式(外模式或用户模式)
    定义:数据库用户所见和使用的局部数据的逻辑结构和特征的描述,是用户所用的数据库结构

    特性:

    子模式是模式的子集
    一个数据库有多个子模式,每个用户至少使用一个子模式
    同一个用户可以使用不同的子模式,每个子模式可为不同的用户所用
    1.3内模式(存储模式)
    定义:是数据物理结构和存储方法的描述。它是整个数据库的最低层结构的表示。

    特性:

    一个数据库只有一个内模式,内模式对用户透明
    一个数据库由多种文件组成,如用户数据文件,索引文件及系统文件
    内模式设计直接影响数据库的性能

    以下是开发流程:
    在idea中构建如下几个子模块工程:
    @PostMapping("/doLogin")
    @ApiOperation(value = "一键注册登录接口", notes = "一键注册登录接口", httpMethod = "POST")
    public GraceJSONResult doLogin(HttpServletRequest request,
                                   HttpServletResponse response,
                                   @RequestBody @Valid RegisterLoginBO registerLoginBO,
                                   BindingResult result);
    验证的字段上方可以写一些相关的注解,系统识别后会自动检查
    RegisterLoginBO.java
    public class RegisterLoginBO {

        @NotBlank(message = "手机号不能为空")
        private String mobile;
        @NotBlank(message = "短信验证码不能为空")
        private String smsCode;

        public String getMobile() {
            return mobile;
        }

        public void setMobile(String mobile) {
            this.mobile = mobile;
        }

        public String getSmsCode() {
            return smsCode;
        }

        public void setSmsCode(String smsCode) {
            this.smsCode = smsCode;
        }

        @Override
        public String toString() {
            return "RegisterLoginBO{" +
                    "mobile='" + mobile + '\'' +
                    ", smsCode='" + smsCode + '\'' +
                    '}';
        }
    }

    如果校验有问题,那么可以直接获得并且放回给前端即可。
    BaseController.java
    /**
     * 验证beanBO中的字段错误信息
     * @param result
     * @return
     */
    public Map<String, String> getErrors(BindingResult result) {
        Map<String, String> map = new HashMap<>();
        List<FieldError> errorList = result.getFieldErrors();
        for (FieldError error : errorList) {
            // 发生验证错误所对应的某一个属性
            String errorField = error.getField();
            // 验证错误的信息
            String errorMsg = error.getDefaultMessage();
            map.put(errorField, errorMsg);
        }
        return map;
    }
    一般来说,admin系统不会有主动注册功能,账号都是分配的,那么默认就会存在一个基本账户,这也是预先通过代码生成用户名和密码的。直接手动生成即可:
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

    同理,查询操作也是类似JPA的操作,再继承Repository后直接使用其内置api即可:
    FriendLinkMngControllerApi.java
    @PostMapping("getFriendLinkList")
    @ApiOperation(value = "查询友情链接列表", notes = "查询友情链接列表", httpMethod = "POST")
    public GraceJSONResult getFriendLinkList();
    首先可以在数据库通过写sql脚本实现查询
    SELECT
    c.id as commentId,
    c.father_id as fatherId,
    c.article_id as articleId,
    c.comment_user_id as commentUserId,
    c.comment_user_nickname as commentUserNickname,
    c.content as content,
    c.create_time as createTime,
    f.comment_user_nickname as quoteUserNickname,
    f.content as quoteContent
    FROM
    comments c
    LEFT JOIN
    comments f
    on
    c.father_id = f.id
    WHERE
    c.article_id = '2006117B57WRZGHH'
    order by
    c.create_time
    desc
    目前我们所搭建的eureka是单机单实例的注册中心,如果挂了,那么整个微服务体系完全不可以,这是不应该的,所以为了实现eureka的高可用,我们可以搭建集群。
    在进行集群构建之前,大家先参照目前的eureka再去构建一个一模一样的工程,可以取名为 springcloud-eureka-cluster。
    为集群中各个eureka节点配置host
    eureka:
      instance:
        hostname: eureka-cluster-${port:7001}    # 集群中每个eureka的名字都要唯一
      # 自定义eureka集群中另外的两个端口号
      other-node-port2: ${p2:7002}
      other-node-port3: ${p3:7003}
      client:
    #    register-with-eureka: false
    #    fetch-registry: false
        service-url:
          # 集群中的每个eureka单实例,都需要相互注册到其他的节点,在此填入集群中其他eureka的地址进行相互注册
          defaultZone: http://eureka-cluster-${eureka.other-node-port2}:${eureka.other-node-port2}/eureka/,http://eureka-cluster-${eureka.other-node-port3}:${eureka.other-node-port3}/eureka/
    我们自己测试的时候时间可以设置为10秒内有10次,我认定非法请求,直接限制这个ip访问15秒,15秒后释放。(像有的网站会出现二维码让你扫描通过,或者手机验证码或者人机交互判断你当前是否是人还是机器,因为有可能是爬虫请求)
    开发步骤:
    首先在yml中设置基本参数:
    @Override
    public Object run() throws ZuulException {
        System.out.println("执行【IP黑名单】Zuul过滤器...");

        // 获得上下文对象requestContext
        RequestContext requestContext = RequestContext.getCurrentContext();
        HttpServletRequest request = requestContext.getRequest();

        // 获得ip
        String ip = IPUtil.getRequestIp(request);

        /**
         * 需求:
         * 判断ip在10秒内请求的次数是否超过10次,
         * 如果超过,则限制访问15秒,15秒过后再放行
         */
        final String ipRedisKey = "zuul-ip:" + ip;
        final String ipRedisLimitKey = "zuul-ip-limit:" + ip;

        // 获得剩余的限制时间
        long limitLeftTime = redis.ttl(ipRedisLimitKey);
        // 如果剩余时间还存在,说明这个ip不能访问,继续等待
        if (limitLeftTime > 0) {
            stopRequest(requestContext);
            return null;
        }

        // 在redis中累加ip的请求访问次数
        long requestCounts = redis.increment(ipRedisKey, 1);

        // 从0开始计算请求次数,初期访问为1,则设置过期时间,也就是连续请求的间隔时间
        if (requestCounts == 1) {
            redis.expire(ipRedisKey, timeInterval);
        }

        // 如果还能取得到请求次数,说明用户连续请求的次数落在10秒内
        // 一旦请求次数超过了连续访问的次数,则需要限制这个ip了
        if (requestCounts > continueCounts) {
            // 限制ip访问一段时间
            redis.set(ipRedisLimitKey, ipRedisLimitKey, limitTimes);

            stopRequest(requestContext);
        }

        return null;
    }

    private void stopRequest(RequestContext requestContext){
        // 停止继续向下路由,禁止请求通信
        requestContext.setSendZuulResponse(false);
        requestContext.setResponseStatusCode(200);
        String result = JsonUtils.objectToJson(
                GraceJSONResult.errorCustom(
                        ResponseStatusEnum.SYSTEM_ERROR_BLACK_IP));
        requestContext.setResponseBody(result);
        requestContext.getResponse().setCharacterEncoding("utf-8");
        requestContext.getResponse().setContentType(MediaType.APPLICATION_JSON_VALUE);
    }
    上面这些都是通过不同key要执行多次才能得到结果,一般来说我们会使用es的aggs功能做聚合统计,会更好。
    通过一个脚本来统计男女数量:
    POST http://192.168.1.203:9200/fans/_doc/_search
    {
        "size": 0,
        "query":{
            "match":{
                "writerId":"201116760SMSZT2W"
            }
        },
        "aggs": {
            "counts": {
                "terms": {
                    "field": "sex"
                }
            }
        }
    }

    以下就是数据库系统开发的整个流程讲解,感谢大家的阅读

  • 风力发电机组机结构与原理-2018年-赵万清
    风力发电机组机结构与原理,中国电力出版社,PDF版本。
  •    电源连接器的插针遭受损坏的情况非常普遍,这种故障会让连接器的电流传输受到影响,进而影响设备的正常使用,那是什么因素导致电源连接器的插针遭到损坏呢?下面Amass将为您分析其中的原因。   1、应用环境高温 1. 在高温环境下,电源连接器插针易受腐蚀影响,形成氧化层,损失接触压力,甚至可能发生接头烧损情况。对于这种环境,电源连接器需要具备耐高温性能,不仅需满足环境温度要求,还须考虑其在工作状态下的热量散发。  
    艾迈斯电子 2023-11-30 16:33 125浏览
  • 前言 在网络部署之后和业务开展之前,运营商迫切希望了解当前网络的性能状态,以便为商业规划和业务推广提供必要的基础数据支持。因此,高可靠性和高精确度的性能测试方法对于运营商评判网络性能的优劣,显得尤为重要,而RFC 2544等传统测试标准已不足于鉴定当今的服务等级协议(SLA)。SLA是服务提供商(如ISP)及其最终用户之间的协议,它规定以太网服务的开通或验证必须进行测量,且必须达到SLA的规范要求。目前,对以太网服务进行测试和故障诊断的最佳选择无疑是ITU-T Y.1564标准。 &
    信而泰市场部 2023-11-30 15:06 89浏览
  • 印刷部分 这本书印刷和普通书籍不太一样,类似笔记本的手写体印刷和笔记的网格,有亲近感和新鲜感内容部分 分为通信工程 ;传感器工程;磁传感器工程;太阳电池功能几大部分通信电路是一种用于传输信息的电子电路,可以用于无线通信、有线通信和网络通信等各种通信系统中。传感器电路则是用于感知和测量环境参数的电路,可以探测光、温度、压力、湿度、运动等各种物理量。在学习通信电路方面,可能会接触到模拟通信电路和数字通信电路。模拟通信电路主要涉及模拟信号的传输和处理,如调制解调、信号放大、滤波等。数字通信电路则涉及数
    陇南有只大花猫 2023-11-30 19:01 198浏览
  • Achronix推出基于FPGA的加速自动语音识别解决方案 提供超低延迟和极低错误率(WER)的实时流式语音转文本解决方案,可同时运行超过1000个并发语音流2023年11月——高性能FPGA芯片和嵌入式FPGA(eFPGA IP)领域的领先企业Achronix半导体公司日前自豪地宣布:正式推出Achronix与Myrtle.ai合作的最新创新——基于Speedster7t FPGA的自动语音识别(ASR)加速方案。这一变革性的解决方案,实现了高精度和快速响应,可将超过1000个并发的实时
    电子科技圈 2023-11-30 11:52 157浏览
  •     按照 IPC术语,连接盘/Land 是指一块导体,通常用于连接和/或固定元器件的导电部分。    为了增强孔的机械强度,所有的金属化孔或者镀覆孔,在穿过每一层铜箔时,都应该有连接盘,连接盘的形状不限。前面提过的孔环也是连接盘的一种形式。在允许的条件下,孔环和连接盘的尺寸都要尽量大一些。    前面提到过,铜层图案(连接盘)和孔是在不同的工序制作的。由于加工公差的存在,用常见的圆形连接盘和圆孔来说,并不能保证孔和连接盘保持精确的同
    电子知识打边炉 2023-11-30 21:32 146浏览
  • 听力危机不可不慎,助听器市场的发展概况根据世界卫生组织WHO于2021年所发布的世界听力报告(World report on hearing)统计,全球目前有20%左右的听损人口;其中「轻度」与「中度」听损人口就占了大约15亿人左右。台湾方面,根据2021年卫生福利部统计处的数据显示,台湾则约有12万人有听力损失的问题,其中更有高达56% (约71,543人)确诊为轻度听损。足以看出听力受损问题已逐渐成为全球新兴的健康议题。听力损失的成因及轻重程度因人而异,但无论如何,或多或少都会影响到我们的日
    百佳泰测试实验室 2023-11-30 17:26 118浏览
  • 在电力系统中,过电压保护器是一种重要的设备,它对电力设备的安全运行具有重要的作用。下面我们来了解一下过电压保护器的基本结构。过电压保护器通常由三个主要部分组成:间隙、非线性元件和触发器。1. 间隙:间隙是过电压保护器的基本结构之一,它是由两个金属电极组成的,通常采用球形或棒形结构。间隙的间距通常在几毫米到几厘米之间,它能够承受一定的电压,并在过电压条件下进行放电。2. 非线性元件:非线性元件是过电压保护器的另一个重要组成部分。它是一种特殊的电阻器,能够在高电压下呈现出非线性的特性。当电压超过一定
    保定众邦电气 2023-11-30 14:49 171浏览
  •    本文介绍在ALPS平台上进行SSL测试的内容和方法   什么是SSL SSL全称是Secure Sockets Layer,指安全套接字协议,为基于TCP的应用层协议提供安全连接;SSL介于TCP/IP协议栈的第四层和第五层之间,广泛用于电子商务、网上银行等。 SSL协议有三个版本,其中SSL2.0和3.0曾被广泛使用,其中SSLv3.0自1996提出并得到大规模应用成为了事实上的标准,在2015年才被弃用。1999年,IETF收纳了SSLv3.0并
    信而泰市场部 2023-11-30 15:08 102浏览
  • 高低温探针台是一种用于材料科学、物理、化学等领域的实验设备,主要用于在高温和低温环境下对材料进行各种实验和研究。下面是高低温探针台的工作原理。工作原理是将样品放置在加热和冷却组件上,然后使用各种测量仪器对其进行实验和测量。具体来说,其工作流程如下:将样品放置在加热和冷却组件上;启动加热系统,将样品加热到所需的温度;启动制冷系统,将冷却组件降温到所需的温度;通过各种测量仪器对样品进行实验和测量;记录实验数据并进行分析和处理;结束实验后,关闭加热和制冷系统,并解除真空状态,取出样品。总之,高低温探针
    锦正茂科技 2023-12-01 14:50 101浏览
  • By Toradex胡珊逢 简介 双屏显示在显示设备中有着广泛的应用,可以面向不同群体展示特定内容。文章接下来将使用 Verdin iMX8M Plus 的 Arm 计算机模块演示如何方便地在 Toradex 的 Linux BSP 上实现在两个屏幕上显示独立的 Qt 应用。 硬件介绍 软件配置 Verdin iMX8M Plus 模块使用 Toradex Multimedia Reference Image V6.4.0 版本,其包含 Qt5.15 相关运行环境。默认系统中已经使
    hai.qin_651820742 2023-12-01 11:53 111浏览
  • 随着汽车电子进入电动化+智能网联的时代,新能源、车联网、智能化、电动化四个领域带来了CAN数据的需求,企业车队管理需要数据,汽车运营需要数据,改装、解码、匹配工具打造需要数据,现在就连简单的LED汽车照明控制,也需要匹配数据。这一切,逃脱不了CAN、LIN、SENT、BSD、MOST各种协议下,不同ECU控制单元在不同年份,不同款式下的数据,可以这么说,在新能源这个前提下,我们要做的工作和要做的事情可能要更为复杂、多变。 前日,我拿出一份13年左右丰田的CAN协议,里边包括车灯控制、车
    lauguo2013 2023-11-30 15:45 109浏览
  • 作者:Shawn Prestridge,IAR资深现场应用工程师 / 美国FAE团队负责人 安全一直都是一个非常热门的话题,似乎每周都会听到这样的消息:某某公司如何被入侵,数百万用户的数据被泄露。 我们看到这么多的安全问题,部分原因在于我们对待安全的方式:安全性通常被认为是事后考虑的问题,是在开发结束时才添加到设备上的东西。然而,复杂的系统,尤其是嵌入式系统,有一个很大的攻击面,这让攻击者有机可乘,能够在“盔甲”上找到破绽。如果你去研究大部分黑客试图入侵系统的方式,你很快就会发现,在他们的武
    电子科技圈 2023-11-30 14:43 118浏览
  • 教程背景通过之前的教程,我们已经为大家演示了宏集MC-Prime控制器的连接、试运行和CODESYS的安装,并创建了一个计数器项目。在本期教程中,我们将进一步深入,教大家如何使用CODESYS的可视化界面。一、两种可视化方式在CODESYS V3中,可视化界面分为两种类型:目标可视化和网络可视化。二者之间存在着一些本质上的区别。(一)目标可视化目标可视化(Target visualization)主要是针对一些带有集成屏幕的控制器(如宏集DC系列)。如果是没有屏幕的控制器,则需要通过在控制器上运
    工业物联网技术 2023-11-30 11:45 93浏览
  • 数字脉冲升级功能德思特Spectrum系列全部在售数字化仪和AWG产品(包括TS-M2p,TS-M4i,TS-DN2,TS-DN6型号产品),发布了新增的数字脉冲(DPG)升级功能,于11月15日正式推出。用户购买后,可自行通过对产品内置FPGA进行固件升级获取相关功能,无需返厂。该功能可以为原本的数字化仪或AWG产品增加3~4个独立的数字脉冲发生器通道,帮助用户实现测试系统中的一系列控制功能,为客户的产品升级和系统扩建提供了一种较低成本的选项。数字脉冲发生器技术浅析#01 数字脉冲发生器是什么
    虹科测试测量TM 2023-11-30 11:23 55浏览
  • 非接触精密洁净设备在锂电池领域有广泛的应用,主要用于生产制造过程中的Roll to Roll及sliting工艺、电芯预处理等环节。针对卷板、薄膜、膜片制造工艺中的大宽幅、裁切后边部处理再清洁、除异物、毛刺等需求,非接触精密洁净设备通过高旋轴与特制气嘴的优化排列,可满足现有干燥炉、再复合、精度提升等新工艺中的洁净度要求。具体的应用环节如下:锂电池生产过程中的Roll to Roll工艺和sliting工艺,非接触精密洁净设备通过高精度的洁净环境和控制,保证了锂电池的制造质量和安全性。电芯预处理过
    SHLZ 2023-11-30 11:49 144浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦