ElasticSearch ClickHouse Doris 三个数据库的区别
ElasticSearch、ClickHouse、Doris三大数据库深度对比
Elasticsearch、ClickHouse、Doris是三种不同定位的数据库,分别针对特定场景优化。本文对三者进行深度对比分析,帮助您根据业务需求选择最合适的解决方案。
基础架构对比
数据库
定位
存储模型
架构特点
适用场景
Elasticsearch
分布式搜索和分析引擎
文档型(JSON)
分片+倒排索引
全文检索、日志分析
ClickHouse
列式OLAP数据库
列式存储
向量化执行引擎
海量数据高速分析
Apache Doris
MPP架构实时数仓
列式存储
兼容MySQL协议
企业实时报表、多表关联
1. Elasticsearch详解核心优势
全文检索
复杂条件过滤
实时分析(非结构化数据)
典型应用场景
日志分析:ELK Stack生态(Elasticsearch + Logstash + Kibana)
全文搜索:电商平台商品搜索、内容网站检索
高维数据聚合:用户行为分析、地理位置服务
优点
强大的全文检索能力(支持模糊匹配、高亮显示等高级搜索功能)
优 ...
记一次 OpenVPN 配置解决 RDS 安全问题
记一次 OpenVPN 配置解决 RDS 安全问题1. 问题背景出于某些原因,线上 RDS 数据库的访问凭证(用户名密码)泄露到了公司内部。这导致了几个潜在的安全隐患:
公网访问风险:公司网络环境下,由于 RDS 公网地址的 IP 白名单包含了公司出口 IP,无权限的同事获取公网 RDS 地址后可以直接连接线上数据库
VPN 访问风险:连接公司内网 VPN 后,可以通过 RDS 内网地址连接到数据库
跳板机风险:测试服务器可以作为跳板,通过内网 RDS 地址连接线上库
本文记录了如何通过配置来逐一解决这些问题,确保只有授权人员可以访问线上数据库。
2. 解决方案2.1 剔除 RDS 公网访问白名单问题:公司网络环境下可以通过公网 RDS 地址访问线上数据库
解决方法:
在阿里云 RDS 控制台的安全设置中,将公司的外网出口 IP 从白名单中移除,这样公司网络环境下就无法通过公网地址连接数据库了。
2.2 阻断 VPN 连接内网 RDS 的通道问题:连接公司 VPN 后可通过内网地址访问 RDS
当前配置:OpenVPN 服务端配置文件中的路由配置如下:
12# 该配置使整个网段的流 ...
SpringBoot 3.4.3 引入 Nacos
安装 Nacos查看官网手册
SpringBoot 引入 Nacos1. 添加依赖在 pom.xml 中添加以下依赖(兼容 Spring Boot 3.4.3):
123456789101112131415161718192021<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2023.0.1.0</version> <type>pom</type> <scope>import</scope> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba.c ...
AI 大模型的 Temperature 参数到底是干嘛用的,该怎么设置
AI 大模型的 Temperature 参数是用来控制模型生成输出时的随机性和创造性的一个关键指标。具体来说,它调整的是生成结果的概率分布平滑度。
工作原理
模型生成文本时,每个可能的词都有一个预测概率(由软最大值归一化生成)。
Temperature 参数用于控制这个概率分布的尖锐程度或平滑程度:
低 Temperature(趋近 0):
让分布更尖锐,模型会倾向于选择概率最高的词。
结果更加确定性,输出更保守。
高 Temperature(>1):
让分布更平滑,模型有更高的几率选择低概率的词。
结果更加随机,输出更具创造性。
数学上,Temperature 会作用在预测概率上:
其中 T 是 Temperature 参数。
当 𝑇 → 0:会使最高概率的词占主导,结果变得更确定。
以下是关于其他AI大模型文档中关于各种请求参数的介绍
Moonshot AI
DeepSeek API 文档
云服务器其中一台服务器和另外几台互相ping不通的问题排查
现象描述我们在阿里云上有 12 台服务器,其中 2 台服务器是部署了 doris 服务,内网IP(172.21.212.227,172.21.212.225),还有一台后台服务器内网IP(172.18.20.233),目前发现后台服务器和那两台 doris 服务器互相 ping 不通,其余的服务器都能和 doris 互相 ping 通。这说明肯定是后台服务器的设置问题。
问题排查从 IP 可以看到两台 doris 服务和后台服务器的网段不一样,一个是 21,一个是 18。
先使用 route -n 看一下路由表
1234567891011[root@iZbp15ykl21vqt34uyqcolZ ~]# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 172.18.31.253 0.0.0.0 UG 0 0 0 eth010.174.215 ...
Vercel绑定自定义域名
❓为什么要绑定自定义域名?
vercel默认提供的域名 *.vercel.app 由于滥用已被大陆屏蔽(DNS污染),如果需要在国内能访问到您的站点,请绑定一个新的域名即可
准备一个域名首先购买自己的域名,您可以选择以下渠道进行购买:
腾讯云
阿里云
这里就不赘述了,域名买好然后备案好
Vercel控制台配置
在Vercel控制面板中找到 Setting→Domains→Add,在这里可以指定当前项目的绑定域名,一个项目可以绑定多个域名。
输入域名,并Add之后,如果看到下图中的提示(Invalid Configuration)👇, 说明域名已经添加,但需要根据提示添加CNAME或Nameserver的方式激活它,图中所示是要在域名后台添加一条CNAME类型的解析,参数名blog1,值为cname.vercel-dns.com。
这里推荐使用CNAME绑定。请按文档后续步骤配置对应的Cname解析。
配置CNAME解析以下分多个平台举例,配置方法大同小异,只是入口不太一样,我这里主要讲阿里云的配置方法
打开控制台 https://dc.console.aliyun.co ...
Docker系列 Uptime Kuma监测网站连通性
前言上周六上午出了一个事故,核心业务接口挂了2个小时没人知道,直到看到数据后不对劲经排查才发现是接口挂了导致的。
然后赶紧启动服务,随后开始查询问题出在哪里,先是看 Nginx 日志发现很大,Nginx 被错误日志打到有45个G,直接 vim 压根打不开。
然后根据 split -b 1G nginx.error.log errLog_ 命令把错误日志按每个文件 1G 来分割成了45个文件,方便查看日志排查问题。
vim 最早的 errLog_aa 文件发现其中最早的报错是 upstream prematurely closed connection while reading response header from upstream
这个报错可能是由于数据量突增导致的,然后发现确实从周五开始请求量和数据量突增,加上是单台机器导致了服务被打挂。
解决加机器首先肯定是加机器来分摊压力,用 Nginx 部署负载均衡
接口状态监控其次是要找一个可以监控接口状态的,如果说接口挂了可以发邮件被动知晓的,又不想很重的。
就找到了本次讲的 uptime-kuma。
uptime-kuma 支持监控 ...
Java的Webmagic爬虫实践
前言有个需求,需要抓取天气的资讯文章,而该项目是用 Java 写的,由于爬虫需求也较小,所以就索性直接用 Java 来爬。
Java 有个包是 webmagic 本次就是用的这个包做的实践。
我们要采集的网址是 https://www.weather.com.cn/index/jqzdtqsj/index.shtml 打开这个网址可以看到是个列表,并且有分页。
配置 Maven 依赖12345678910<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.10.3</version></dependency><dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-extension</artifac ...
支付宝周期扣款逻辑梳理和代码流程设计
周期扣款支付后签约场景文档支付宝周期扣款产品介绍
业务流程
请求支付字符串时携带签约信息拉起支付,并创建待签约的订阅表信息
处理签约成功回调,添加到订阅表
定时任务自行请求订阅表,把达到扣款日期的订阅,然后请求支付宝扣款,再计算下次扣款时间
处理签约解除回调,修改订阅表数据状态。(需要去设置网关回调地址)
数据表设计1. 用户周期扣款订阅表1234567891011121314151617181920CREATE TABLE `customer_period_subscribe` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `app_id` bigint(20) NOT NULL DEFAULT '0', `customer_id` bigint(20) NOT NULL DEFAULT '0', `vip_config_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '签约时购买的vip配置ID', `chann ...
SpringBoot 接口参数解密的实现方法(使用注解)
前言在 App 开发中,为了防止开发者轻易通过抓包获取到接口请求数据和响应数据,我们会对请求参数进行加密,后端通过解密获取,并加密返回给客户端,客户端通过解密获取。
而如果简单的在每个接口的 Controller 中来对请求参数解密,未免有些太傻,且如果想实现只有正式环境需对请求参数加密,测试环境无需加密,如果这种逻辑在 Controller 中写,更过于傻。
这次通过定义注解的方式来实现接口请求参数的统一解密,并在注解中判断是否需要解密。
加解密本身并不是什么有难度的事情,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办法,这种方式虽然粗暴,但是灵活,因为可以拿到一手的请求参数和响应数据。不过 SpringBoot 中给我们提供了 ResponseBodyAdvice 和 RequestBodyAdvice,利用这两个工具可以对请求和响应进行预处理,非常方便。
所以这篇文章关于接口参数解密我们使用 RequestBodyAdvice 来实现。
定义注解接下来我们先定义一个注解
1234567891011package com.sktk.keepAccou ...