续上篇,这篇我们来进一步探索 Tye 更多的使用方法。本篇我们将进一步研究 Tye 与分布式应用程序运行时 Dapr 如何碰撞出更精彩的火花。

巧了,巧了,真是巧了

今天正值 dapr 1.0 发布的日子。如果你暂时还不了解什么是 dapr。

那不如通过以下简短的视频来了解一下什么是 dapr:

https://www.bilibili.com/video/BV1xz4y167XA/

简单来说, dapr 为开发者提供了一个开发云原生应用所需构件的一个抽象层。透过这个抽象层,开发者可以节约很多基础设施上所需要投入的精力,进一步得到自我解放。

安装 Dapr runtime

为了在开发环境运行 dapr runtime。需要先在开发机上进行一些简单的安装。

开发者可以通过 dapr 文档库中的 get started 章节来了解如何在本地初始化开发环境:

https://docs.dapr.io/getting-started/

当然,你也可以通过社区提供的中文文档库来了解相关过程:

https://dapr-cn.gitee.io/getting-started/

dapr 中文社区致力于为中文用户提供更加易读的 dapr 文档中文译制内容。现在,我们仍然需要更多志同道合的伙伴一同献力,协作奋进。如果您有意愿,欢迎前往项目首页进行了解:https://github.com/dapr-cn/docs

创建测试应用

首先,我们创建一个和 {% post_link Newbe.Claptrap/Try-Tye-2 %} 中提到一样的测试用例。

即,包含两个服务的测试应用。

然后,修改tye.yml以加入 dapr 扩展:

name: tyetest
extensions:- name: dapr
services:- name: tyetestproject: TyeTest/TyeTest.csproj- name: tyetest2project: TyeTest2/TyeTest2.csproj

运行tye run,便可以在 tye dashboard 中查看成功运行的服务实例和 dapr 实例:

dapr instance

使用 swagger 页面,可以正常的访问服务。

同时,按照 dapr http 访问服务也是可以的:

GET http://localhost:5295/v1.0/invoke/tyetest/method/WeatherForecast

使用以上方式访问得到的结果和 swagger 得到的一样。其中 5295 端口就是上图中所示的 dapr http 终结点。可以通过日志查看到这个信息:

[tyetest-dapr_6432571f-b]:C:\Users\Administrator/.dapr/bin/daprd.exe -app-id tyetest -app-port 5290 -dapr-grpc-port 5294 --dapr-http-port 5295 --metrics-port 5296 --placement-host-address localhost:5289

这便是使用 tye 简化 dapr 应用开发的简易示例。

来点复杂的例子

下面,我们来尝试运行 Newbe.Claptrap 的最新模板项目,体验一下 Tye 与 dapr 结合的强力效果。

安装项目模板

进入 nuget.org 查询最新的 Newbe.Claptrap.Template 版本,并且使用界面上的命令行安装项目模板:

https://www.nuget.org/packages/Newbe.Claptrap.Template/

dotnet new --install Newbe.Claptrap.Template::0.9.4

使用模板创建项目

创建一个文件夹,然后在文件夹中运行以下命令以创建项目:

dotnet new newbe.claptrap --name HelloClaptrap

部署辅助组件

新建好的项目中存在一个docker-compose.yml文件,用于开发者部署 seq 和 zipkin 等等辅助组件。

将此文件移动到单独的位置,使用docker-compose up -d便可以顺利启动服务。

当然,开发者也可以自行采用其他方式部署,或者不要部署。这并非必要的内容。

启动项目

在解决方案文件夹,使用tye run便可以顺利启动项目。启动之后可以在 tye dashboard 上查看到项目模板包含的所有项目:

newbe.claptrap service

进入helloclaptrap-webapi服务的 swagger 页面。调用/AuctionItems/{itemId}/statusAPI:

newbe.claptrap AuctionItems

这就说明服务已经全部启动成功了。

这实际上是一个拍卖竞价的样例项目。更多的细节可以前往 https://claptrap.newbe.pro 进行了解。

调用之后可以在 Jaeger UI 上查看到服务之间的调用关系和性能细节:

newbe.claptrap AuctionItems

小结

本篇,我们尝试了 Tye 和 Dapr 的联动操作。初步体验了一下 dapr 的特性。

开发者如果想要了解更多关于 dapr 的内容,欢迎阅读官网文档进行了解。

至此,本系列也就告一段落。如果您觉得本系列内容对您有所帮助,欢迎转发、评论、收藏文章以及项目。

本系列所有测试代码,均可以在以下仓库查看:

https://github.com/newbe36524/Newbe.Demo/tree/master/src/BlogDemos/Newbe.Tye

使用 Tye 辅助开发 k8s 应用竟如此简单(六)相关推荐

  1. 使用 Tye 辅助开发 k8s 应用竟如此简单(五)

    使用 Tye 辅助开发 k8s 应用竟如此简单(一) 使用 Tye 辅助开发 k8s 应用竟如此简单(二) 使用 Tye 辅助开发 k8s 应用竟如此简单(三) 使用 Tye 辅助开发 k8s 应用竟 ...

  2. 使用 Tye 辅助开发 k8s 应用竟如此简单(四)

    使用 Tye 辅助开发 k8s 应用竟如此简单(一) 使用 Tye 辅助开发 k8s 应用竟如此简单(二) 使用 Tye 辅助开发 k8s 应用竟如此简单(三) 续上篇,这篇我们来进一步探索 Tye ...

  3. 使用 Tye 辅助开发 k8s 应用竟如此简单(三)

    使用 Tye 辅助开发 k8s 应用竟如此简单(一) 使用 Tye 辅助开发 k8s 应用竟如此简单(二) 续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们来了解一下如何在 Tye 中如 ...

  4. 使用 Tye 辅助开发 k8s 应用竟如此简单(一)

    最近正巧在进行 Newbe.Claptrap 新版本的开发,其中使用到了 Tye 来辅助 k8s 应用的开发.该系列我们就来简单了解一下其用法. 安装 Tye 首先,确保已经正确安装了 netcore ...

  5. 使用 Tye 辅助开发 k8s 应用竟如此简单(二)

    续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们来了解一下如何在 Tye 中使用服务发现. 服务发现 - 微服务开发不可缺少的部件 服务发现,就是新注册的这个服务模块能够及时的被其他调用 ...

  6. 使用 Tye 辅助开发 dotnet 应用程序

    newbe.pro 已经给我们写了系列文章介绍Tye 辅助开发k8s 应用: 使用 Tye 辅助开发 k8s 应用竟如此简单(一) 使用 Tye 辅助开发 k8s 应用竟如此简单(二) 使用 Tye ...

  7. 微软推出VS Code新特性,为TypeScript和JavaScript用户提供AI辅助开发功能

    除了开发人员非常喜欢的IntelliSense和代码完成之外,今年早些时候,微软还发布了IntelliCode,提供了一组AI辅助开发功能.VS Code团队现在宣布了一项新的实验性扩展,将Intel ...

  8. 微软推出 VS Code 新特性,为 TypeScript 和 JavaScript 用户提供 AI 辅助开发功能

    除了开发人员非常喜欢的IntelliSense和代码完成之外,今年早些时候,微软还发布了IntelliCode,提供了一组 AI 辅助开发功能.VS Code 团队现在宣布了一项新的实验性扩展,将 I ...

  9. .NET 程序员十种常用辅助开发工具

     .NET 程序员十种常用辅助开发工具      一: .NET 程序员十种工具 - Visual Studio Converter(转换器工具) Visual Studio .NET 项目转换器(参 ...

最新文章

  1. 佛门的七众弟子指的是哪些呢?
  2. 在Asp.net中使用JQuery插件之jTip
  3. 解决外部工具链接CRM失败的问题
  4. RecSys 2016总结
  5. 5G为何采纳华为力挺的Polar码?一个通信工程师的大实话
  6. 安卓动画知识总结 Animation AnimationSet LayoutAnimation
  7. linux c之用fputc和fgetc复制文件并且打印在终端
  8. python seaborn heatmap可视化相关性矩阵
  9. JavaJDK8新特性相关知识整理
  10. 买mac电脑的各个使用阶段:
  11. 你必须收藏的 GitHub 技巧
  12. Java 四种线程池
  13. 44 年前的今天,改变世界的 TA 诞生了!
  14. Linux怎么删掉ftp服务器,Linux怎么删掉ftp服务器
  15. 思岚激光雷达A2 Ros配置
  16. 10246 - Asterix and Obelix
  17. Python 进阶视频课 - 14. FR007 利率掉期定价和曲线拔靴
  18. 经此一疫,互联网公司格局发生了哪些变化?
  19. (干货)备战2021年软考中级网络工程师-04知识产权与标准化
  20. 汇编语言(第三版)第十章 CALL 和 RET 指令 笔记

热门文章

  1. 对flex-grow和flex-shrink的深入理解
  2. uoj#119. 【UR #8】决战圆锥曲线(线段树+复杂度分析)
  3. python3用list实现栈
  4. VK Cup 2015 - Qualification Round 1 A. Reposts(树)
  5. Javascript和android原生互调
  6. CentOS学习笔记--程序管理
  7. js 编程时注意事项
  8. CN Erlounge IV 讲师名单公布及Call For Topic
  9. 推荐使用typora
  10. 怎样用原生js配合css的transition写个无缝滚动