云原生
文章平均质量分 75
云原生(Cloud Native)是一种构建和运行应用程序的方法,这种方法充分利用了云计算的灵活性、可扩展性和弹性。它主张应用程序应该设计成在云环境中以微服务的形式运行,采用容器进行打包和隔离,通过自动化和持续集成/持续部署(CI/CD)实现敏捷的开发与运维,以及利用云服务进行弹性伸缩和资源管理。
奔向理想的星辰大海
这个作者很懒,什么都没留下…
展开
-
构建高度可扩展的云原生应用的五个技巧
为了衡量这个解决方案的有效性,我们设置了一个包含24个代理和六个代理单元的实验性集群(有关完整配置的详细信息,请参见我们的白皮书)。我们的高层级目标可能与你自己基于云的系统的目标相似:提高性能和弹性,增加对我们自己和客户的成本效率,并在多个公有云上提供一致的体验。通过将架构分层以优化不同存储类型的使用,我们在提高性能和可靠性的同时降低了成本。如果你正在为你的组织构建云原生基础设施,无论是使用新代码还是使用像Kafka这样的现有开源软件,我们希望本文中描述的技术能帮助你实现性能、可用性和成本效率的目标。原创 2024-05-11 09:48:38 · 3 阅读 · 0 评论 -
时间序列数据处理,不再使用Pandas
Pandas DataFrame通常用于处理时间序列数据。对于单变量时间序列,可以使用带有时间索引的 Pandas 序列。而对于多变量时间序列,则可以使用带有多列的二维 Pandas DataFrame。然而,对于带有概率预测的时间序列,在每个周期都有多个值的情况下,情况又如何呢?图(1)展示了销售额和温度变量的多变量情况。每个时段的销售额预测都有低、中、高三种可能值。尽管 Pandas 仍能存储此数据集,但有专门的数据格式可以处理具有多个协变量、多个周期以及每个周期具有多个样本的复杂情况。原创 2024-05-09 09:20:20 · 4 阅读 · 0 评论 -
kubernetes集群部署EFK收集集群日志
Fluentd是一个用于统一日志层的开源数据收集器。# 插件地址:https://github.com/repeatedly/fluent-plugin-multi-format-parser。 # 匹配tag为raw.kubernetes.**日志信息。remove_key_name_field true # key_name 解析成功后删除字段。time_format %Y-%m-%dT%H:%M:%S.%NZ # 时间格式。原创 2024-04-29 10:28:57 · 9 阅读 · 0 评论 -
【值得收藏的种子搜索引擎】
LimeTorrents是一个功能强大的种子搜索引擎,可以搜索各种类型的种子文件和磁力链接。Zooqle是非常受欢迎的子搜索引擎,可以搜索各种类型的种子文件和磁力链接。1337x是一个非常受欢迎的种子搜索引擎,可以搜索各种类型的种子文件和磁力链接。种子搜索引擎和磁力搜索引擎是用于搜索和下载种子文件和磁力链接的工具。在搜索结果中选择一个种子文件或磁力链接,点击下载按钮。在搜索结果中选择一个种子文件或磁力链接,点击下载按钮。在搜索结果中选择一个种子文件或磁力链接,点击下载按钮。原创 2023-07-31 11:45:45 · 244492 阅读 · 3 评论 -
请立刻停止编写 Dockerfiles 并使用 docker init
如果您想在 Flask 应用程序中使用数据库,请从 docker-compose 文件中取消注释 db 服务配置,创建一个包含机密的本地文件,然后运行该应用程序。选择模板后,docker init 会要求您提供一些特定于项目的信息,自动为您的项目生成必要的 Docker 资源。接下来要做的就是选择应用程序平台,在我们的示例中,我们使用 python。原创 2024-04-23 09:36:48 · 310 阅读 · 0 评论 -
使用 python 将字符串中的单词反转
ll = list(str) # list()方法将字符串转换成了列表 ['a', 'b', 'c', 'd', 'e', 'f']str = list(str) # 将字符串str转换成列表 ['a', 'b', 'c', 'd', 'e', 'f']ll = list(str) # 将字符串str转换成列表 ['a', 'b', 'c', 'd', 'e', 'f']ll.reverse() # 将list反转,变成了 ['f', 'e', 'd', 'c', 'b', 'a']原创 2024-04-20 15:46:14 · 8 阅读 · 0 评论 -
一篇带给你 Redis BitMap 使用案例
每个IP地址对应Bitmap的一个bit,当某个IP地址访问时,将对应的bit设置为1。每个权限对应Bitmap的一个bit,当用户拥有某个权限时,将对应的bit设置为1。每个用户对应Bitmap的一个bit,当用户签到时,将对应的bit设置为1。每个用户对应Bitmap的一个bit,当用户浏览某个商品时,将对应的bit设置为1。这样,你可以根据用户的浏览行为,推荐与其兴趣相关的商品。使用Bitmap来记录用户的在线状态,每个用户对应Bitmap的一个bit,当用户在线时,将对应的bit设置为1。原创 2024-04-19 10:43:07 · 10 阅读 · 0 评论 -
使用并行处理提升python for循环速度
我们讨论了并行处理的概念,介绍了常用的并行处理库,以及展示了使用 multiprocessing 和 joblib 库进行并行处理的示例代码。然而,在使用并行处理时,需要注意避免共享资源的竞争和处理器负载的平衡,以免引入额外的复杂性。三、并行处理 for 循环的示例代码 为了演示如何使用并行处理技术来加速 for 循环,我们将采用一个简单的示例场景:计算一个列表中每个元素的平方值,并将结果存储在新的列表中。dask:这是一个灵活的第三方库,提供了并行处理和分布式计算的功能,适用于处理大规模数据集。原创 2024-04-17 11:05:01 · 9 阅读 · 0 评论 -
实战:编写一个 OpenTelemetry Extensions
因为我这个插件的主要目的是暴露一些自定义的 metrics,所以需要使用到 io.opentelemetry.api.metrics 这个包:创建生产者的时候将生产者对象存储起来OpenTelemetry 框架会每隔一段时间回调一个自定义的函数在这个函数中遍历所有的 producer 获取它的监控指标,然后暴露出去。}}回调函数,在这个函数中遍历所有的生产者,然后读取它的监控指标。原创 2024-04-16 10:17:45 · 295 阅读 · 0 评论 -
java 保存二进制转图片 java二进制转文件
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fa8Z3FlZ-1597894499680)(D:%5C%E5%88%98%E9%9B%A8%E5%85%B5%5C%E5%9B%BE%E7%89%87%5CDataOutputStream%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B%E5%9B%BE.PNG)]所有的文件都是以二进制文件存储的,所以从本质来讲,所有的文件都是二进制文件。这就是为什么Java的类文件存储为二进制文件的原因。原创 2024-04-14 11:43:59 · 13 阅读 · 0 评论 -
Python性能监控利器:执行时间计算的终极指南
测量 Python 脚本的执行时间对于代码优化和性能评估非常重要。本文介绍了多种方法来实现这一目标,包括使用内置的 time 模块,timeit 模块进行多次测量,cProfile 模块进行性能分析,以及 line_profiler 库进行逐行分析。选择适合你需求的方法,帮助你更好地理解和优化你的 Python 代码。Python工匠:案例、技巧与工程实践t=N7T8Python工匠:案例、技巧与工程实践https://union-click.jd.com/jdc?原创 2024-04-13 15:56:35 · 8 阅读 · 0 评论 -
RabbitMQ入门 快速让你完全掌握
RabbitMQ是一个功能强大的消息中间件,可以帮助我们解决分布式系统中的通信问题。通过掌握RabbitMQ的基本概念和用法,我们可以构建出高效、可靠且可扩展的分布式系统。希望本文能够帮助你快速入门RabbitMQ并应用到实际工作中去。原创 2024-04-13 15:33:16 · 12 阅读 · 0 评论 -
一文搞懂Tokenization
语言模型是对文本进行推理,文本通常是字符串形式,但是模型的输入只能是数字,因此需要将文本转换成数字形式。Tokenization是NLP的基本任务,按照特定需求能把一段连续的文本序列(如句子、段落等)切分为一个字符串序列(如单词、短语、字符、标点等多个单元),其中的元素称为token或词语。具体流程如下图所示,首先将文本句子切分成一个个单元,然后将子单元数值化(映射为向量),再将这些向量输入到模型进行编码,最后输出到下游任务进一步得到最终的结果。原创 2024-04-13 15:20:17 · 6 阅读 · 0 评论 -
Bash 脚本自动化 Docker 镜像构建、推送和 EKS 服务更新
将脚本保存为一个文件,例如update_service.sh。根据您的实际环境,修改脚本开头的环境变量值。确保已经安装了 AWS CLI 和 Docker,并且具有相应的权限。在脚本所在目录执行bash update_service.sh。脚本将自动执行以下步骤:构建新的 Docker 镜像并推送到 Amazon ECR。获取 BottleRocket AMI 的快照 ID。使用新的快照 ID 更新 EKS 节点组的 AMI。使用新的 Docker 镜像版本更新 Kubernetes原创 2024-04-11 09:50:57 · 64 阅读 · 0 评论 -
Kubernetes更新服务脚本
此外,还优化了一些命令的执行方式和参数传递方式,提高了脚本的可靠性和效率。本文将介绍一个优化后的 Bash 脚本,用于构建镜像、创建快照并更新 Kubernetes 资源。在创建快照时,直接将镜像名称作为参数传递给 snapshot.sh 脚本,无需使用逗号分隔的字符串。在发送钉钉通知时,使用 Unicode 编码的黑体字符代替 HTML 实体编码。将构建镜像、创建快照和更新资源的逻辑拆分为独立函数,提高可读性和可维护性。在构建镜像和发送通知时,直接使用变量而不是硬编码的值。# 构建并推送新镜像。原创 2024-04-10 09:43:14 · 128 阅读 · 0 评论 -
SpringBoot 的底层原理实现
可以想下,SpringBoot肯定是需要使用到Spring的核心能力的,而Spring的核心能力就是如何管理Bean的生命周期,那就脱离不了Spring的应用上下文,但是我们在使用SpringBoot的过程中,从头到尾都没有明确创建过Spring应用上下文。那么,什么是自动装配?笔者看来自动装配就像是搭积木,将多种形状的模型组装在一起,对应SpringBoot中的自动装配则是将单独的第三方功能,组装到Spring这个大的容器中,让Spring可以全权管理所涉及到的Bean实例,并在整个项目中使用。原创 2024-04-09 09:23:55 · 14 阅读 · 0 评论 -
golang并发写入mysql
出现panic情况:通道关闭以后,可以取值,但是不能传递值,会出现panic通道关闭后,如果再次关闭通道,会panic出现死锁的情况:通道中元素的容量超出也会死锁没有传递元素到通道里,直接取值,会死锁。原创 2024-04-08 10:47:16 · 125 阅读 · 0 评论 -
Spring在多线程环境下如何确保事务一致性
一次事务的完成通常都是默认在当前线程内完成的,又因为一次事务的执行过程中,涉及到对当前数据库连接Connection的操作,因此为了避免将Connection在事务执行过程中来回传递,我们可以将Connextion绑定到当前事务执行线程对应的ThreadLocalMap内部,顺便还可以将一些其他属性也放入其中进行保存,在Spring中,负责保存这些ThreadLocal属性的实现类由TransactionSynchronizationManager承担。(这里其实就是责任链模式的应用)原创 2024-04-03 09:53:24 · 10 阅读 · 0 评论 -
python中的数据结构详解
链表在python中使用类(相当于C中的结构)实现链表,实现方法也同C语言一样,但是python中没有指针的概念,于是就采用嵌套的方式,将一个实例赋给指针域,效果就同指针一样。除了第d层外,其它各层的节点数目均已达最大值,且第d层所有节点从左向右连续地紧密排列,这样的二叉树被称为完全二叉树,其中满二叉树的定义是所有叶节点都在最底层的完全二叉树;由以上的操作方法可知,python中的数组不仅可以像C语言中的数组一样进行操作,还支持像python中的可迭代对象一样的操作,以及一些其他的方法。原创 2024-04-03 09:37:51 · 91 阅读 · 0 评论 -
总结Kubernetes的Headless服务
StatefulSet是编排有状态应用的控制器。所谓有状态的应用就是一组具有唯一持久数据和固定访问名称的 Pod。StatefulSet主要用来部署有状态应用,比如部署ZK、Kafka、MySQL、Redis等。有状态的资源通常由两个组件构成:Headless Service和StatefulSet。Headless Service用于为各个Pod资源分配唯一固定的标识,然后生成DNS 解析记录。原创 2024-04-02 09:58:02 · 307 阅读 · 0 评论 -
提升单体springboot的并发数
从对接口响应内容的影响按业务进行拆分,将与接口响应数据相关的业务逻辑全拎出来,剩下的业务流程按需在各个阶段进行异步化处理,这部分可以走MQ、异步线程处理等等。将拎出来的那部分业务逻辑再进行拆分,找出可以并行处理的业务进行异步并行执行,如果依赖异步执行的数据时,可以监听并等待异步业务执行成功后再进行处理;降级,其实是最后的无赖之举,断臂求生,把所有资源都提供给核心业务,保证核心业务的正常服务,边缘业务暂停服务;将可以并行的业务剥离出来,异步并行执行,缩短整体业务执行时间,提升系统单位时间吞吐量;原创 2024-04-01 13:23:06 · 184 阅读 · 0 评论 -
四大分布式事务方案详解
但是,TCC模式要求开发人员在每个阶段都显式定义业务逻辑和补偿操作,这增加了系统的复杂性和开发成本,需要设计和维护每个阶段的逻辑,并确保它们之间的一致性。在这个阶段,系统会执行逆向操作,取消之前尝试阶段所做的操作,这样可以确保系统的状态回滚到事务开始之前的状态,以维持数据的一致性。这包括检查资源的可用性、锁定所需资源等,如果所有的检查都通过,系统会记录下所有的尝试操作,但并不会实际执行事务。如果事务操作成功执行,系统将确认并提交事务,在这个阶段,系统会持久化事务的结果,确保事务的最终执行。原创 2024-03-31 21:07:06 · 118 阅读 · 0 评论 -
Docker网络驱动程序:优化容器通信
为Docker系统选择正确的网络驱动程序以提供最佳的容器连接、性能、安全性和网络隔离是至关重要的。桥接是默认的Docker网络驱动程序,通常用于单个主机上的容器之间的本地通信。网络是容器化的重要组成部分,Docker提供了各种网络驱动程序来支持容器之间的通信以及与外部网络的通信。桥接和覆盖网络:网络驱动程序管理桥接和覆盖网络,促进容器之间的通信。本文将探讨Docker中网络驱动程序的重要性、它们的功能、可用的多种类型,以及选择合适的驱动程序来优化容器网络的最佳实践。原创 2024-03-31 21:03:53 · 15 阅读 · 0 评论 -
python+Selenium 以 IE 模式打开 edge 浏览器
是爬虫技术的一种重要的模块组件。注:当使用find_element选择的是符合条件的第一个元素,如果没有符合条件的元素,抛出NoSuchElementException异常;使用find_elements选择的是符合条件的所有元素,如果没有符合条件的元素,则返回空列表。在实际操作中,我们需要对一些弹窗进行处理,而这个时候,我们的WebDriver对象还是指向旧的窗口,所以无法对新窗口进行操作。# 查询div的class属性为aa的子元素span标签id属性为bb的后代元素中,以http开头的href属性。原创 2024-03-31 20:56:14 · 76 阅读 · 0 评论 -
Redis变慢了,快速排查解决方案
生成RDB和AOF都需要父进程fork出一个子进程进行数据的持久化,在fork执行过程中,父进程需要拷贝内存页表给子进程,如果整个实例内存占用很大,那么需要拷贝的内存页表会比较耗时,此过程会消耗大量的CPU资源,在完成fork之前,整个实例会被阻塞住,无法处理任何请求,如果此时CPU资源紧张,那么fork的时间会更长,甚至达到秒级。这会严重影响Redis的性能。即使这样,我们也不建议使用大key,大key在集群的迁移过程中,也会影响到迁移的性能,这个后面在介绍集群相关的文章时,会再详细介绍到。原创 2024-03-30 22:22:45 · 125 阅读 · 0 评论 -
揭秘LangGraph的无限潜能
首先,它导入了所需的模块和类,包括内容管理的`hub`对象、创建OpenAI 函数代理的`create_openai_functions_agent`函数、与OpenAI 聊天模型交互的`ChatOpenAI`类和提供搜索功能的`TavilySearchResults`类。例如,当我们从向量库中搜索内容时,我们首先输入提示词,然后通过向量比对进行搜索,并返回结果,这个过程就是一个典型的DAG,每个步骤都严格按顺序执行。这个状态对象由图中的节点更新,节点会以键值对的形式,返回对状态属性的操作。原创 2024-03-30 22:02:52 · 12 阅读 · 0 评论 -
Python 初始化list 的具体方法
首先,我们可以使用range函数生成一个指定长度的连续整数序列,然后通过循环逐个添加到List中。列表生成式可以根据特定的规则生成一个List,并且可以使用占位符来指定生成的元素的个数。如果你安装了numpy库,还可以使用numpy库中的zeros函数来初始化一个指定长度的List。你可以根据自己的需求选择合适的方法。无论使用哪种方法,都可以很方便地初始化一个固定长度的List,并进行后续的操作。这里使用了numpy库中的zeros函数生成一个包含5个全零的List,并将其转换为普通的List类型。原创 2024-03-30 21:53:20 · 9 阅读 · 0 评论 -
MQ队列 消息队列的七种经典应用场景
曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 和大家分享消息队列的七种经典应用场景。原创 2024-03-29 15:35:46 · 88 阅读 · 0 评论 -
比 ElasticSearch 快 1000 倍的日志引擎
SigLens凭借高效的日志处理能力和简易的操作流程,正迅速在开源社区中获得认可。从基础部署到复杂查询,SigLens都展现出其强大的实用性。原创 2024-03-28 10:46:32 · 23 阅读 · 0 评论 -
搞懂分库分表 12 种分片算法
本文中我们讲解了ShardingSphere-jdbc所支持的12种分片算法,每种算法都具有独特的特点。在实际应用中,需要结合具体的业务场景来灵活选择和应用适合的分片算法。原创 2024-03-26 10:40:34 · 113 阅读 · 0 评论 -
Python爬虫:从干饭开始,轻松掌握技巧
本文的重点在于引导读者如何初步掌握爬虫技术。初步掌握爬虫技术并不难,但是在实际操作中可能会遇到一些困难,比如一些网站不允许直接访问,需要登录或者进行各种人机验证等。因此,最好先从爬取一些新闻资讯类的网站开始,因为这样相对容易。涉及用户支付等敏感信息的网站就不那么容易获取了。原创 2024-03-26 10:22:40 · 12 阅读 · 0 评论 -
别让 Docker 毁了你的 MySQL!
Docker 容器技术的火热,越来越多的应用开始被"装箱"。我们这些开发者享受着 Docker 带来的便捷和灵活,几乎恨不得把所有东西都塞进容器里。于是,连 MySQL 这样的有状态服务,也开始频频出现在 Docker 的舞台上。但是,?是否会给系统稳定性和数据安全带来隐患?这个问题在社区里引发了激烈的讨论。原创 2024-03-25 11:07:10 · 240 阅读 · 0 评论 -
spring多数据源动态切换的实现原理及实现
当系统执行数据库操作之前,会先获取数据源链接,即调用getConnection方法,该类重写的getConnection方法,会获取到真正的目标数据源,进而将数据库操作委托给目标数据源进行处理。根据业务需求选择不同类型的数据源,实现对多数据库的支持。数据源负载均衡:根据负载均衡策略来选择合适的数据源,将请求均匀地分配到不同的数据源上,提高系统的整体性能和可伸缩性。读写分离:为了提高数据库的读写性能,可能会采用读写分离的方式,根据读写操作的类型来选择合适的数据源,实现读写分离。* 数据源名称,默认主库。原创 2024-03-25 10:38:06 · 579 阅读 · 0 评论 -
机器学习:Github上排名前19个强化学习 (RL)项目
其他流行的 RL 项目包括 rllab,一个用于开发和评估强化学习算法的工具包;gym,用于开发和比较强化学习算法的工具包;此外,您还可以在线找到教程和课程,帮助您开始 RL 开发。最后,重要的是要记住,开发 RL 应用程序需要练习和耐心 - 但只要有足够的奉献精神和努力工作,您就可以成为该领域的专家。项目源代码网址:https://github.com/google-research/football。项目源代码网址:https://spinningup.openai.com/en/latest/原创 2024-03-24 17:39:22 · 53 阅读 · 0 评论 -
软件License授权原理
本文将介绍License的生成原理,理解了License的授权原理你不但可以防止别人破解你的License,你甚至可以研究别人的License找到它们的漏洞。可找回是指用户申请的License一旦丢失或者要续期,基于第一次申请License时创建的源文件,再一次生成新的License,新的License会携带用户当初申请时的信息。保密性是指License里携带的data信息具有一定的隐蔽性,这样可以防止想要破解License的人寻找到生成License的规律,进而伪造自己的License。原创 2024-03-24 17:27:29 · 27 阅读 · 0 评论 -
Node.js 中发出 HTTP 请求的五种方法
axios比superagent的功能列表很长,尽管 node-fetch 看起来很有前途并且安装大小很小,但我不确定该 API 是否足够用户友好——至少对我来说是这样。原创 2024-03-23 20:54:04 · 30 阅读 · 0 评论 -
HarmonyOS应用开发-搭建开发环境
搭建 HarmonyOS 应用的开发环境,介绍下载安装 DevEco Studio 开发工具和 SDK 的详细流程。华为鸿蒙 DevEco Studio 是面向全场景的一站式集成开发环境,面向全场景多设备,提供一站式的分布式应用开发平台,支持分布式多端开发、分布式多端调测、多端模拟仿真,提供全方位的质量与安全保障。原创 2024-03-23 20:20:48 · 6 阅读 · 0 评论 -
为什么说 Java 程序员必须掌握 Spring Boot
Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。综上我们可以这样来理解,正是由于 Spring Ioc 和 Spring Aop 两个强大的功能才有了 Spring ,Spring 生态不断的发展才有了 Spring Boot ,使用 Spring Boot 让 Spring 更易用更有生命力,Spring Cloud 是基于 Spring Boot 开发的一套微服务架构下的服务治理方案。原创 2024-03-22 16:14:33 · 12 阅读 · 0 评论 -
掌握Docker网络驱动程序:优化容器通信
通过了解常见Docker网络驱动程序的优点和限制,并遵循推荐的实践,可以利用Docker容器的全部功能,并为应用程序优化通信。为Docker系统选择正确的网络驱动程序以提供最佳的容器连接、性能、安全性和网络隔离是至关重要的。连接到桥接网络的容器可以通过主机的内部网络相互通信。网络是容器化的重要组成部分,Docker提供了各种网络驱动程序来支持容器之间的通信以及与外部网络的通信。本文将探讨Docker中网络驱动程序的重要性、它们的功能、可用的多种类型,以及选择合适的驱动程序来优化容器网络的最佳实践。原创 2024-03-22 16:07:48 · 10 阅读 · 0 评论 -
基于EasyExcel实现百万级别数据导出
以上便是笔者的百万级别数据导出的落地方案,可以看出笔者着重在分页查询大小和分页查询sql上进行重点优化,通过平衡分页查询的数据量和IO次数找到合适的pageSize,再通过上一次分页查询结果定位下一次查询的id作为where条件,避免分页查询时的全秒扫描以得到符合业务需求的高性能sql,从而完成百万级别数据的高效导出。这里需要注意一点,因为我们分页查询面对的是百万级别的数据,所以随着分页的推进势必出现深分页导致查询效率势降低,所以为了提高分页查询的效率,我们可以利用查询数据有序的特性,通过。原创 2024-03-22 14:39:50 · 8 阅读 · 0 评论