文章
问答
冒泡
  • EdgeX Foundry之Device Service SDK源码刨析
    DeviceService简介 DeviceService在Edgex Foundry中用于连接设备,他们直接与设备打交道,可以看作是设备的驱动吧。DeviceService作用的作用有:获取设备的状态;接收处理设备发过来的数据并发送到EdgeX;变更设备配置;设备发现。下面是基于Golang版本的Device Service SDK做一个主体流程的梳理说明。 核心流程节点 流程图 核心节点说明 首先说明一下,EdgeX Foundry中message bus下面涉及的相关的topic中使用的BaseTopic默认为edgex,是可以自定义的。 message bus其实很简单,消息体都是Me...
  • 在React中使用Threejs加载外部模型
    相关资料整理: 官方api文档:https://threejs.org/docs/ Three.js中文网:http://www.webgl3d.cn/pages/aac9ab/ github上的学习教程:https://github.com/puxiao/threejs-tutorial react+threejs: @react-three/fiber giuhub: https://github.com/pmndrs/react-three-fiber @react-three/fiber文档:https://sbcode.net/react-three-fiber https://fi...
  • 使用Langchain框架实现本地知识库
    LangChain介绍:LangChain中文文档 LangChain 是一个开发由语言模型驱动的应用程序的框架。我们相信最强大和不同的应用程序不仅会通过 API 调用语言模型, 还会: 数据感知 : 将语言模型连接到其他数据源 具有代理性质 : 允许语言模型与其环境交互 为什么要实现本地知识库? 在信息时代,知识的生成和传播速度日益加快,对知识的管理和利用成为了企业和个人提升效率和竞争力的关键。随着人工智能和机器学习技术的快速发展,大语言模型应运而生,它们可以处理和生成自然语言文本,提供问答服务,生成内容以及在多个领域内协助决策等。然而,即便是最先进的大语言模型也存在局限性和痛点。因此,建立...
  • 运维眼中的源代码版本管理
    源代码的管理可以说是所有软件应用的基石,它也是生命周期的开始。我会从这里开始详细的回顾整个软件生命周期的每一个流程 源代码版本管理 源代码版本管理是一种系统化的方法,用于跟踪和管理软件开发过程中的源代码的变化。它允许开发团队记录、控制和协调不同版本的代码,以便更好地进行协作和追踪变更历史。 源代码版本管理系统的主要功能包括: 版本控制:源代码版本管理系统可以跟踪和记录源代码的每个版本的变化。开发人员可以创建新的版本、回滚到先前的版本,以及在不同版本之间进行比较和合并。 协作与并行开发:多个开发人员可以同时在同一代码库上工作,而不会相互冲突。每个开发人员可以在自己的本地副本上进行更改,并将其推送...
  • 运维眼中的源代码测试与构建
    在上一篇文章中已经概述了软件服务源代码的版本管理,那么接下来就是软件服务的构建与测试了,它决定了软件的稳定性和健壮性。这篇文章会谈谈我对软件服务测试构建的看法 软件的测试与构建 在我看来,软件的测试有几个部分组成: 单元测试:这是对开发完成自己相应功能的逻辑测试,它仅仅只是测试代码的运行逻辑。 集成测试:这是对开发完成自己相应功能的业务逻辑测试,它标志着开发的功能是否符合业务需求。 UAT测试:在UAT环境中对功能进行真实的测试,它标志着开发的功能是否能上产线。 软件构建的方式很多,不同的语言构建的工具也不尽相同,但是最终都需要把构建的制品存放在制品仓库中,存放的制品方式也有2种: Monor...
  • 运维眼中的软件生命周期
    在Devops岗位已经工作了差不多5年的时间,期间也遇到了许多的问题,很久没有写过博客来回顾一下这5年的工作经历了,趁现在闲来无事记录一下我眼中的软件生命周期。 几个人的软件 当我大学刚毕业的时候,有一段时间和同学一起做了一个很简单的网站,当时我们4个人一起开发,网站做的也很简单,整个软件的开发周期是这样的。 代码简单的用svn来管理,没有明确的版本管理,大家都一股脑的往一个分支里面提变更。 开发完的功能只是在本地简单的测试了一下 测试完成的软件也只是简单的打了一个war包,然后上传到远程的服务器中 远程服务器用的简单的tomcat服务,并使用IIS做代理(IIS是微软的一个web服务组件) ...
  • 运维眼中的CI流程
    软件开发中的测试构建就是一个不断循环的过程,软件就是在这个过程中不断地迭代更新,这里就会涉及一个软件持续构建的流程,就是我们通常说的CI(Continus Intergration)持续集成。 在软件开发过程中,良好的CI/CD流程是提高团队协作效率的重要因素。通过使用一些集成工具,如Jenkins、Github Action和Buildkite,我们可以实现强大的功能,并为公司提供一个高效的CICD平台。虽然这些工具在实现方式上有所不同,但对于流程来说,它们的作用是相似的。然而,实施一个成功的CI/CD流程需要团队成员具备良好的代码验证和测试意识。本文将讨论开发新功能和BUG修复、Hotfi...
  • 运维眼中的CD流程
    CD(Continues Deployment)指的就是可持续性部署软件,由于一直从事的是互联网企业,所以涉及的软件部署都是Web应用,在敏捷开发中,应用总是在不停地迭代,在迭代的过程中也是不停地在各个环境中更新部署迭代的版本,在持续部署中,我们同样也应该遵循一套部署流程来保证我们应用的可用性。 <!--more--> CD流程涉及的环境 对于大多数公司来说,软件开发和部署过程中会涉及多个环境,其中包括以下几个: 开发环境(Development Environment) 集成测试环境(Integration Testing Environment) UAT环境(User Acceptanc...
  • kubernetes的作业调度
    在kubernetes中pod如何分配到节点中,都是由kube-scheduler组件来完成的,它通过不同的策略定义和规则来分配pod应该如何部署到期望的节点上。 <!--more--> kube-scheduler调度的原理 kube-scheduler会先在当前集群的所有节点里面通过调度算法(Predicate)选出所有适合运行被调度pod的节点。在所有的合适节点上再根据调度算法(Priority)挑选出最符合条件的节点来部署这个pod。 kube-scheduler实际上是通过2个循环来实现pod的调度工作的,下面是示意图: Informer Path 这个控制循环会启动各种inform...
  • SpringCloud+saToken实现登录及权限认证
    SpringCloud+saToken实现登录及权限认证 [TOC] 1.为什么要用sa-Token. 相比于我们常用的spring security框架,sa-Token更轻,更快,更优雅.使用过spring security的人肯定知道,spring security虽然灵活性很高,可以定制化各种复杂使用场景,但也因此导致框架很重,spring security使用的过滤器链每次请求认证也会花费大量性能,同时大部分功能都要自己手写完成.想比较之下,sa-Token更轻更快,开箱即用.比如登录认证时生成token的功能,spring security需要借助jwt写大量代码,而sa-Toke...
  • © 2015-2024 苏州墨焱网络科技有限公司
  • 苏ICP备14018695号-2
  • 公安 苏公网安备 32059002002453号