在 k8s 以外的分布式环境中使用 Dapr

在Dapr 文档和实践案例中多是推荐采用k8s, 其实我目前也是在k8s 上操作的,有公有云TKE,AKS,还有私有云的Rancher ,它并没有传闻中的那么难,而且我认为它非常容易上手。不过,我还是有很多人不愿意使用k8s 。那么在虚拟机场景下如何使用Dapr呢?当然也有虚拟机部署的案例,比如2021年第一届DaprConf 上分享的Dapr case study: Man Group:https://blog.dapr.io/posts/2021/10/05/join-us-for-daprcon-october-19th-20th-2021/ 

f5e2c8403528ae3913409317502c1da4.png

如果我们脱离K8s 的 虚拟机环境下会碰到什么问题?

  1. 你需要安装 Docker 来运行 Dapr

  2. 使用Invoke API进行名称解析时无法在其他服务器上找到 Dapr 应用程序

除了这两个问题,应该没有什么其他问题,因为根据 Dapr 的配置文件,它使用了外部服务器或者服务。

我们先来看一下第一个问题,在没有 Docker 的情况下使用 Dapr ,官方文档里已经给我们了答案:入门指南: 不使用 Docker 在自托管模式下运行 Dapr。

Dapr CLI 提供了使用 slim init 初始化 Dapr 的选项,而无需默认创建依赖于 Docker 的开发环境。要使用 slim init 初始化 Dapr ,请在安装 Dapr CLI 后使用以下命令:

dapr init –slim

在此模式下安装了两个不同的二进制文件 daprd 和 placement。在此模式下,不会为状态管理或发布/订阅安装任何默认组件,例如Redis 和 Zipkin 不会安装,但是如果需要的话会单独设置,所以没有问题。

那么第二个问题是 名称解析 ,我们还是来看一下官方文档里的 使用 服务调用概述-mDNS 轮询负载均衡:https://docs.dapr.io/zh-hans/developing-applications/building-blocks/service-invocation/service-invocation-overview/,Dapr 使用 mDNS 协议提供轮询负载均衡的服务调用请求,例如用于本地或多个联网的物理机器。但是mDNS只能在可以使用多播的环境中使用,这在云环境下通常是不可用的,在云环境下还有一个选择,官方文档里有 :详细介绍了关于 HashiCorp Consul 服务发现组件的信息,它既可以用于虚拟机也可以用于k8s 环境下,文章开头提到的案例就是用Consul 。

说到这里,如果你是在用Azure,在Azure上有 Managed HashiCorp Cosul ServiceAzure,简称HCS, 客户可以通过Azure Marketplace将 HCS直接配置到他们的 Azure 环境中,而 HashiCorp 则负责服务的维护和运营。使用 HCS 允许用户在云、混合和本地场景中使用各种环境(包括虚拟机和 Kubernetes)。所以我尝试了一下,但是我使用的账号用不了,需要额外付费:

3940eef82c73bc2f916007e06cda36d8.png

7989f1cce01984b606cdbf528d33fcc4.png

AWS 上也有,具体可以看  Consul on Amazon ECS 0.3 Adds Extended Configuration。

上面这两个问题我们都解决了,总结一下:

  • Docker 对于 Dapr 来说并不是必需的。

  • 如果你的环境支持使用多播,则可以使用 mDNS 在多台服务器上运行 Dapr。

  • 虚拟机环境下推荐使用Consul 作为名称解析服务。

针对这个问题 陈一狮同学很早就写了一篇文章, Dapr + .NET Core实战(十四)虚拟机集群部署 mDNS + Consul 。他还特别录制一个系列的视频课程放在腾讯课堂里。

我们再回到开篇时提到的那个使用Consul 部署的案例 ,他们开发了一个 Dapr 的轻量级生命周期管理组件:https://github.com/man-group/dapr-sidekick-dotnet,Sample 目录下有Consul的演示示例:https://github.com/man-group/dapr-sidekick-dotnet/tree/main/samples/AspNetCore,也可以看视频:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件项目组织管理(十)项目沟通管理

软件项目成功的主要因素 用户参与主管层的支持需求的清晰表述 沟通管理的目标 及时而适当地创建、收集、发送、储存和处理项目的信息。 沟通管理的过程 沟通规划信息发布绩效报告利益相关者管理 沟通渠道数目计算公式 Sn*(n-1)/2 S:沟通渠道数量 n&#xff1…

ubuntu 14.04 安装Java JDK

Linux 下安装配置 JDK7 自从从Oracle收购Sun近三年来,已经有很多变化。早在8月,甲骨文将“Operating System Distributor License for Java”许可证终结,这意味着第三方将不可以依据这一许可分发他们的软件包。  因此Ubuntu Linux已经开始禁…

shell 获取值 默认值

default0PAGE_PVcat a.log|awk {print $1}PAGE_PV${PAGE_PV:-${defaut}}转载于:https://blog.51cto.com/lihongyi/1567518

javascript原型链中 this 的指向

为了弄清楚Javascript原型链中的this指向问题,我写了个代码来测试: var d {d: 40};var a {x: 10,calculate: function (z) {return this.x this.y z this.d},__proto__:d};var b {y: 20,__proto__: a};var c {y: 30,__proto__: a};运行如下的代码…

C和指针之删除字符串第一次出现的子串

1、问题 函数首先先判断substr是否出现在str中,如果它并没有出现,返回0,如果出现,函数应该把str *中位于该字符串后面的所有字符复制到该子串的位置,从而删除这个子串,然后函数返回1,如果 *多次出现str中,函数只删除第1次出现的子串,函数的第2个参数绝不会被修改。 2、…

C# 中是否支持 Like 和 ln 条件的参数化查询 ?

咨询区 Tom Ritter.NET 中的参数化查询我一直都像下面这样写。SqlCommand comm new SqlCommand("SELECT * FROM Products WHERE Category_ID categoryid ", conn); comm.Parameters.Add("categoryid", SqlDbType.Int); comm.Parameters["categor…

软件项目组织管理(十一)项目风险管理、项目采购管理

什么是风险 可能给项目的成功带来威胁或损害的可能性。 风险管理的目标 对项目目标而言的正面事件的概率和影响结果最大化,把负面事件的概率和影响最小化。 风险承受度 从潜在回报中得到满足或快乐的程度。 应对风险的基本措施 规避接收减轻转移 什么是项目…

Java探索之旅(6)——对象和类

1.知识要点 假设&#xff1a; public ClassName{int data;String name;ClassName(){data1;}public static int getdata(){return data;}}</span> ❶含main()的为主类。多个类放在一个文件中&#xff0c;只能有一个主类。 ❷类可以不定任何构造方法(函数)&#xff0c;系统…

BZOJ3924 : [Zjoi2015]幻想乡战略游戏

对于一个点&#xff0c;要求出它到所有点的带权距离和&#xff0c;只需记录下树分治的结构然后查询即可。 修改$O(\log n)$&#xff0c;查询$O(\log n)$。 到所有点带权距离和最小的点显然是这棵树的带权重心。 以1号点为根&#xff0c;考虑一条从父亲x到孩子y的边&#xff1a;…

Lucene5.5.4入门以及基于Lucene实现博客搜索功能

前言 一直以来个人博客的搜索功能很蹩脚&#xff0c;只是自己简单用数据库的like %keyword%来实现的&#xff0c;所以导致经常搜不到想要找的内容&#xff0c;而且高亮显示、摘要截取等也不好实现&#xff0c;所以决定采用Lucene改写博客的搜索功能。先来看一下最终效果&#x…

C和指针之反转字符串

1、问题 把参数字符串中字符反向排序&#xff0c;请使用指针而不是数组下标&#xff0c;不要使用任何C函数库中 2、实现 #include <stdio.h> #include <stdlib.h> /****函数把参数字符串中字符反向排序&#xff0c;请使用指针而不是数组下标&#xff0c;不要使用任…

都是基于.NET平台,WPF能取代Winform吗?

学Winform还是WPF&#xff1f;很多winform的学者时常在我的技术群咨询要不要学习WPF&#xff1f;我一贯的观点是必须学啊&#xff01;如果是搞工控做cs软件开发&#xff0c;WPF自然是首选。WPF优势在哪里&#xff1f;①前后端分离&#xff1a;WPF是数据驱动的而非Winform的事件…

王道408数据结构——第一章 绪论

文章目录一、概念数据结构研究内容二、数据三要素逻辑结构储存结构&#xff08;物理结构&#xff09;运算三、算法和算法评价时间复杂度空间复杂度四、数字相关汇总算法性能二叉树相关图相关矩阵相关一、概念 数据结构研究内容 数据结构是一门研究在非数值计算中&#xff0c;…

C和指针之Eratosthenes-埃拉托斯特尼筛方法找质数

1、问题 *Eratosthenes-埃拉托斯特尼筛方法找质数,给出要筛数值的范围n,先用2去筛,2的倍数不是质数, * 再用下一个素数,也就是3筛,把3留下,把3的倍数不是质数,接下去用下一个素数5筛,把5留下,把5的倍数不是质数, *c不断重复下去...... 2、代码实现 #include…

转:iOS-CoreLocation:无论你在哪里,我都要找到你!

1.定位 使用步骤&#xff1a; 创建CLLocationManager示例&#xff0c;并且需要强引用它 设置CLLocationManager的代理&#xff0c;监听并获取所更新的位置 启动位置更新 123_manager [[CLLocationManager alloc] init];_manager.delegate self;[_manager startUpdatingLocati…

正确对待生活

三文鱼&#xff0c;国人称为马哈鱼。是一类洄游性鱼类&#xff0c;为常被食用的鱼类之一。主要生活在大西洋及太平洋&#xff0c;在美洲大湖及其他湖可以找到。三文鱼在淡水环境下出生&#xff0c;之后移到海水生长&#xff0c;又会洄游到淡水繁殖。三文鱼会利用太阳和地球磁场…

WPF 实现验证码控件

WPF开发者QQ群此群已满340500857 &#xff0c;请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 01—代码如下一、创建CheckCode.xaml代码如下。<ResourceDictionary xmlns"http://schemas.microsoft.c…

curl   liinux下http命令执行工具

安装cURLwget http://curl.haxx.se/download/curl-7.17.1.tar.gztar -zxf curl-7.17.1.tar.gz./configure --prefix/usr/local/curlmake & make installCurl是Linux下一个很强大的http命令行工具&#xff0c;其功能十分强大。1) 二话不说&#xff0c;先从这里开始吧&#x…

王道408数据结构——第二章 线性表

文章目录一、线性表的定义和基本操作线性表顺序表1.插入操作2.删除操作3.按值查找&#xff08;顺序查找&#xff09;二、单链表1. 头插法2. 尾插法3. 按序号查找4. 按值查找5. 插入结点6. 删除结点7. 求表长三、 双链表1. 插入2. 删除四、循环链表五、静态链表六、顺序表和链表…

C和指针之用拉托斯特尼筛方法(Eratosthenes)查找区间质素个数

1、问题 用拉托斯特尼筛方法(Eratosthenes)查找区间质素个数 2、代码实现 #include <stdio.h> #define LEN 10000 /***Eratosthenes-埃拉托斯特尼筛方法找质数,给出要筛数值的范围n,先用2去筛,2的倍数不是质数,* 再用下一个素数,也就是3筛,把3留下,把3的倍数不是…