Dapr简介

Dapr (Distributed Application Runtime)是一个可移植的、事件驱动的运行时,它使任何开发人员都可以轻松地构建运行在云和边缘上的弹性、无状态和有状态的应用程序,并支持语言和开发人员框架的多样性。Dapr利用Sidecar架构的优势,帮助我们解决构建微服务所带来的挑战,并保持代码与平台无关。

从上面的架构图看出,Dapr包括如下几个模块:

  • 服务调用(Service-to-service Invocation):通过服务调用,服务可以使用 gRPC 或 HTTP 这样的标准协议来发现并可靠地与其他服务通信。
  • 状态管理(State Management):独立的状态管理,使用键值对作为存储机制,可以轻松的使长时运行、高可用的有状态服务和无状态服务共同运行在我们的服务中。
  • 发布订阅(Publish and Subscribe):发布事件和订阅主题。生产者将消息发送到某个主题(Topic),但不知道接收消息的服务;消费者将订阅该主题并收到它的消息,但不知道哪个服务生产了这些消息。
  • 资源绑定(Resource Bindings):通过建立触发器与资源的绑定,可以从任何外部源(例如数据库,队列,文件系统等)接收和发送事件,而无需借助消息队列,即可实现灵活的业务场景。
  • Actors:Actor是一个独立的运行单元,拥有隔离的运行空间,在隔离的空间内,其有独立的状态和行为,不被外界干预。Actor之间通过消息进行交互,而同一时刻,每个Actor只能被单个线程执行,这样既有效避免了数据共享和并发问题,又确保了应用的伸缩性。
  • 可观测性(Observability):记录指标(metric)、日志(log)、链路(trace)以调试和监视Dapr和服务的运行状况。
  • 密钥管理(Secrets):支持与公有云和本地的密钥存储集成,以供服务检索使用。
  • 配置管理(Configuration):通过配置API在配置存储中检索和订阅服务的配置项。

文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。

安装 Docker

这里以Windows 10系统为例,安装 Docker。

安装 Hyper-V

Hyper-V是微软提出的一种系统管理程序虚拟化技术,能够实现桌面虚拟化。Hyper-V 可用于 64 位 Windows 10 专业版、企业版和教育版。 它无法用于家庭版。

点击“小窗户”,然后再点击“设置”,如下图:

在搜索框中输入“启用或关闭Windows功能”,如下图:

点击“启用或关闭Windows功能”后,勾选“Hyper-V”所有选项,如下图:

点击“确定”,等一会儿就安装好了。(可能需要重启电脑)

文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。

安装 Docker Desktop

访问https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe下载,双击Docker Desktop Installer.exe运行安装程序。按照安装向导上的说明授权安装程序并继续进行安装。

安装完成后,启动Docker Desktop,等一会儿初始化完成后,将启动入门教程:

这个教程包括一个简单的练习,以构建示例Docker镜像,将其作为容器运行,将映像推送并保存到Docker Hub。

安装 Dapr CLI

访问https://github.com/dapr/cli/releases下载所需的 Dapr CLI,如果是Linux系统可以下载dapr_linux_amd64.tar.gz;如果是Windows系统,可以下载dapr_windows_amd64.zip;如果是macOS,可以下载dapr_darwin_amd64.tar.gz。

这里以Windows系统为例。

解压到一个目录中,并把这个目录添加到系统环境变量中,然后执行如下命令验证一下:

dapr --version

如果显示如下效果就说明安装成功了:

文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。

初始化 Dapr

执行如下命令:

dapr init

它会帮我们创建如下内容:

  • 运行一个用于状态存储和消息代理的Redis容器实例
  • 运行一个用于提供可观察性的Zipkin容器实例
  • 创建具有上述组件定义的默认组件文件夹:用户目录中的.dapr文件夹
  • 运行用于本地演员支持的Dapr Placement服务容器实例

显示效果如下:

执行如下命令验证一下:

docker ps

如果显示如下效果就说明初始化成功了:

此时,访问http://localhost:9411/zipkin/就可以看到:

文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。

启动 Dapr Dashboard

执行如下命令:

dapr dashboard -p 9999

显示效果如下:

再访问http://localhost:9999/就可以看到:

最后,感谢你这么帅,还给我点赞

微信公众号:万猫学社

微信扫描二维码

关注后回复「电子书」

获取12本Java必读技术书籍

Dapr在Java中的实践 之 环境准备的更多相关文章

  1. Java中jdk安装与环境变量配置

    Java中jdk安装与环境变量配置 提示:下面是jdk1.7和jdk1.8的百度网盘链接 链接:https://pan.baidu.com/s/1SuHf4KlwpiG1zrf1LLAERQ 提取码: ...

  2. Java中如何判断当前环境是大端字节顺序还是小端字节顺序

    Java非字节类型的基本类型,除了布尔型都是由组合在一起的几个字节组成的.这些数据类 型及其大小总结在表 2-1 中. 表:基本数据类型及其大小 数据类型 大小(以字节表示) Byte 1 Char ...

  3. java中HashMap在多线程环境下引起CPU100%的问题解决(转)

    最近项目中出现了Tomcat占用CPU100%的情况,原以为是代码中出现死循环,后台使用jstack做了dump,发现是系统中不合理使用HashMap导致出现了死循环(注意不是死锁). 产生这个死循环 ...

  4. java中HashMap在多线程环境下引起CPU100%的问题解决

    最近项目中出现了Tomcat占用CPU100%的情况,原以为是代码中出现死循环,后台使用jstack做了dump,发现是系统中不合理使用HashMap导致出现了死循环(注意不是死锁). 产生这个死循环 ...

  5. JAVA中为什么要配置环境变量?怎么配置环境变量?

    1.为什么要配置环境变量? 答:为了让javac命令(编译命令)和Java命令(运行命令)能在任何文件夹都能运行. 2.怎么配置环境变量? JAVA_HOME : D:\develop\Java\jd ...

  6. Java学习日记8-包、环境变量和访问控制

    Java中的包.环境变量和访问控制 一.java中的包 Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分 ...

  7. React 与 Redux 在生产环境中的实践总结

    React 与 Redux 在生产环境中的实践总结 前段时间使用 React 与 Redux 重构了我们360netlab 的 开放数据平台.现将其中一些技术实践经验总结如下: Universal 渲 ...

  8. Java 理论和实践: 了解泛型 识别和避免学习使用泛型过程中的陷阱

    Brian Goetz (brian@quiotix.com), 首席顾问, Quiotix 简介: JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进.但是,对于初次使用泛 ...

  9. Java入门到实践系列(2)——Java环境搭建

    一.上集回顾 在<Java入门到实践系列(1)--Java简介>中提到过,Java程序是运行在Java虚拟机的,也展示过下面这张图. JDK:Java程序开发工具包. JRE:Java运行 ...

  10. Java线程池实现原理及其在美团业务中的实践

    本文转载自Java线程池实现原理及其在美团业务中的实践 导语 随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流.使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器.J.U.C提供 ...

随机推荐

  1. 最大流基础(Maximum Flow Basis)

    1. 最大流问题定义 1.1 流网络(Flow network) Def. A flow network is a tuple \(G = (V, E, s, t, c)\): Digraph \(( ...

  2. Salesforce CPQ之后续慢慢看系列

    salesforce核心两朵云,sales & service. 针对sales的quote / quote line item的报价功能,还是相对薄弱.针对sales,报价的准确性影响着成单 ...

  3. 常用Linux发行版操作系统大盘点

    B站CodeSheep的教程 https://www.bilibili.com/read/cv6026694

  4. ASP.NET CORE开发 (三)

    1. 在使用singleton时出现 Cannot resolve scoped service 'AlgoTag.Models.AlgoContext' from root provider. ht ...

  5. 深入理解 python 虚拟机:字节码教程(1)——原来装饰器是这样实现的

    深入理解 python 虚拟机:字节码教程(1)--原来装饰器是这样实现的 在本篇文章当中主要给大家介绍在 cpython 当中一些比较常见的字节码,从根本上理解 python 程序的执行.在本文当中 ...

  6. 列表、sort、reverse、元组、字典、

    1.列表是一种有序可变的容器.通过[]来标识 1)定义一个空列表list = [] 2.列表的添加 1)末尾添加append() list = ['张三',,'王五'] list.append('刘六 ...

  7. CesiumJS 源码杂谈 - 从光到 Uniform

    目录 1. 有什么光 2. 光如何转换成 Uniform 以及何时被调用 2.1. 统一值状态对象(UniformState) 2.2. 上下文(Context)执行 DrawCommand 2.3. ...

  8. 分享一个开源的windows安卓投屏工具,scrcpy

    看到scrcpy可能很多人会以为是大名鼎鼎的Scrcpy(一个十分强大的多线路爬虫框架),sorry今天分享的主角不是他,而是他: github地址:https://github.com/Genymo ...

  9. Problems with EXC_BAD_ACCESS in CCBReader

    Hi guys, I've found problems using the CCBReader when deploying my game to an iPhone 4.There are sev ...

  10. 开心档之MySQL 管理

    MySQL 管理 启动及关闭 MySQL 服务器 Windows 系统下 在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录. 启动: cd c:/mysq ...