Ni Blog

「拨开迷雾见月明」

状态机spring statemachine

1 什么是状态机 状态机,也就是 State Machine ,不是指一台实际机器,而是指一个数学模型。说白了,一般就是指一张状态转换图。例如,根据自动门的运行规则,我们可以抽象出下面这么一个图。 自动门有两个状态,open 和 closed ,closed 状态下,如果读取开门信号,那么状态就会切换为 open 。open 状态下如果读取关门信号,状态就会切换为 closed 。 状...

关于DeepSeek和OpenAi

技术层面 1-对于DeepSeek的简介 DeepSeek不满足于传统的 “别人做技术创新,我做应用变现” 而是选择了最艰难的技术创新 并在方面应用变现也是行内领先 2-DeepSeek技术 DeepSeek 不是套壳或蒸馏模型 而是基于 Transformer 架构进行了创新和工艺提升 采用的是基于先进技术的整合与优化...

Java调用C++

前言 在对小区提供硬件时,各类硬件设备支持的协议不同,需要实现不同的方法对硬件进行控制 大部分硬件使用MQTT就可以解决 视频监控可以使用SIP+ZLM推流实现 但是海康提供了自己的SDK,需要对海康SDK进行集成 由于大多数硬件,视频推流服务器都是使用C++进行编程速度更快 所以我们需要使用Native来调用C++ 海康部分代码 private stati...

了解Kubernetes

背景:容器、Docker 和 Kubernetes 什么是容器? 容器是轻量级的可执行应用程序组件,它将源代码与任何环境中运行代码所需的所有操作系统 (OS) 库和依赖项结合。 容器利用一种操作系统虚拟化形式,通过隔离进程并控制这些进程可以访问的 CPU、内存和磁盘数量,允许多个应用程序共享一个操作系统实例。由于容器比虚拟机 (VM) 更小、更节省资源且更易于移动,容器的资源效率也更高。...

关于对接JSAPI微信支付

前言 在对接JSAPI时遇到点问题,在此记录下 流程 1. 创建订单,并进行预下单,将时间戳,预支付id等信息保存到订单信息 2. 前端调起支付时,根据订单Id,返回支付所需参数,由前端拉起支付 3. 支付完后,编写回调接口,修改订单状态 4. 编写退款接口,进行退款 5. 编写退款回调接口,退款后进行更新订单 预支付 添加超时时间一定要将格式修改为 yyyy-MM-dd'...

多租户下的动态数据源切换

使用场景 多租户:使用SaaS交付,如果需要给每个租户数据库,就需要在请求访问时根据租户切换数据源 分库分表:为了提高性能和扩展性,将数据分散到多个数据库或表中,根据分片规则来选择正确的数据源,实现分库分表 读写分离:为了提高数据库的读写性能,可能会采用读写分离的方式,根据读写操作的类型来选择合适的数据源,实现读写分离。 … 实现原理 1. AbstractRout...

DBOS面向云原生的操作系统

前言 软件性能大多限制于数据库 Spark任务非常小,用进程/线程来管理并不合适,太重了,并且进程线程的调度是单机的,DataBricks需要跨越多个计算机调度 因为Linux是个单机的操作系统,但是如今的计算都是分布式的,所以必须有k8s这样的软件来管理应·用数据、身份验证系统、消息传递、集群管理….. 但是Linux太老了,而Kubernetes 太复杂 于是扎哈...

云原生的代表技术

前言 通过对云原生的探索可以了解到,云原生的目标为: 高可用 适应不同规模 敏捷 成本 随着技术不断发展,诞生了许多不同技术成为云原生的代表技术 容器技术 微服务 服务网格 不可变基础设施 声明式设计 DevOps 1. 容器技术 容器技术分为了多种阶段,随着技术的发展,容器技术变得越来越成熟 1.1 chroot阶段:隔离文件系...

探索云原生

1 云原生的定义 过去几年间,云原生的定义一直在变化和发展演进,不同时期不同的公司对此的理解和诠释也不尽相同,因此往往带来一些疑惑和误解。 1.2 Pivotal 对云原生的定义 2015 年,来自 Pivotal公司的技术产品经理 Matt Stine,首次提出了云原生(Cloud Native)的概念。 云原生是一个组合词,“云”表示应用...

工厂模式集成Oss

集成结构 将各类厂商Oss配置存入数据库 项目启动初始化,读取配置存入缓存 定义一个Oss的Factory的工厂类 在第一次调用时,创建Client并根据厂商类型存入工厂类的Map中进行缓存 后续每次获取时判断是否为空或者配置不同如果没变就直接返回Client实例 初始化 定义类实现ApplicationRunner接口并重写方法run(),可以...