tanzhuo

tanzhuo

专研技术的程序员

阿里云实时数仓

前言 使用阿里云现有的产品生态体系,可以解决企业自建集群复杂,难维护,部署成本高的问题。基于这些情况我们可以使用目前阿里云已有的产品进行开通,来满足企业业务需求。 目前面临痛点 1、底层数据库无法承载海量数据,根据后续企业发展,10T,100T,以及PB,EB数据量无法承载,以及无法支撑快速查询响应,数据分析以及数据挖掘等工作。 2、实时计算性能存在一定不足,需要通过可靠计算引擎进行毫秒级实时计算,并且数据质量可靠,可控,可遥测。 3、数据模型调整效率不够快速,不能够非常灵活的调整数据模型结构,快速的提供业务场景报表需求。 应用场景 * 基于Flink和规则引擎的实时风控解决方案 * 基于实时计算(Flink)与高斯模型构建实时异常检测系统 * 基于实时计算(Flink)打造一个简单的实时推荐系统 实时数仓 总体数据开发流程 数据拉取->数据缓冲->实时计算->下沉落库 组件选型 Flink 阿里云实时计算 Flink 版阿里云基于Apache Flink构建的企业级、高性能实时大数据处理系统,由Apache Fl
8 min read

Grpcs TLS 自签证书

由于微服务通讯需要进行数据加密以保证内网通讯安全。故此记录一下自签证书的生成过程。 以下是在 Linux 或 MacOS 系统上使用 OpenSSL 命令行工具生成自签名证书的步骤。这个过程将创建一个新的根证书(CA),然后使用这个根证书签名一个新的服务器证书。 先简明说明整体流程: 根证书: 1、生成根私钥 2、通过根私钥生成根证书 服务证书 1、生成服务私钥 2、通过服务私钥生成服务CSR 3、通过服务.csr 文件 + 根证书 + 根证书 key 签名出服务证书.crt文件 生成根证书的私钥 openssl genrsa -out ca.key 2048 这个命令将生成一个新的 RSA 私钥,长度为 2048 位。这个私钥将被保存到名为 ca.key 的文件中。 生成根证书
4 min read

SonarQube

前言 SonarQube是一个用于代码质量管理的开源平台,它可以帮助开发者在开发过程中识别和修复潜在的代码问题。SonarQube提供了静态代码分析、代码覆盖率报告、代码质量度量等功能,以帮助团队提高代码质量和降低维护成本。 Code Quality Tool & Secure Analysis with SonarQubeEmpower development teams with a code quality & security solution that deeply integrates into your enterprise environment that enables you to deploy Clean Code securely, consistently and reliably.Sonar SonarQube优势 1. 提高代码质量:SonarQube可以检测出潜在的代码缺陷、安全漏洞、性能问题等,帮助开发者在发布前修复这些问题,从而提高代码质量。 2.
3 min read

Dinky

前言 Dinkey 作为一款开源的Flink Job 控制台,使用起来非常的简单,轻量,可以管理多个Flink 集群,通过控制台即可在线编辑Flink SQL,编辑完成后即可提交到对应集群进行 Job 构建执行。 官网地址 www.dlink.top 功能描述 内置整库同步功能,可以解决微服务数据孤岛问题,把微服务对应的数据库表数据同步到实时数仓。并且支持多版本的Flink SQL数据开发,并且有数据血缘分析。整体功能完善度不错,非常推荐使用。
1 min read

Canal 组件

前言 Canal是一款开源的数据准实时复制(CDC)组件 目前市面上常见的CDC组件有:Canal、Debezium、Flink CDC 目前他们的工作机制大致都相同,均是通过解析数据库Binlog日志来得出具体数据的变更信息与操作类型。目前Canal的作用场景,作为实时数据同步工具,同步数据库数据,或把数据变更信息投递到MQ队列中。 Canal 目前只支持MySQL数据库。5.x 8.x 版本。 GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件阿里巴巴 MySQL binlog 增量订阅&消费组件 . Contribute to alibaba/canal development by creating an account on GitHub.GitHubalibaba 在高可用方面,Canal目前提供了集群方式,通过每个Service节点管理不同的同步任务实例进行任务的分发。
1 min read

Polaris Mesh

PolarisMesh是腾讯开源的一款用于构建微服务架构的组件,它提供了一种轻量级、高性能的服务网格解决方案。基于Go语言开发,对比同类产品Nacos,其功能的完善度,产品交互的体验上来说完善度要高上不少,并且对云原生的支持更加友好,微服务可以进行 无SDK集成接入。 PolarisMesh一个支持多语言、多框架的云原生服务发现和治理中心, 提供高性能SDK和无侵入Sidecar两种接入方式PolarisMesh 微服务治理 PolarisMesh提供了丰富的微服务治理功能,包括服务注册与发现、负载均衡、流量控制、熔断降级、服务限流等。这些功能可以帮助开发者更好地管理和控制微服务之间的通信和交互。 高性能代理 PolarisMesh内置了高性能的代理组件,可以实现快速的请求转发和响应处理。通过使用该代理,可以减少网络延迟,提高系统的吞吐量和响应速度。 多协议支持 PolarisMesh支持多种常见的通信协议,如HTTP、gRPC等,使得不同类型的微服务可以无缝地进行通信。这样,您可以选择适合您应用程序需求的协议,而不需要进行繁琐的配置和集成工作。
2 min read

阿里 ask 集群

前言 阿里云ASK(Alibaba Cloud ACK)集群是阿里云提供的托管式Kubernetes服务。它基于开源的Kubernetes项目,为用户提供了一个简便易用、弹性伸缩、高可用性和安全可靠的容器化部署和管理平台,相当于无服务器Kubernetes容器服务。您无需购买节点即可直接部署容器应用,无需对集群进行节点维护和容量规划,并且根据应用配置的CPU和内存资源量进行按需付费。ASK集群提供完善的Kubernetes兼容能力,同时降低了Kubernetes使用门槛,让您更专注于应用程序,而不是管理底层基础设施。 什么是容器服务 Serverless 版ACK Serverless_容器服务 Kubernetes 版 ACK-阿里云帮助中心本文介绍阿里云容器服务 Serverless 版的产品简介、核心优势、与ACK集群对比、应用场景、核心功能等信息,帮助您快速了解ACK Serverless集群。 ASK集群中的Pod基于阿里云弹性容器实例ECI运行在安全隔离的容器运行环境中。每个Pod容器实例底层通过轻量级虚拟化安全沙箱技术完全强隔离,容器实例间互不影响。 A
4 min read

架构设计原则

可扩展性 系统设计应该具备良好的可扩展性,能够支持未来的业务增长和需求变化。设计应该考虑到系统的模块化和分层架构,以便于添加新功能、处理更大的数据量和支持更多的用户。 可靠性 系统设计应该具备高可靠性,能够保证系统的稳定性和可用性。设计应该考虑到故障恢复机制、容错处理和备份策略,以便在系统发生故障时能够快速恢复并保证业务的连续性。并且高可用的架构需要具备:自动侦测、自动修复、自动切换。 极致性能 系统设计应该具备高性能,能够快速响应用户请求并处理大量的并发操作。设计应该考虑到合理的数据结构和算法选择、缓存策略、负载均衡和并发控制等,以提升系统的性能和吞吐量。 系统的性能由TPS决定,跟并发用户数没有多大关系。 系统的最大TPS是一定的(在一个范围内)但并发用户数不一定,可以调整。 建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。一般情况下,大型系统 (业务量大、机器多做压力测试,10000~50000个用户并发,中小型系统做压力测试,5000个用户并发比较常见。 吞吐量 (TPS) = 并发数/平均响应时间 安全性 系统设计应该具备高安全
3 min read

Ent-ORM

前言 Ent是由Facebook开发的一个基于Go语言的ORM框架,最初是作为Facebook内部项目而开发的。Ent最初的目标是为社交网络平台提供高效、可靠的数据访问和操作,后来被开源,成为了一个广受欢迎的Go语言ORM框架。 GitHub - ent/ent: An entity framework for GoAn entity framework for Go. Contribute to ent/ent development by creating an account on GitHub.GitHubent 框架的优势 1.高效性能:Ent采用了代码生成器,生成的代码非常高效,减少了ORM框架的性能损失。 2.易于使用:Ent提供了易于使用的查询构建器,可以轻松地构建复杂的查询语句。 3.可扩展性:Ent易于扩展,可以轻松地添加自定义的字段类型、查询操作和验证规则。 4.类型安全:Ent使用Go语言的类型安全来确保代码的正确性,
2 min read

Kratos

前言 Kratos是一款基于Go语言的开源微服务框架,由Bilibili开源并维护。提供了微服务所需的服务发现,注册,HTTP,GRPC,限流,配置中心等常用功能。框架设计合理,轻量,易上手。 框架优点 1. 高性能 Kratos框架使用Go语言的协程和高效的并发模型,能够支持高并发场景。此外,Kratos框架还使用了自研的GRPC框架,相比其他框架,能够更快地处理请求和响应。 2. 简单易用 Kratos框架提供了丰富的文档和示例,易于上手。框架的设计也非常简单,不需要开发者掌握过多的概念和技术。 3. 模块化设计 Kratos框架提供了一系列的模块,如配置、日志、数据库等,方便开发者快速搭建微服务。此外,Kratos框架还支持插件化开发,可以根据需要自行开发插件,扩展框架的功能。 4. 高度可定制化 Kratos框架提供了丰富的配置选项,可以根据不同的需求进行定制化配置。此外,Kratos框架还支持自定义中间件、拦截器等,开发者可以根据需要进行自行开发。 KratosKratos 具体功能 1. 微服务注册与发现:
4 min read

随心笔记

技术无止境 创新不停驻