Fork me on GitHub
上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页
摘要: 分布式跟踪在dapr里是开箱即用的,不需要对应用作任何一丁点的侵入式编程。之前的开发,如果想实现分式跟踪,就得在应用中埋点,这是一个与业务无关系的动作。dpar通过sidecar可以轻松做到这点,从而让程序员更多精力投入到业务中,又让运维得到可观测性能数据,对服务运维保驾护航。从此以后,开发和运维再 阅读全文
posted @ 2022-04-21 19:55 桂素伟 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 绑定有点像订阅发布,但又不一样,绑定更简单,绑定输出(调用方)-绑定输入(被调用方)。 本例是用docker compose编排,并且用rabbitMQ来支持,因为rabbitMQ支持输入和输出绑定。 demo的目录结构: binding.yaml,放在components目录下 apiVersio 阅读全文
posted @ 2022-04-19 21:08 桂素伟 阅读(65) 评论(0) 推荐(0) 编辑
摘要: queue,是很好的削峰填谷工具,在业内也是主流;发布订阅,可以有效的解耦两个应用,所以dapr把他们进行了有效的封装,我们使用起来更简单高效。 本篇的案例是下完订单后,会把消息发布到redis(当然也可以是其他)中,通知系统和支付系统会订单这个消息,同时,通知系统和支付系统的两个实例中,只会有一个 阅读全文
posted @ 2022-04-19 20:58 桂素伟 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 为了防止并发对数据修改造成差异,dapr使用了etag标签来作为版本号,对数据修改进行验证。 下面是对etag的一个demo appsettings.json中的url配置 "StateUrl": "http://localhost:3500/v1.0/state/statestore" 在Paym 阅读全文
posted @ 2022-03-31 15:25 桂素伟 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中说到,dapr默认的状态是不可能跨appid的,也就是只能在相同的应用内访问自己设置的状态数据,dapr支持三种状态的共享配置:appid,nam,none,是通过修改components下的statestore.yaml文件中的keyPrefix配置项来实现的。 说明:本篇所有dem 阅读全文
posted @ 2022-03-31 15:07 桂素伟 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 说明:为了给出demo的全貌,这篇有点长,如果有上一篇的基础,会更容易阅读一些。 在分布式应用,有状态服务是常态,特别是多副本应用,就需要共用缓存来解决数据统一的状况,所以dapr也把状态管理做成一个标准组件。 下面通过docker-compose来发布OrderSystem项目和PaymentSy 阅读全文
posted @ 2022-03-31 14:50 桂素伟 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 上一篇聊到用两个物理机(一个win,一个mac)来部署dapr和服务 ,实现order调用pay的负载均衡。本篇说一下在windows上的docker部署这三个服务,达到与上一篇的效果。 三个服务的部署架构是这样的 首先要把OrderSystem(服务端口80)项目docker化,Dockerfil 阅读全文
posted @ 2022-03-23 09:45 桂素伟 阅读(259) 评论(0) 推荐(0) 编辑
摘要: dpar在同一台电脑上不能run 相同appid,这个在上篇说过,所以就用外部负载均衡nginx来对应,那在不同的host中跑同一服务,看看dapr内部的负载均衡是怎么实现的。 说说现有的服务,两个服务,订单服务,支付服务;下完订单后同步调支付服务。 一、demo项目的mock代码 OrderSys 阅读全文
posted @ 2022-03-23 09:29 桂素伟 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 原来一直用SortList,SortedDictionary来作为键值对存储的排序集合来用,心中就默认是以key按ascall排序来存放的,在之前的案例中也没有出现问题,在最近一个demo中,打破了原来的自以为是的认识,因为在key中不但有大写小,还有特列符号。 先看一下代码: Console.Wr 阅读全文
posted @ 2022-03-18 21:16 桂素伟 阅读(38) 评论(0) 推荐(0) 编辑
摘要: demo运行环境:Windows10,Docker(dapr_zipkin,dapr_redid,dapr_placement) 安装:dapr init 卸载:dapr uninstall,然后删除 C:\Users\当前用户\.dapr dapr在部署时是通过给服务挂载一个sidecar,来辅助 阅读全文
posted @ 2022-03-17 20:55 桂素伟 阅读(100) 评论(0) 推荐(0) 编辑
摘要: dapr,一个为分布式应用程序的运行时,为开发者在对接分布式组件时,提供了便利。使用dapr带来的好处可扩展性,因为它是通过sidecar的理概念来集成其他运行时的。同时dapr还提供了多种语言的SDK。 关于dapr更多介绍,官方文档(https://docs.dapr.io/zh-hans/)是 阅读全文
posted @ 2022-03-17 20:47 桂素伟 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 最近在做一些开发测试代码的工作,就是为了测试中间业务程序,前头调用程序,后头写挡板程序,说白了就是链路调用,因为复杂度在中间的业务程序,所以前后两端的程序应相对简单。 这里就有一个问题:技术选型,或者说成是语言选择,这就上升成为了一个打嘴仗的话题,“世界上最好的编程语言是什么?”。其实大家都知道,没 阅读全文
posted @ 2022-03-15 20:49 桂素伟 阅读(148) 评论(0) 推荐(1) 编辑
摘要: in,out,ref都可能作为方法参数据修饰符,从字面意思可就可以理解这三个关键字的含义,那用法是什么样子的呢,通过demo来看一下。 定义一个引用类型Order public class Order { public string OrderNo { get; set; } public over 阅读全文
posted @ 2022-03-15 20:43 桂素伟 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 最近做项目,用到goreplay来做流量回放,什么是goreplay? GoReplay is an open-source network monitoring tool which can record your live traffic, and use it for shadowing, l 阅读全文
posted @ 2022-03-14 21:03 桂素伟 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 编程思维,对于一个开发人员来说是必备的,但凡能让应用跑起来,不管应用的大小,优劣,说明这个开发人员都具有编程思维,毕竟程序认可了这个开发人员逻辑,能启动起来 小到几行代码,一个小的桌面应用;大到一个行业产品,庞大的架构,众多微服务组成;编程思维可以说都是贯穿始终的,无处不在的。 那编程思维是什么?下 阅读全文
posted @ 2022-03-14 20:54 桂素伟 阅读(43) 评论(0) 推荐(1) 编辑
摘要: 在自定义EventSource时,可以使用四种EventCounter: EventCounter:统计指标收集器,比如平均值,最大值,最小值 PollingCounter:自定义统计指标收集器,通过自定义统计方法的方式实现对指标的统计 IncrementingEventCounter:累加指标收集 阅读全文
posted @ 2022-02-23 14:24 桂素伟 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 在自定义EventSource时,可以使用四种EventCounter: EventCounter:统计指标收集器,比如平均值,最大值,最小值 PollingCounter:自定义统计指标收集器,通过自定义统计方法的方式实现对指标的统计 IncrementingEventCounter:累加指标收集 阅读全文
posted @ 2022-02-23 14:17 桂素伟 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 在自定义EventSource时,可以使用四种EventCounter: EventCounter:统计指标收集器,比如平均值,最大值,最小值 PollingCounter:自定义统计指标收集器,通过自定义统计方法的方式实现对指标的统计 IncrementingEventCounter:累加指标收集 阅读全文
posted @ 2022-02-23 14:07 桂素伟 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 之前的Counters都是系统内置的,我们只需在进程外,或进程内采集,然后交给专门的展示指标工具即可。本篇说一下自定义EventSource,来采集自己业务中,或自己产品中的指标收集方式。 自定义EventSource是以EventCounters作为核心,EventCounters的作用是实时自动 阅读全文
posted @ 2022-02-23 14:00 桂素伟 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 下面这段代码就是把ascll为0到127值 ,转成string,并判断在字符串中的位置,第5,6行代码分别用了两种IndexOf方法的重载。 for (var i = 0; i < 128; i++) { var str1 = ((char)i).ToString(); var str2 = $" 阅读全文
posted @ 2022-02-21 17:37 桂素伟 阅读(77) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页