Ni Blog

「拨开迷雾见月明」

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(),可以...

云效

学习使用云效的3个基本功能 代码管理 制作仓库 流水线 代码管理 在云效中,它为我们提供了一个内部的代码管理仓库。其实就和github,gitlab是一样的,供我们和团队内的其它同学一起协作开发。 以本地的一个工程代码smartplan-user为例,将工程代码上传到云效的代码管理,然后再次基础上进行协作开发。 新建代码仓库 ...

DevOps详解

1. 什么是DevOps DevOps是一种思想、一组最佳实践、以及一种文化 DevOps 是软件工程领域中的一种文化和实践方法,旨在促进开发团队与运维团队之间的协作,从而实现更高效、更可靠的软件交付。 传统开发和运维之间存在一堵墙,开发人员想改变而运维人员想要稳定。另外,传统开发工具与运维工具也存在一堵墙,并没有打通成为一条工具链。而为了强调开发运维之间 沟通合作 这一点D...