首页 > 其他分享 >dapr调研实践

dapr调研实践

时间:2023-12-24 10:11:25浏览次数:31  
标签:-- 实践 podman Dapr dapr https 运行 调研

Dapr概述

Dapr 是什么?

多运行时架构的微服务框架

分布式能力抽象、一套基准代码、通过端口绑定提供服务

Dapr 是一个在云和边缘构建微服务用的事件驱动的,可移植的运行时。更复杂的来说,"Dapr 是一个可移植的,事件驱动的运行时,使开发人员可以轻松创建在云和边缘上运行的有弹性,无状态和有状态的应用程序,支持语言和开发人员框架的多样性"。

  • 分布式程序(Distributed Application)指的是什么?
    • 跟微服务是一个意思。大的系统分成彼此独立的小的模块,模块和模块之间通过API互相通信,这样每个模块可以用不同的语言开发,一个模块升级的时候不会影响到别的模块。
  • 云和边缘(cloud and edge)指的是什么?
    • 这里的云和边缘指的是 Dapr 的 App 可以跑在 AWS,Azure,GCP 等云服务器上,也可以跑在本地的服务器上。
  • 事件驱动(event-driven)指的是什么?
    • 可以理解成 Dapr 在没有监听(Listening)到请求到来的时候会一直处于待机的状态,什么也不做,只有监听到请求事件来了才开始处理。
  • 可移植(portable)指的是什么?
    • 就是说写的程序和运行的环境,用的中间件无关。比如说原来跑在 AWS 上,现在想跑在 Azure 上,Nosql 数据库原来用 DynamoDB,现在想用 CosmosDB,消息中间件原来用 SNS/SQS,现在想用 Service Bus,没问题,只要在 Dapr 设定这边做一下切换,程序无需改动。
  • 运行时(runtime)指的是什么?
    • 运行时指的是 Dapr 的运行环境。Dapr 的 Control Plane(不知道怎么翻译,直接用英文,就是 Dapr 管理用的模块)会单独启动,同时你的程序在启动的时候 Dapr 会在你的程序上挂一个 Sidecar(所谓的边车模式),你的程序就可以通过 Sidecar 和 Dapr 的 Control Plane 联系上。所有挂有 Dapr Sidecar 的各个微服务之间就可以互相调用了,也可以通过 Dapr 调用各种中间件。
  • 有弹性(resilient)指的是什么?
    • 指的是可以从故障中自动恢复的能力,比如说超时、重试等。不会卡住或陷入一种死循环。
  • 无状态和有状态(stateless and stateful)指的是什么?
    • 无状态指的是一个微服务经过计算得到结果,返回给调用者以后这个值在微服务这边是不保存的(DB,内存等)。有状态指的是在微服务这边要把这个结果保存起来。
  • 支持语言的多样性(the diversity of languages)指的是什么?
    • 指的是 Dapr 有各种语言的 SDK,比如 java,python,go,.net 等都支持。
  • 开发人员框架(developer frameworks)指的是什么?
    • 指的是 Dapr 跟框架无关,你可以把各种语言的各种框架(比如 java 的 spring boot 框架)和 Dapr(API 或者 SDK)混合使用。

对比Layotto

Layotto 是由蚂蚁集团 2021 年开源的一个实现 Multi-Runtime 架构的项目,核心思想是在 Service Mesh 的数据面 (MOSN) 里支持 Dapr API 和 WebAssembly 运行时,实现一个 Sidecar 同时作为 Service Mesh 数据面、多运行时 Runtime、FaaS 运行时。

对比Servicemesh

dapr

Dapr在Servicemesh的基础上进一步扩展Sidecar模式的使用场景,一方面提供天然的多语言解决方案,满足云原生下应用对分布式能力的要求,帮助应用轻量化和serverless化,另一方面提供面向应用的分布式能力抽象层和标准API,为多云、混合云部署提供绝佳的可移植性。

开始入门

1、安装 Dapr命令行(Dapr CLI)

#不指定版本安装
#mac os
curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash

#linux os
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash


#验证dapr安装成功
dapr -h

2、初始化Dapr

安装podman:https://podman.io/docs/installation

brew install podman

podman machine init
podman machine start

podman info

#stop
podman machine stop

使用Podman以自托管模式运行Dapr:https://docs.dapr.io/operations/hosting/self-hosted/self-hosted-with-podman/

dapr init --container-runtime podman

dapr run --app-id myapp --app-port 5000 -- dotnet run
#或者
dapr run --app-id abcd --app-port 14001 --dapr-http-port 14002 --dapr-grpc-port 14003 

dapr uninstall --container-runtime podman --all

 

测试存储

curl -X POST -H "Content-Type: application/json" -d '[{ "key": "name", "value": "zbs"}]' http://localhost:14002/v1.0/state/statestore

curl http://localhost:14002/v1.0/state/statestore/name

3、dapr管理界面

dapr dashboard running on http://localhost:8080

 

dpar作为边车与应用程序一起运行。在自托管模式下,这意味着它是本地机器上的进程

Dapr初始化包括:

  1. Running a Redis container instance to be used as a local state store and message broker.运行一个Redis容器实例,用作本地状态存储和消息代理。
  2. Running a Zipkin container instance for observability.为可观察性运行Zipkin容器实例。
  3. Creating a default components folder with component definitions for the above.创建一个包含上述组件定义的默认组件文件夹。
  4. Running a Dapr placement service container instance for local actor support.运行Dapr放置服务容器实例以支持本地参与者。

 

 

 

 

参考文档

Dapr官网:https://docs.dapr.io/getting-started/install-dapr-selfhost/

下一代微服务框架 Dapr 中文入门指南:https://blog.csdn.net/easylife206/article/details/126515533

Dapr、Layotto 这种多运行时架构:https://blog.csdn.net/SOFAStack/article/details/125086931

dapr入门:https://ata.atatech.org/articles/11000231642?spm=ata.23639746.0.0.7bbcf6c6ocgw8o

标签:--,实践,podman,Dapr,dapr,https,运行,调研
From: https://www.cnblogs.com/zhangbao3/p/17924101.html

相关文章

  • 大型企业数字化转型企业架构规划与实践 P46
    本人在四大咨询机构从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.该PPT共46页,由于篇幅有限,以下为部分资料,如需完整原版 方案,点击下方。本文来源于网络,侵权立删。数字化转型企业架构规划对于......
  • GPG实践
    作业要求参考http://www.ruanyifeng.com/blog/2013/07/gpg.html,给队友发送一封邮件,邮件内容为自己学号+对方学号,用对方公钥加密,然后对方用自己私钥解密。提交安装,加密,解密过程中的截图。下载GPG下载windows版本创建密钥使用密钥加密对方的解密......
  • keepass口令管理实践(选做)20231405
    keepass口令管理实践(选做)任务详情个人隐私泄露,信息安全是一个大问题,参考https://post.smzdm.com/p/713042/,https://post.smzdm.com/p/713042/学习使用keepass保护自己的口令,提交实践截图。作业内容1.下载keepass官方版和中文的语言包2.将中文语言包存放在KeePassPasswordS......
  • HTML学习第二天:深入探索与实践
    继昨天对HTML的初步了解之后,今天我进一步深入了这门语言的学习,对HTML有了更加全面和深入的认识。早上,我首先复习了昨天学习的基本元素,确保自己对这些基础知识掌握得扎实。然后,我开始学习一些更加高级的HTML元素和属性,如表格、列表、表单等。这些元素在网页设计中非常常见,掌握它们对......
  • GPG实践
    1.创建我的公钥和私钥2.队友接收到我的公钥文件3.队友利用我的公钥进行加密4.接受队友加密过的文件5.用我自己的私钥进行解密......
  • GPG实践
    ......
  • 数据治理与大模型一体化实践
    引言:大模型落地到当前这个阶段,核心关注点还是领域大模型,而领域大模型落地的前提在于两点:需求端,对当前应用的降本增效以及新应用的探索;供给端,训练技术已经有较高的成熟度。专家介绍:柏海峰滴普科技Deepexi产品线总裁负责企业大模型产品的规划、技术架构设计和应用解决方案的......
  • 《TVM编译器原理与实践》新书推荐
    《TVM编译器原理与实践》新书推荐作者:吴建明,吴一昊;出版社:机械工业出版社;出版时间:2023年12月 本书已经出版,目前在淘宝天猫,京东,当当上可以购买。谢谢!天猫:https://detail.tmall.com/item.htm?abbucket=8&id=757068341348&ns=1&spm=a21n57.1.0.0.2b9b523ckBk0aH京东:https://it......
  • AI实践者师生夏令营讲座视频:南京大学Lamda实验室(周志华 团队)讲座视频 —— 强化学习
    视频地址:周志华团队与Intel团队的讲座视频——强化学习的局限性与未来展望视频链接地址:https://bizwebcast.smarket.com.cn/b975d6d9969a42cba9626adb7669676b/2a1fc2d76a65403cb76f99acd5b025da-8a7c33851d2f0a4e69aa50fae3038d63-sd.mp4......
  • GPG实践
    目录实践任务实践过程1.gpg的安装2.密钥的生成3.公钥的导出与导入4.文件的加解密相关问题与解决方案参考资料实践任务参考相关教程,给队友发送一封邮件,邮件内容为自己学号+对方学号,用对方公钥加密,然后对方用自己私钥解密。实践过程1.gpg的安装安装指令:Ubuntu下:sudoapt-g......