开发者本地搭建性能监测工具(Windows)

2023-11-19

ElasticSearch 8.9.0 开发模式安装

JDK安装

官方提供版本与JDK支持关系:https://www.elastic.co/cn/support/matrix#matrix_jvm

我们安装Elasticsearch 8.9.x,看到支持的最低JDK版本是17。

JDK(Windows/Mac含M1/M2 Arm原生JDK)安装,附各个版本JDK下载链接:https://es-cn.blog.csdn.net/article/details/126861940

Oracle JDK 官方下载:https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe

按照默认设置进行安装。

安装之后我们默认的JDK版本会变成17,这是因为安装过程自动添加了环境变量。在Path环境变量中清理如下两个环境变量(一般在最上面,移动到下面也可以):

  • C:\Program Files\Common Files\Oracle\Java\javapath
  • C:\Program Files (x86)\Common Files\Oracle\Java\javapath

新建环境变量:

变量名 变量值
ES_JAVA_HOME C:\Program Files\Java\jdk-17

ElasticSearch下载安装

ElasticSearch下载页面:https://www.elastic.co/cn/downloads/elasticsearch

ElasticSearch 8.9.0 版本下载:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-windows-x86_64.zip

注意:路径中不能存在空格

解压,修改config目录下elasticsearch.yml

# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
#       Before you set out to tweak and tune the configuration, make sure you
#       understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
# 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的
# Elasticsearch的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看Elasticsearch集群,在逻辑上是个整体,你与任何一个节点的通信和与整个Elasticsearch集群通信是等价的。
# cluster.name可以确定你的集群名称,当你的elasticsearch集群在同一个网段中elasticsearch会自动的找到具有相同cluster.name的Elasticsearch服务。所以当同一个网段具有多个Elasticsearch集群时cluster.name就成为同一个集群的标识。
# Use a descriptive name for your cluster:
# 集群名称,默认是elasticsearch
cluster.name: elasticsearch
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
# 节点名称同理,可自动生成也可手动配置.
node.name: es-node
#
# Add custom attributes to the node:
# 每个节点都可以定义一些与之关联的通用属性,用于后期集群进行碎片分配时的过滤
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
# 可以指定Elasticsearch的数据存储目录,默认存储在es_home/data目录下
#path.data: /path/to/data
#
# Path to log files:
# 可以指定Elasticsearch的日志存储目录,默认存储在es_home/logs目录下
#path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
# 当JVM开始写入交换空间时(swapping)ElasticSearch性能会低下,你应该保证它不会写入交换空间 
# 锁定物理内存地址,防止elasticsearch内存被交换出去,也就是避免elasticsearch使用swap交换分区
bootstrap.memory_lock: true
#
# 确保ES_HEAP_SIZE参数设置为系统可用内存的一半左右
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.

# 确保 ES_MIN_MEM 和 ES_MAX_MEM 环境变量设置为相同的值,以及机器有足够的内存分配给Elasticsearch 
# 注意:内存也不是越大越好,一般64位机器,最大分配内存别才超过32G 

#
# 当系统进行内存交换的时候,elasticsearch的性能很差
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
# 
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
# 为Elasticsearch设置ip绑定,默认是127.0.0.1,也就是默认只能通过127.0.0.1 或者localhost才能访问
network.host: 127.0.0.1
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
# 为Elasticsearch设置自定义端口,默认是9200
http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.seed_hosts: ["host1", "host2"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
#cluster.initial_master_nodes: ["node-1", "node-2"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Allow wildcard deletion of indices:
#
#action.destructive_requires_name: false
# ---------------------------------- Xpack -----------------------------------
xpack.security.enabled: false

回到bin目录下,双击elasticsearch.bat启动

启动会占用系统物理内存的一半,建议根据实际情况调整jvm.options文件-Xms、-Xmx的值。

验证

访问:http://localhost:9200

ElasticSearch 8 默认启动Security,这对新手学习很不友好,实际上违背了Elastic官方设置开发模式的初衷,安全固然重要,但是没必要把门槛设置这么高。

参考:https://es-cn.blog.csdn.net/article/details/123936913

ElasticSearch目录结构

目录名称 描述
bin 可执行脚本文件,包括启动ElasticSearch服务、插件管理、函数命令等。
config 配置文件目录,如ElasticSearch配置、角色配置、jvm配置等。
jdk 7.x以后特有,自带的Java环境,8.x版本自带jdk 17
lib ElasticSearch所依赖的Java库
logs 默认的日志文件存储路径,生产环境要求必须修改
modules 包含所有的ElasticSearch模块,如Cluster、Discovery、Indices等。
plugins 已经安装的插件的目录
data 默认的数据存放目录,包含节点、分片、索引、文档的所有数据,生产环境要求必须修改

SkyWalking

SkyWalking下载安装

SkyWalking官网:https://skywalking.apache.org/

Application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures.

SkyWalking 9.5.0 版本下载:https://dlcdn.apache.org/skywalking/9.5.0/apache-skywalking-apm-9.5.0.tar.gz

解压缩

注意:路径中不能存在空格

修改bin目录下startup.bat文件中

@REM
@REM  Licensed to the Apache Software Foundation (ASF) under one or more
@REM  contributor license agreements.  See the NOTICE file distributed with
@REM  this work for additional information regarding copyright ownership.
@REM  The ASF licenses this file to You under the Apache License, Version 2.0
@REM  (the "License"); you may not use this file except in compliance with
@REM  the License.  You may obtain a copy of the License at
@REM
@REM      http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM  Unless required by applicable law or agreed to in writing, software
@REM  distributed under the License is distributed on an "AS IS" BASIS,
@REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@REM  See the License for the specific language governing permissions and
@REM  limitations under the License.

@echo off

setlocal
SET JAVA_HOME=%ES_JAVA_HOME%
call "%~dp0"\oapService.bat start
call "%~dp0"\webappService.bat start
endlocal

修改webapp目录下application.yml文件

serverPort: ${SW_SERVER_PORT:-8080}

修改为:

serverPort: ${SW_SERVER_PORT:-8888}

验证

访问:http://localhost:8888/

SkyWalking默认是使用H2作为存储的,我们修改为ElasticSearch。

修改config目录下application.yml文件

storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    namespace: ${SW_NAMESPACE:"elasticsearch"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
    socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
    responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
    numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
    user: ${SW_ES_USER:""}
    password: ${SW_ES_PASSWORD:""}
#   trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
#   trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
    secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.
    dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # Shard number of new indexes
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:1} # Replicas number of new indexes
    # Specify the settings for each index individually.
    # If configured, this setting has the highest priority and overrides the generic settings.
    specificIndexSettings: ${SW_STORAGE_ES_SPECIFIC_INDEX_SETTINGS:""}
    # Super data set has been defined in the codes, such as trace segments.The following 3 config would be improve es performance when storage super size data in es.
    superDatasetDayStep: ${SW_STORAGE_ES_SUPER_DATASET_DAY_STEP:-1} # Represent the number of days in the super size dataset record index, the default value is the same as dayStep when the value is less than 0
    superDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} #  This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin traces.
    superDatasetIndexReplicasNumber: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_REPLICAS_NUMBER:0} # Represent the replicas number in the super size dataset record index, the default value is 0.
    indexTemplateOrder: ${SW_STORAGE_ES_INDEX_TEMPLATE_ORDER:0} # the order of index template
    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:5000} # Execute the async bulk record data every ${SW_STORAGE_ES_BULK_ACTIONS} requests
    batchOfBytes: ${SW_STORAGE_ES_BATCH_OF_BYTES:10485760} # A threshold to control the max body size of ElasticSearch Bulk flush.
    # flush the bulk every 5 seconds whatever the number of requests
    flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:5}
    concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
    resultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}
    metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:10000}
    scrollingBatchSize: ${SW_STORAGE_ES_SCROLLING_BATCH_SIZE:5000}
    segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
    profileTaskQueryMaxSize: ${SW_STORAGE_ES_QUERY_PROFILE_TASK_SIZE:200}
    profileDataQueryBatchSize: ${SW_STORAGE_ES_QUERY_PROFILE_DATA_BATCH_SIZE:100}
    oapAnalyzer: ${SW_STORAGE_ES_OAP_ANALYZER:"{\"analyzer\":{\"oap_analyzer\":{\"type\":\"stop\"}}}"} # the oap analyzer.
    oapLogAnalyzer: ${SW_STORAGE_ES_OAP_LOG_ANALYZER:"{\"analyzer\":{\"oap_log_analyzer\":{\"type\":\"standard\"}}}"} # the oap log analyzer. It could be customized by the ES analyzer configuration to support more language log formats, such as Chinese log, Japanese log and etc.
    advanced: ${SW_STORAGE_ES_ADVANCED:""}
    # Enable shard metrics and records indices into multi-physical indices, one index template per metric/meter aggregation function or record.
    logicSharding: ${SW_STORAGE_ES_LOGIC_SHARDING:false}
    # Custom routing can reduce the impact of searches. Instead of having to fan out a search request to all the shards in an index, the request can be sent to just the shard that matches the specific routing value (or values).
    enableCustomRouting: ${SW_STORAGE_ES_ENABLE_CUSTOM_ROUTING:false}

SpringBoot程序示例:https://download.csdn.net/download/liwenyang1992/88234045

启动参考下图:

在这里插入图片描述

参考官方博客:https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/

访问验证:http://localhost:8888/general

以命令行方式启动,通过Maven打包可执行jar包,编写start.bat内容如下:

SET SW_AGENT_NAME=skywalking-demo
SET SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
SET JAVA_AGENT=-javaagent:E:/skywalking-agent/skywalking-agent.jar
java -jar %JAVA_AGENT% -jar skywalking-demo.jar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开发者本地搭建性能监测工具(Windows) 的相关文章

  • ElasticSearch 全文搜索

    我尝试在elasticsearch java api 中使用正则表达式运行全文搜索 我的过滤器是这样的 FilterBuilder qFilter FilterBuilders regexpFilter all text 但它只匹配一个单词
  • Elasticsearch 6.2 / Kibana查询:一字段必须存在,一字段不能存在

    我的愿望是搜索 field 存在且 fields b 不存在的文档 有没有办法使用 Kibana 中的 Lucene 查询语法 Kibana 的 发现 部分中的 搜索 字段 来执行此操作 我尝试过使用 缺失 字段 b没有成功 exists
  • 排除elasticsearch结果数据中的_id和_index字段

    如果简单地点击 api 每个文档中有 5 个字段 但我只想要这两个字段 user id 和 loc code 所以我在字段列表中提到 但它仍然返回一些不必要的数据 如 shards hits time out等 使用下面的查询在 chrom
  • 如何按单个字段对 Elasticsearch 中的文档进行分组?

    如果我在elaticsearch中有一堆文档 我想按文档的一个字段分组返回 我该怎么做 我还需要它始终返回固定数量的结果 使用 set maxresults 例如 如果我有一堆文档 每个文档代表一个人 并且文档的字段包含该人的属性 假设每个
  • 当结果少于scrollSize设置时,Scroll SearchResponse不可迭代

    我有一个这样的循环 while true scrollResp client prepareSearchScroll scrollResp getScrollId setScroll new TimeValue 600000 execute
  • 在elasticsearch中截断索引

    等效操作是什么elasticsearch为了做 TRUNCATE mytable 我要截断的索引称为 myindex 换句话说 在操作之后 我希望索引 myindex 中有零个文档 您需要删除索引 然后重新创建它 虽然这需要您再次设置映射
  • Elasticsearch 过滤器/计算嵌套字段

    我有带有嵌套字段的文档 如下所示 results id 1234 name asdf id 5678 name jkl ip 1 2 3 4 嵌套字段的映射如下所示 results type nested properties id typ
  • 使elasticsearch中的所有对象嵌套对象

    是否可以让elasticsearch中的所有嵌套对象自动映射到默认嵌套的类型 而不是对象 是的 您可以使用以下方法来做到这一点动态模板 https www elastic co guide en elasticsearch referenc
  • 将 Elasticsearch 结果导出到 CSV 文件

    我正在尝试将使用以下查询找到的结果导出到桌面上的 CSV 中 这是我第一次使用 Elasticsearch 和 cURL 所以我对如何做到这一点感到困惑 from elasticsearch import Elasticsearch es
  • 在elasticsearch中过滤facet

    我有一个如下查询 query query query string query s q filter ids values list ids facets destination terms field destination en hot
  • 在elasticsearch结果中显示不匹配的单词

    我想显示返回文档的多单词查询不匹配哪些单词 是否有查询类型或参数来实现此目的 通常 此类不匹配的单词会以删除线字体显示给用户 我得到答案后的示例查询 POST posts search query bool should match nam
  • Logstash删除类型并保留_type

    我有一个logstash 客户端和服务器 客户端将带有logstash的udp输出的日志文件发送到服务器 服务器也运行logstash来获取这些日志 在服务器上 我有一个 json 过滤器 它会在实际日志的字段中提取 json 格式的消息
  • 如何在弹性搜索中生成多个布尔查询的查询

    我想使用 spring 框架在 elasticsearch 中动态生成多个布尔运算的查询 我在elasticsearch中的数据就像 masterID
  • 如何在 kibana 中自动配置索引模式

    是否可以在 kibana 中自动配置索引模式 要么通过一些设置文件 要么通过rest api 安装后可以手动完成 Kibana 5 x 公开了这样的 API 来管理索引模式 要创建索引模式 可以发出以下命令来 kibana 访问 url 只
  • 如何使用elasticsearch进行分页?来自 vs 滚动 API

    我使用elasticsearch作为数据库来存储大量日志数据 我知道有两种方法可以进行分页 使用大小并来自 API 使用滚动API 现在我使用 from 进行分页 从前端和后端获取页面和大小参数 Java searchSourceBuild
  • 弹性搜索模糊匹配,精确匹配首先显示

    我想在查询中使用模糊匹配 但精确匹配显示在结果的顶部 我已经尝试过以下方法 return this gt client gt search array index gt self INDEX type gt self TYPE body g
  • elasticsearch查询字符串分析器针对不同字段使用不同的分析器

    当对具有不同分析器 stem ngram等 的多个字段执行查询时 elasticsearch是否对每个字段的查询字符串执行特定的分析 是的 除非您在查询中指定分析器 这请求参数 http www elasticsearch org guid
  • C# Elasticsearch NEST 无法转换 lambda 表达式

    我遇到了与此处描述的完全相同的问题 但未得到解答 ElasticSearch NEST 搜索 https stackoverflow com questions 24615676 elasticsearch nest search I us
  • 在弹性搜索中使用 GET/POST 时的不同结果

    我正在通过 Elastic Search Head 插件尝试弹性搜索 当我通过 POST 提交查询时 结果符合预期 但是 当我使用 GET 尝试相同的查询时 我总是会返回索引中的所有值 那么 如何通过 GET 将查询传递到弹性搜索服务器 以
  • Elasticsearch 单个字段的多个分析器

    我使用严格的预定义映射将不同类型的文档存储在单个索引中 它们都有一些字段 例如 body 但我希望在索引时对它们进行稍微不同的分析 例如 对特定文档使用不同的标记过滤器 并在搜索时以相同的方式处理 据我所知 分析器不能按文档指定 我还考虑使

随机推荐

  • MATLAB BP神经网络 笔记整理

    1 如何更改输出层的激活函数 传递函数 对于有两层神经网络结构 可以通过调用以下函数 net layers 1 or 2 transferFcn for the hidden net layers 3 transferFcn for the
  • C#实现遍历文件夹获取指定后缀名文件

    问题描述 项目需要 要进行某文件夹下所有shp数据的读取 解决方法 using System using System Collections Generic using System ComponentModel using System
  • Python机器学习/数据挖掘项目实战 波士顿房价预测 回归分析

    Python机器学习 数据挖掘项目实战 波士顿房价预测 回归分析 此数据源于美国某经济学杂志上 分析研究波士顿房价 Boston HousePrice 的数据集 在这个项目中 你将利用马萨诸塞州波士顿郊区的房屋信息数据训练和测试一个模型 并
  • Qt之一个类成员函数调用另一个类成员的方法

    原文 https blog csdn net qq 35721743 article details 83592415 在继承之外 在C 中一个类成员函数调用另一个类成员的方法主要有 类的组合 友元类 类的前向声明 单例模式等 下面主要讲讲
  • gym 101512 BAPC 2014 I Interesting Integers

    Problem codeforces com gym 101512 attachments vjudge net contest 186506 problem I Meaning 给出一个 正整数 n 要找尽量小的 a 和 b a lt b
  • 面向对象三大特性之一——多态详解

    目录 前言 一 多态的概念 二 多态的定义及实现 1 虚函数的概念 2 虚函数的重写 2 1概念 2 2虚函数重写的两个例外 3 多态的构成条件 4 c 11 override和final 4 1 final 4 2 override 5
  • Java(五)-Java集合(comparable,map,list

    集合 Collection集合 集合的概念 ArrayList就是一个集合 集合是Java提供的一种容器 可以用来存储多个数据 集合与数组的区别 1 数组的长度是固定的 集合的长度是可变的 2 数组中存储的是同一类型的元素 可以存储基本数据
  • C++ 和 C 使用的不同点(待定)

    1 结构体 C 中定义的结构体 不起别名的情况下使用时要添加 struct C 可以不用添加 struct 直接使用定义的结构体名称 struct Student int age char name C 不报错 C报错 Student Ge
  • JDK的监听 Spring的事件监听机制

    一 概述 使用场景 用户注册完成时 需要给该用户发送邮件 发送优惠劵等等操作 实现业务的解耦 MQ的异步 销峰 解耦 大体步骤 1 UserService 在完成自身的用户注册逻辑之后 仅仅只需要发布一个 UserRegisterEvent
  • 归一化与反归一化在Bi-LSTM多特征时序预测中应用(附实操代码)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 一 Bi LSTM 是什么 二 为什么要归一化和反归一化 1 归一化的好处 2 反归一化的好处 三 归一化和反归一化使用的公式 1 归一化 2 反归一化 四 实操
  • 使用Pandas处理Excel文件

    Excel工作表是非常本能和用户友好的 这使得它们非常适合操作大型数据集 即使是技术人员也不例外 如果您正在寻找学习使用Python在Excel文件中操作和自动化内容的地方 请不要再找了 你来对地方了 在本文中 您将学习如何使用Pandas
  • forkjoin及其性能分析,是否比for循环快?

    最近看了网上的某公开课 其中有讲到forkjoin框架 在这之前 我丝毫没听说过这个东西 很好奇是什么东东 于是 就顺道研究了一番 总感觉这个东西 用的地方很少 也有可能是我才疏学浅 好吧 反正问了身边一堆猿 没有一个知道的 因此 我也没有
  • 怎么把树莓派连接到电脑上(基于window10)

    我相信对于刚玩树莓派的新手来说 尤其是没有带显示屏的同学来说 四处碰壁 可能出现的原因有很多种 ssh登录不上 wifi连接不上 内存不足 很多问题 而对于更多新手来说 如何给树莓派连接网络更是关键 今天我给大家讲一下如何用树莓派连接电脑
  • Real-time Linux

    所谓实时操作系统 Real time Opearting System 是指当外接世界或数据产生时 能够接受并以足够快的速度予以处理 其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应 调度一切可利用的资源完成实时任务
  • 数据链路层:Ethernet以太网协议

    首先Ethernet IEEE802 3 PPP和HDLC都是数据链路层的协议 只不过后面三个不常用而已 Ethernet和IEEE802 3属于以太链路层协议 数据链路层最常用的协议是Etnernet以太网协议 定义 Ethernet以太
  • 常用的加密算法

    整理一下常用的加密算法 加密算法我们整体可以分为 可逆加密和不可逆加密 可逆加密又可以分为 对称加密和非对称加密 一 不可逆加密 常见的不可逆加密算法有MD5 HMAC SHA1 SHA 224 SHA 256 SHA 384 和SHA 5
  • Flask(一)

    Flask 0 Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架 对于Werkzeug本质是Socket服务端 其用于接收http请求并对请求进行预处理 然后触发Fl
  • 设计模式——导论

    作为软件开发人员 我们在平时工作的过程中 往往需要编写很多的代码来实现我们的需求 很多的时候会造成代码臃肿和代码冗余的情况 这个时候我们需要引入一个理念 设计模式 设计模式存在的意义在于 1 使得我们的代码更加精炼 2 使我们代码的可读性更
  • 面试求职经历及遇到的部分问题

    转眼间已经工作一年多了 最近想换个工作环境 就选择了跳槽 跳槽对我们程序猿来说并没什么稀奇 但这是我第一次跳槽 也颇感激动 哈哈 总的来说 这次找工作还是相对去年来说比较容易的 毕竟已经工作一年了嘛 记得去年的时候投20份简历也不一定会有面
  • 开发者本地搭建性能监测工具(Windows)

    ElasticSearch 8 9 0 开发模式安装 JDK安装 官方提供版本与JDK支持关系 https www elastic co cn support matrix matrix jvm 我们安装Elasticsearch 8 9