Go 学习:那些不一样的知识点(上)

在学习 Go 语言的过程中,会涉及到语法、数据结构、和一些 Go 特有的东西,其中有不少现在还印象深刻,本文就说说 Go 语言中那些不一样的地方。

发布于 技术

Go 学习:从环境搭建到写一个 Web 服务

最近学习了 Go 语言,做下记录。 Go 的来历和 C、C++ 相比, Go 是一门很年轻的语言。2007 年,在 Google 的内部,有三位大佬因为 C++ 的复杂性、构建编译速度很慢和对并发支持不好等原因,便决定开发一门新的语言,于是他们基于 C 语言,做了功能的删减和新增,便有了 Go 的诞生。

发布于 技术

.NET Core 使用 LibreOffice 实现 Office 预览(Docker 部署)

前些年做云盘产品的时候,一个很核心的功能就是 Office 文件预览,当时还没有使用 .NET Core ,程序部署在 Windows Server 服务器上,文件预览的方案采用了微软的 OWA 。 目前在做的零代码产品中的表单附件控件,同样面临着 Office 文件预览的问题,现在技术栈采用了 .NET Core ,并使用容器化部署,自然就抛弃了 OWA 的方案。 本文简单介绍下 OWA 的替代方案。

发布于 技术

微服务:事务管理

几乎所有的信息管理系统都会涉及到事务,事务的目的是为了保证数据的一致性,这里说的一致性是数据库状态的一致性。 说到数据库状态的一致性,相信大家都会想到 ACID : 原子性(Atomic):在一个事件的多个数据库操作中,要么同时成功,要么同时失败,例如:转账业务; 隔离性(Isolation):不同的业务之间处理数据相互独立,互不影响 持久性(Durability):正常提交的数据能够被持久化,不丢失数据,比如 mysql 天然就能持久化,redis 、 rabbitmq 也能通过设置进行持久化; 一致性(Consistency):最终的数据正确,所以说是通过 AID 这些手段来保证了 C 。

发布于 技术

NET Core中的RabbitMQ消费者CPU高,竟然是这个原因

在 RabbitMQ 中有一个 vhsot 机制,可以用来做租户隔离,当产品从单租户演化为多租户时,正好可以用到这个特性,不同 vhost 中的交换机、队列互不影响。

发布于 技术

微服务:服务间如何通信?

在微服务架构中,会将一个完整的应用程序拆分成一组服务。这些服务之间需要经过协作,通过接口调用,才能组成一个完整的应用。 不同的服务部署在不同的机器上,或者同一个机器的多个容器中,进程间的通信就不可避免了,也变得非常重要。

发布于 技术

从一个简单 API 的发布到组件化的架构思考

在 SaaS 版本的零代码平台中,高级用户希望能上传自己编写的 WebAPI ,来实现一些复杂场景下的业务。就需要添加可以通过上传程序包进行发布部署的功能。

发布于 技术

代码居然还能这样写

这篇文章要介绍的是 GitHub Copilot 。 微软去年推出的 GitHub Copilot 是一个基于 AI 的编程辅助工具,简单理解就是我们写点注释或者写个方法名,Copilot 就能理解了我们的意思,然后帮我们写一个相关的方法出来。

发布于 技术

微服务:如何拆分服务?

在微服务的落地中,第一步就需要进行微服务的拆分,服务的拆分很困难也很重要,本文就讲讲怎么进行服务的拆分。 技术发展到现在,还没有一个具体的,设计完善的标准方法来完成服务的拆分,服务的拆分是一门技术更是一门艺术。

发布于 技术

微服务:我们需要从单体转到微服务吗?

微服务或许你没有真正实践过,但一定听说过,虽然已经到了 2022 年,这个词依然很热,可以通过搜索 google 指数看得到。

发布于 技术