首页
学习
活动
专区
圈层
工具
发布

基于Kafka的六种事件驱动的微服务架构模式

在 Wix,我们的MetaSite服务就是这种情况,它为 Wix 用户创建的每个站点保存了大量元数据,例如站点版本、站点所有者以及站点上安装了哪些应用程序-已安装的应用程序上下文。...使用和项目安装的应用程序上下文 第三,他们创建了一个“只读”服务,只接受与已安装应用程序上下文相关的请求,他们可以通过查询存储计划的“已安装应用程序”视图的数据库来完成这些请求。...在 Wix,我们将这些压缩主题用于内存中的 kv 存储,我们在应用程序启动时加载(使用)来自主题的数据。一个很好的好处(Redis 没有提供)是该主题仍然可以被其他想要获取更新的消费者使用。...安排并忘记 …当您需要确保计划的事件最终得到处理时 在很多情况下,Wix 微服务需要根据某个时间表执行作业。 一个例子是管理基于订阅的支付(例如订阅瑜伽课程)的Wix 支付订阅服务。...内置的重试生产者将在出错时生成消息到下一个重试主题,并带有一个自定义标头,指定在下一次处理程序代码调用之前应该发生多少延迟。 对于所有重试尝试都已用尽的情况,还有一个死信队列。

3.2K10

6种事件驱动的架构模式

在 Wix,我们的 MetaSite 服务就面临着这样的情况,它为 Wix 用户创建的每个站点保存了大量的元数据,比如站点版本、站点所有者以及站点上安装了哪些应用程序——已安装应用上下文(The Installed...其次,他们创建了一个有自己数据库的“只写”服务(反向查找写入器),该服务使用站点元数据对象,但只获取已安装应用上下文并写入数据库。即将站点元数据的某个“视图”(已安装的应用程序)投影到数据库中。...Wix Events(供 Wix Users 管理事件传票和 RSVP)也可以使用 Bookings 的时区主题,并在一个国家因为夏令时更改时区时自动更新其内存 kv-store。...两个内存 KV 存储消费同一个压缩主题 4调度并遗忘 当存在需要确保计划事件最终被处理的需求时 在许多情况下,需要 Wix 微服务根据某个计划执行作业。...内置的重试生成器将在出错时生成一条下一个重试主题的消息,该消息带有一个自定义头,指定在下一次调用处理程序代码之前应该延迟多少时间。 还有一个死信队列,用于重试次数耗尽的情况。

3.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    聊聊事件驱动的架构模式

    在 Wix,我们的 MetaSite 服务就面临着这样的情况,它为 Wix 用户创建的每个站点保存了大量的元数据,比如站点版本、站点所有者以及站点上安装了哪些应用程序——已安装应用上下文(The Installed...Wix Events(供 Wix Users 管理事件传票和 RSVP)也可以使用 Bookings 的时区主题,并在一个国家因为夏令时更改时区时自动更新其内存 kv-store。...两个内存 KV 存储消费同一个压缩主题 4.调度并遗忘 当存在需要确保计划事件最终被处理的需求时 在许多情况下,需要 Wix 微服务根据某个计划执行作业。...Wix 开发人员使用我们自定义的Greyhound消费者,因此,他们只需指定一个 BlockingPolicy,并根据需要指定适当的重试间隔。...内置的重试生成器将在出错时生成一条下一个重试主题的消息,该消息带有一个自定义头,指定在下一次调用处理程序代码之前应该延迟多少时间。 还有一个死信队列,用于重试次数耗尽的情况。

    2.6K30

    如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包

    WiX 本身很强大,使用本来也没那么难。奈何 WiX 3 的官方文档可读性极差且长期不更新,于是新手在使用 WiX 制作安装包时极容易出问题,导致制作的安装包各种行为不正常。...虽然我写了一系列的 WiX 安装包入门教程来帮助大家避坑,还写了一些常见问题的解决方法,但大家遇到的问题总会比我整理的要多。所以教大家 查看日志 很多时候,看日志能帮助你快速找到原因。...以下是查看日志的方法: 如何查看用 WiX 制作的安装包的日志 Debugger.Launch() 如果安装过程能执行到你编写的 C# 代码中,那么可以在入口处加上 Debugger.Launch()...对比测试 如果出现的问题日志上说明不明显,代码也没执行到自定义引导程序部分,那么可以考虑对照正常状态的 WiX 项目替换组件调查。这可以快速将问题范围定位到某个文件甚至是某行代码上。...当最终能正常工作时,最近替换的模块便最有可能是问题模块。

    84560

    桌面端程序开发-Tauri入门

    最后,请前往 https://www.rust-lang.org/zh-CN/tools/install 来安装 rustup (Rust 安装程序)。...或者,您可以在 PowerShell 中使用 winget 命令安装程序: winget install --id Rustlang.Rustup 查看版本 rustc --version 问题 crates.io...安装文件 问题 打包时wix311-binaries.zip无法下载 https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311...; 当无法将值的所有权移动到设置闭包时,此方法非常有用。 使用AppHandle实例创建 AppHandle 实例可以使用 [App::handle] 函数获得,也可以直接注入 Tauri 命令。...(警告:在 macOS 上使用私有 API 的应用程序会被 App Store 拒绝) macOSPrivateApi 设置为 true 时: 启用透明背景 API 将 fullScreenEnabled

    8.2K20

    使用WiX制作简单MSI安装程序

    2、下载WixEdit 在安装完WiX之后在Visual Studio上有几个WiX的模板,我使用的是Visual Studio 2008,看起来是这个样子的。 ?...此属性的值应为下列值之一: 受限 设置为此值表明该程序包无需提升权限即可安装。 提升 设置为此值表明该程序包需要提升权限才能进行安装。此为默认值。 制造商 字符串 发布此包的供应商。...复杂引用和反向引用的处理,可能是链接程序必须实现的最难的工作。 下面我们来自定义一个安装程序。 添加安装的图形界面 WiX的安装界面使用的是命令行模式,我们现在在增加一个图形的安装界面。...Note: 要使用WixUI_InstallDir,你必须为WIXUI_INSTALLDIR设置一个值,该值由Directory的Id确定,作为初始的安装路径。...编译和安装 使用Visual Studio编译项目,运行安装程序测试一下。

    4.8K90

    C# Windows桌面应用打包指南

    使用 WiX Toolset 打包WiX Toolset 是一个开源的工具集,允许开发者通过 XML 定义复杂的安装包。WiX 支持高级功能,如安装多个组件、创建注册表项、服务安装等。...使用 WiX 的命令行工具编译 XML,生成 .msi 安装包。WiX Toolset 的优势:高度可定制,适用于复杂的安装需求。支持丰富的安装功能,如服务安装、注册表管理、系统权限设置等。...编写 NSIS 安装脚本,配置安装过程中的各项细节。使用 NSIS 编译器生成安装程序。第三方工具的优势:灵活、轻量,可以通过脚本实现高度自定义。支持压缩安装包,生成体积较小的安装程序。...结论C# Windows 桌面应用程序的打包有多种选择,从简单易用的 ClickOnce 到高度自定义的 WiX Toolset 和第三方工具,开发者可以根据项目需求选择适合的打包方案。...对于较为简单的应用,可以选择 ClickOnce 或 Visual Studio Installer Projects,而对于复杂的应用程序,可以考虑使用 MSI 安装包或 WiX Toolset 来满足定制化安装的需求

    3.2K32

    用 WiX 制作安装包:创建一个简单的 msi 安装包

    本文是 WiX Toolset 安装包制作入门教程 系列中的一篇,可前往阅读完整教程。 本文将带大家制作一个简单的 msi 安装包。...本文操作基于系列教程中的一个最简项目,见 准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案。...本例的目标程序只有一个文件,因此我们只放了一行,如果你要打包多个文件,可返回本教程目录页查阅其他文章。 编辑基本的安装包信息 此时,我们距离完成 msi 打包只剩最后一步了,就是填写基本的安装包信息。...毕竟谁也不希望系统“应用和功能”里显示的名字不是真正的产品名吧…… 另外,其他属性的值也值得留意。但在你明白他们的真实含义之前,不建议修改其值。...关于这些值的含义,你可以阅读我的另一篇博客: Windows 安装包制作最佳实践:ProductCode、UpgradeCode、PackageCode 应该怎么设置?

    5K60

    用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好

    使用 WiX 的 Burn 引擎制作自定义托管引导程序的 exe 安装包时,你可能会遇到这种情况:明明目标电脑上已经装好了 .NET Framework,但无论如何就是会提示安装,始终不启动自定义的安装界面...现象 即使是在开发机上(.NET Framework 已经装好),双击制作的 exe 安装包也依然会提示安装 .NET Framework: 图片 如果强行安装,装完也依然不会启动自定义的引导程序。...加载安装前置的引导程序,因为托管宿主无法被加载,错误代码 0x80070490。...所以导致弹出 .NET Framework 安装界面的原因是引导程序无法加载我们的自定义界面,误认为前置没有装好,所以弹出了前置安装界面。...Toolset使用技巧——使用Burn引擎安装.NET Framework 官方文档示例的注释中要大家改 host/@assemblyName,但实际上按官方文档的改法改好了就会出现本文所述的错误。

    1.1K20

    用 WiX 制作安装包:制作 WPF 安装包界面(入门篇)

    然而使用 WiX 的 NuGet 包有额外的好处,可以使得团队成员无需每人单独安装 Wix 工具集即可完整编译安装包。不过这涉及到一些 NuGet 相关的高级操作,我在其他博客里有说到。...为了保证教程依然便于入门,所以我使用单独安装 WiX 工具集的方式来讲解。 如果大家感兴趣使用 NuGet 的方式来完成整个打包项目的构建,替代现在单独安装的方式,我可以单独再写一篇高级教程。 2....); 正常退出安装过程(通过调用 Engine.Quit); 设置 WPF 资源程序集(默认情况下 WPF 会去入口程序集中找,但在 WiX 引导启动后入口程序集为 null,所以我们需要手动指定资源程序集为本程序集...如果发现无法运行,请前往此篇文章调试和解决问题: 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 如果可以正常运行,那么恭喜你,完成了 WiX 安装包入门教程的 Hello World...请回到目录: WiX Toolset 安装包制作入门教程 运行效果: 关闭这个界面后,安装程序也将退出。 附源代码 附上必要的源码,避免你在阅读教程时因模板文件的版本差异造成一些意料之外的问题。

    3K20

    WiX和DTF介绍

    Wix 是 Windows Installer XML 的缩写,它是微软提供的一组工具和规范的集合,用来制作MSI格式的安装包。另外值得一提的是,Wix是微软少有的开源软件之一。...制作MSI的工作有InstallShield,Wise,他们都是商业程序,需要付费,你也可以使用WiX来完成安装程序制作。...WiX和这些MSI的工具比较有不同的地方: 它完全用xml描述,使用命令行来生成,这非常容易整合到开发流程中,通过Nant,Msbuild调用 WiX是开源的,定制性非常好,你能够做用Wise或者InstallShield...微软内部的程序打包也是使用WiX的。...Deployment Tools Foundation (DTF) DTF就是msi.dll(Windows installer library)的.net包装,DTF使得为MSI安装包编写自定义Actions

    1.5K80

    如何零宕机将本地 Kafka 集群迁移上云?

    分割过载集群 最近几年,由于事件驱动架构中的服务数量不断增多,Wix 业务 中大量的 OLTP 服务对 Kafka 的运转造成了负担。...迁移前 Wix 的 Kafka 使用情况 由于需要将所有元数据都加载到分区中,从而给集群控制器的启动时间带来了很大压力,这使得 leader 的选举时间大大增加。...设置它是非常简单的。...Greyhound 是 Wix 约 2200 个微服务的事件驱动主干,因此,引入多集群的概念仅需在一些地方(包括库和代理服务)就可以进行。...创建自定义的指标仪表板,以显示当前和演变的状态 即便你创建了一个自动化的、完全无人值守的迁移过程,你也必须能够监控所发生的一切,并且当问题发生时,你拥有相关的工具可以进行调查。

    1.5K20

    用 WiX Burn 制作托管安装包:出现 0x80070002 错误

    使用 WiX 的 Burn 引擎制作自定义托管引导程序的 exe 安装包时,双击生成的安装包没有反应。如果查看日志可以发现有 0x80070002 错误。本文介绍其调查和解决方法。...现象 双击制作的自定义引导程序的 exe 安装包没有反应,通过查看 Burn 引擎的输出日志可以发现如下关键的错误码: 1 2 3 4 5 6 7 8 9 ... [1874:8D8C][2021-07...这篇入门教程中,涉及到找不到托管引导程序(WiX 官方喜欢称之为 MBA,Managed Bootstrapper Application)的地方可能有这些: Bundle.wxs 文件中将托管引导程序加入到负载的地方...BootstrapperCore.config 文件中,设置的 assemblyName 属性 对于 1,如果加入到负载时文件不存在,那么这个 Bundle.wxs 所在的项目都无法编译通过,所以 1...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

    67040

    使用WiX制作具有时间限制的安装包

    WiX是Windows Installer XML的简称,它是用于制作Windows安装包的工具集。它支持命令行环境,开发者可以及将它集成到他们的编译过程中创建MSI和MSM安装包。...更多信息可以参考:http://wix.sourceforge.net/ 最近研究了一下如何使用WiX制作具有时间限制的安装包,下图是demo的效果图。 ?...使用VBScript比较当前日期和限定日期,小于0表示越界,这时调用WScript想注册表添加坏键。...选择合适的时机执行上述脚本,越早越好。     在本文的demo中,我在PrepareDlg之前执行脚本,对于大多数情况而言,这已经是最早的时机了。...在FatalError对话框中发布Finish事件,同时将值设置给第五步提到的清除操作。

    2K60

    WiX Toolset 安装包制作入门教程(目录篇)

    WiX 全称为 Windows Installer XML,是使用 XML 文件创建 Windows 安装程序的一组工具集。它开源且完全免费。...如果你在阅读教程时发现有些步骤不对(或者按步骤完成后依然无法跑通,或者遇到了各种奇葩问题),欢迎在评论区留言,或加我的 QQ 交流(450711383)。...创建最简单的安装包过程中可能出现的问题和解决方案汇总 如何查看用 WiX 制作的安装包的日志 如何调试用 WiX 制作的安装包 具体问题 用 WiX 制作安装包:设置的 .NET Framework...- 已处理证书链,但是在不受信任提供程序信任的根证书中终止。...// 未完待续… WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置?

    7.4K61

    Wix 安装部署(五) Bootstrapper 捆绑安装

    但今天要讲的,就是wix中的Bootstrapper 项目,制作一个捆绑安装程序,也是Windows Installer中没有的。将多个需要安装的文件,按照顺序一次性装完。...一、Bootstrapper 初识 起因:wix的Setup 项目是无法自动安装.net framework的,必须要通过bootstrapper 应用程序去驱动wix中的Burn引擎来安装...但是 所以在Bootstrapper中的安装程序都是没有窗口的。安装顺序一个个默默的装完,没有上一步,下一步。和Click Once部署的一样。一次性装完。...上面就是一个简单的捆绑安装程序了,我们还可以进一步配置。 可以现在Fragment元素中把文件先设置好,在加入到链表中。 这里的表示的就是在执行Path之后在执行第二个注册表搜索,且结果你存储在Variable中的,而这个Variable就可以作为,是否安装的一个条件。

    2K20

    用 WiX 制作安装包:创建一个简单的 exe 安装包

    可选值为 yes no default,对于 MSI 文件会默认嵌入,所以也可以不指定。...编辑基本的安装包信息 与 MSI 包一样,不填写基本的安装信息也会报编译错误: ▲ 缺少厂商信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 设置 MSI 和 EXE 安装包的 UpgradeCode 的更多细节,可以阅读我的另一篇博客: MSI 和 EXE 的 UpgradeCode 应该设置成相同还是不同?...前往 EXE 文件的输出目录(在项目目录的 bin\Debug 下): ▲ 前往 EXE 文件的输出目录 双击安装,可以出现默认的安装界面: ▲ 默认的安装界面 安装完后,可以在系统设置“应用和功能...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

    3.1K20

    2025零代码建站平台大比拼:Fixon、WordPress、Wix与Weebly,一站式指南!

    引言个人网站的搭建途径主要有三种:委托公司制作、自己编程开发或使用网站架设服务平台。其中,使用平台能在无需编程背景的前提下,以最低成本快速上线,并可随业务增长渐进式升级付费方案。.../月,13 GB 存储、可上传视频、Google Analytics集成;Business(商用):$25/月,无限存储、可安装插件与自定义主题;eCommerce(电子商务):$45/月,全面电商功能...二、Wix基本介绍Wix 成立于 2006 年,以丰富的模板库与强大的编辑器著称,支持会员、电子商务、博客等功能模块,适合视觉设计要求较高的用户。...付费方案Wix 提供“网站方案”与“商务方案”两大类:网站方案:自 Connect (约 NT$140/月)到 VIP (约 NT$780/月),区别在于广告去除、自定义域名、存储空间与视频时长等;商务方案...付费方案Fixon曜约采用“免费—标准—专业”三级定价:Free(免费):¥0/月,基础事件类型、邮件通知与第三方集成;Standard(标准):¥48/月,高级通知、调查表单、高级事件类型、数据分析与子链接创建

    2K10
    领券