Dapr在Java中的实践 之 环境准备

Posted 万猫学社

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dapr在Java中的实践 之 环境准备相关的知识,希望对你有一定的参考价值。

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必读技术书籍

Jenkins实践之入门体验

技术分享图片

官网:https://jenkins.io/

持续集成,快速发布是DevOps实践的最好方式。

目录

准备工作

在使用Jekins之前,先安装好如下组件:

  • JDK,并设置好Java环境变量,启动Jenkins时需要执行java命令
  • Maven(可选),但是为了使用自定义的settings.xml文件,自定义安装比较好。

并且确认部署Jenkins的主机能够访问外网(需要下载插件)。

下载/安装/启动

直接下载jenkins.war,然后执行:java -jar jenkins.war就可以启动jenkins了。
第一次启动时会默认生成一个密码,第一次访问页面时将会使用该密码。
第一次登陆时会提示安装插件,可以直接安装推荐的插件列表,也可以自定义安装指定插件,安装插件需要等待一段时间。
插件安装完毕之后需要创建第一个管理员账户,设置完毕之后重启登录jenkins。

提示:

  1. 如果在新建第一个管理员账户之后无法登录,请重启jekins重新访问首页并登录即可。
  2. 如果需要修改jekins的workspace路径,请在第一次启动之前就修改,如果在启动之后修改将会重新执行一次初始化操作。

基础配置

第一次使用新建的管理员账户登录之后,先进行全局工具配置,路径:“系统管理”->“全局工具配置”。
在这里进行全局的MAVEN,JDK,GTI等基础环境配置。

插件配置

为了构建Maven项目,需要先安装插件:“Maven Integration”插件。
安装路径:“系统管理”->“管理插件”,切换到“可选插件”标签页,在右上角搜索框输入:“Maven Integration”,选择并安装“Maven Integration”插件,安装插件需要等待一段时间。

构建第一个Java项目

安装完“Maven Integration”插件之后,回到jenkins首页。
点击“新建任务”,输入任务名称,选择“构建一个maven项目”,点击“确定”按钮进入到任务配置界面,分别对如下参数进行配置:

  • General:配置任务基本信息,如:任务描述等等。
  • 源码管理:选择Git,输入源码仓库地址,默认选择从master分支构建。
  • 构建触发器:选择“轮询 SCM”,填入构建计划,如每3分钟检查一次项目变化:*/3 * * * *
  • 项目构建:在Build选项中,“Root POM”参数为构建时需要使用的pom.xml文件,默认使用的项目根目录下的pom.xml。如果pom.xml不在根目录下,需要明确填写,如:xxx/yyy/pom.xml;参数“Goals and options”为执行构建时使用的命令,如:clean package -DskipTests=true

在任务页面的左侧菜单中,选择“立即构建”,此时在“构建历史”中就可以看到所有执行构建任务的信息。点击任意一个历史构建任务,选择“控制台输出”可以查看详细的构建输出日志。

部署项目

构建完成够可以通过执行脚本的方式将程序部署的目标服务器,分三步走:
第一步:配置免密码登录方式登录目标服务器(SSH免密码登录)
第二步:将构建的文件复制到目标服务器(使用scp命令)
第三步:通过插件“Jenkins SSH”在目标服务器执行脚本进行程序部署

【参考】
http://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000 使用Jenkins进行持续集成
http://fanlychie.github.io/post/jenkins-remote-ssh.html Jenkins SSH 远程执行 Shell 脚本
https://jenkins.io/doc/book/using/ jenkins官方手册
https://www.cnblogs.com/exmyth/p/7148330.html 更改Jenkins的workspace目录
https://segmentfault.com/q/1010000006741100 jenkins管理界面中没有 构建maven项目 这一项

以上是关于Dapr在Java中的实践 之 环境准备的主要内容,如果未能解决你的问题,请参考以下文章

Dapr在Java中的实践 之 服务调用

Dapr在Java中的实践 之 状态管理

Azure DevOps 中 Dapr项目自动部署流程实践

Blazor+Dapr+K8s微服务之开发环境调试

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

Dapr 在阿里云原生的实践