有没有专业做挂的网站吗,seo推广要多少钱,犀牛云做网站,网络推广怎样做Logstash Logstash 是开源的服务器端数据处理管道#xff0c;能够同时从多个来源采集数据、格式化数据#xff0c;然后将数据发送到es进行存储。 ElasticSearch Elasticsearch 是基于JSON的分布式搜索和分析引擎#xff0c;是利用倒排索引实现的全文索引。 KibanaKibana 能够… Logstash Logstash 是开源的服务器端数据处理管道能够同时从多个来源采集数据、格式化数据然后将数据发送到es进行存储。 ElasticSearch Elasticsearch 是基于JSON的分布式搜索和分析引擎是利用倒排索引实现的全文索引。 KibanaKibana 能够可视化 Elasticsearch 中的数据并操作。 es在elk生态圈中处于核心地位是开源大规模基于倒排索引的全文搜索分析引擎他几乎能实时的支持存储搜索分析。优势: 横向可扩展性: 增加服务器可直接配置在集群中分片机制提供更好的分布性: 分而治之的方式来提升处理效率高可用: 提供复制replica机制实时性: 通过将磁盘上的文件放入文件缓存系统来提高查询速度 基本概念 Index: 一系列文档的集合类似于mysql中数据库的概念Type: 在Index里面可以定义不同的typetype的概念类似于mysql中表的概念是一系列具有相同特征数据的结合。Document: 文档的概念类似于mysql中的一条存储记录并且为json格式在Index下的不同type下可以有许多document。Shards: 在数据量很大的时候进行水平的扩展提高搜索性能Replicas: 防止某个分片的数据丢失可以并行得在备份数据里及搜索提高性能 elasticsearch查询语法 _cat API 查询当前es集群的相关消息包括集群中的index数量、运行状态、当前集群所在的ip目的在于将查询的结果以更加友好的方式输出。 cat: 输出_cat api中所有支持的查询命令cat health: 检查es集群运行的状况cat count: 可以快速的查询集群或者index中文档的数量cat indices: 查询当前集群中所有index的数据包括index的分片数、document的数量、存储所用的空间大小...其他cat api参考官方文档: www.elastic.co/guide/en/el…[1] Search APIs 搜索数据查询语法多功能强大REST request URI: 轻便快速的URI查询方法REST request body: 可以有许多限制条件的json格式查询方法 query: 在请求消息体中的query允许我们用Query DSL的方式查询。 term: 查询时判断某个document是否包含某个具体的值不会对被查询的值进行分词查询match 将被查询值进行分词然后用评分机制(TF/IDF)进行打分match_phrase: 查询指定段落Bool: 结合其他真值查询通常和must should mustnot(与或非)一起组合出复杂的查询range: 查询时指定某个字段在某个特定的范围 location / {# 指向我们打包后上传的前端文件root /opt/nginx/dist;index index.html;}location /jwt/ {# 转发请求到后端服务网关proxy_pass http://127.0.0.1:8765/jwt/;}location /api/ {proxy_pass http://127.0.0.1:8765/api/;} 默认的 Nginx 配置文件路径如下 Nginx 主配置文件路径/www/server/nginx/conf/nginx.conf网站配置文件路径/www/server/panel/vhost/nginx/默认主页文件路径/www/server/panel/vhost/index.html 1.开始nginx 切换到相应路径 start nginx.exe 2.重新加载配置文件 nginx -s reload 进入jar包所在路径输入nohup java -jar xxx.jar 按下回车后再输入exit注意一定要输入exit才能让其一直运行。要想让其停止运行输入netstat -antp | grep java然后停止对应进程:kill -9 pid TypeError: Failed to execute fetch on Window: Request with GET/HEAD method cannot have body. 一、Swagger报错 1、报错类型 TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have body 2、解决方案 请求方式错误请求参数使用了RequestBody注解就要用Post来进行请求 二、RequestParam与RequestBody的区别 1、RequestParam RequestParam接收的参数是来自requestHeader中即请求头。通常用于GET请求。 2、RequestBody RequestParam接收的参数是来自requestBody中即请求体。主要用来接收前端传递给后端的json字符串中的数据的所以只能发送POST请求。 server {listen 80;server_name www.aaa.ink;client_max_body_size 1000M;client_body_timeout 20s;client_header_timeout 10s;send_timeout 30s;ssl_protocols TLSv1.2;charset utf-8;#后端接口location ^~ /api/ {proxy_pass http://127.0.0.1:8080/api/;}location ~/(.*)$ {#前端项目root /usr/local/nginx/ttm;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}
} LB 转发的时候带上 X-Forwarded-Port 请求头转发原始请求的端口号需要 LB 转发自己能够控制我们如果要配置还需要让 DevOps 的童鞋帮忙弄如果完全是自己控制的就比较方便【推荐】在使用 Swagger 中间件之前把 X-Forwarded-Port 请求头设置为 443不够灵活如果访问 LB 是 http 或者有特别的端口号就会有问题在使用 swagger 中间件之前把 X-Forwarded-Host 请求头移除掉这样就不会有 servers 这个属性了(感觉不够优雅)注册一个 PreSerializeFilter 把 Servers 清空 在Swagger UI中您可以使用servers配置指定API的服务器信息。这使您能够在Swagger UI中定义和切换不同的服务器配置以便与不同的API环境进行交互。 以下是一个示例Swagger UI配置文件演示如何使用servers配置 import springfox.documentation.swagger.web.SwaggerResource;
import springfox.documentation.swagger.web.SwaggerResourcesProvider;
import java.util.ArrayList;
import java.util.List;Configuration
public class SwaggerConfig {Value(${swagger.enabled:true})private boolean enabled;Value(${swagger.pathMapping:/api})private String pathMapping;Beanpublic Docket api() {return new Docket(DocumentationType.OAS_30).enable(enabled).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build().securitySchemes(securitySchemes()).securityContexts(securityContexts()).pathMapping(pathMapping).servers(servers());}private ListServer servers() {ListServer servers new ArrayList();servers.add(new Server(https://1024bat.cn));// 添加其他服务器配置return servers;}// 其他方法...} 具体的错误消息为 org.apache.ibatis.type.TypeException: Could not set parameters for mapping。该错误通常发生在尝试为 MyBatis 映射中的参数设置值时出现问题。 根据错误消息这个具体的问题是 Error setting non null for parameter #1 with JdbcType null即尝试为第一个参数设置非空值时出现了问题并且 JdbcType 为 null。另外错误消息还提到了一个类型转换问题java.lang.ClassCastException: class java.lang.Long cannot be cast to class java.lang.String。 这意味着在你的 MyBatis 映射文件中可能存在一个参数类型不匹配的问题。具体地说它期望一个 String 类型的参数但实际传入的是一个 Long 类型的值导致类型转换失败。 为了解决这个问题你可以尝试以下几个步骤 检查参数类型检查 MyBatis 映射文件中相关的参数定义确保参数类型与数据库字段的类型匹配。如果参数类型与数据库字段类型不匹配可能会导致类型转换错误。检查传入的参数值检查代码中传入的参数值确保参数值的类型与 MyBatis 映射文件中定义的参数类型一致。如果参数值的类型不正确你可能需要进行相应的类型转换或更正。设置正确的 JdbcType在 MyBatis 映射文件中尝试为该参数设置一个合适的 JdbcType。你可以通过在映射文件中的参数定义中添加 jdbcType 属性来指定 JdbcType例如 jdbcTypeVARCHAR。检查配置检查 MyBatis 的配置文件确保没有配置问题例如类型别名或类型处理器的配置。 image.png 如果你希望在Spring Boot中当数据库中没有对应值时仍然返回字段但其值为空你可以使用Jackson库的另一个配置选项。 在Spring Boot的配置文件中添加以下配置 spring.jackson.default-property-inclusionnon_empty 或者在application.yml配置文件中使用以下配置 spring:jackson:default-property-inclusion: non_empty 这将告诉Jackson在序列化对象时忽略值为null或空的属性并只返回非空属性。当数据库中没有对应值时该属性将被序列化为空字符串而不是null。 请注意non_empty选项除了将null值排除在外还会排除空字符串、空集合、空数组等。如果你只想排除null值而保留空字符串请使用non_null选项。 使用上述配置后当属性的值为null时它将被序列化为一个空字符串。如果属性的值为空字符串或空集合则不会返回该属性。 SpringBoot Jackson 支持 Java8 LocalDate 格式和 null 转 “” Beanpublic ObjectMapper objectMapper() {ObjectMapper objectMapper new ObjectMapper();// 1.将null转objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializerObject() {Overridepublic void serialize(Object paramT, JsonGenerator paramJsonGenerator, SerializerProvider paramSerializerProvider) throws IOException {//设置返回null转为 空字符串paramJsonGenerator.writeString();}});// 2.支持java8 LocalDate时间objectMapper.findAndRegisterModules();return objectMapper;} default-property-inclusion配置属性有以下几个选项 always: 始终包含属性即使属性值为null或空值。non_null: 只包含非null的属性其他空值如空字符串、空集合、空数组将被排除。non_absent: 包含非null和非缺失absent的属性。缺失指的是在JSON中未出现的属性。non_default: 包含非null和非默认值的属性。默认值是指Java对象字段的默认初始化值例如0、false、空字符串等。non_empty: 包含非null和非空的属性其他空值如空字符串、空集合、空数组将被排除。null: 包含所有属性即使属性值为null或空值。 在Spring Boot中默认的配置选项是default-property-inclusionnull即所有属性都被包含在序列化的结果中包括null和空值。 根据提供的错误信息看起来存在JSON解析错误。错误提示显示在解析过程中遇到了意外的字符}期望的是双引号以开始字段名。 这种情况通常发生在接收的JSON数据格式不正确时可能是由于发送的数据格式错误或存在其他格式问题。请确保传递给JSON.parse()的数据是有效的JSON字符串并符合JSON的语法要求。 您可以尝试检查传递给JSON.parse()的event.data数据并确保它是有效的JSON字符串。检查JSON字符串中是否存在不正确的字符、缺少引号或其他语法错误。 另外您可以使用console.log(event.data)输出接收到的event.data数据以便查看实际接收到的内容。这样可以更好地了解接收到的数据以便进一步调试和定位问题。 如果您需要更详细的帮助请提供实际接收到的event.data数据以便我能够更准确地帮助您解决问题。 加群联系作者vxxiaoda0423 仓库地址https://github.com/webVueBlog/JavaGuideInterview 参考资料 [1] https://link.jianshu.com?thttps://www.elastic.co/guide/en/elasticsearch/reference/5.5/cat.html: https://link.juejin.cn?targethttps%3A%2F%2Flink.jianshu.com%3Ft%3Dhttps%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2F5.5%2Fcat.html