目录 go微服务框架kratos学习笔记十(熔断器) 什么是熔断 熔断器逻辑 kratos Breaker kratos 熔断逻辑 kratos熔断器使用说明 bladmaster client breaker 配置说明 test go微服务框架kratos学习笔记十(熔断器) 什么是熔断 假设存在这样的调用链: 服务A -> 服务B -> 服务C 如果服C crash 或者一些原因导致不可用,服B可能会阻塞很多线程/协程,如果短时间内大量积压,导致系统资源耗尽服B也变的不可用,同时连带服A一…
目录 go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时]) 静态配置 flag注入 在线热加载配置 远程配置中心 go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时]) 本节看看kratos的配置中心paladin(骑士). kratos对配置文件进行了梳理,配置管理模块化,如redis有redis的单独配置文件.bm有bm的单独配置文件,…
目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批量获取实例 nodes 批量获取节点 renew 心跳 cancel 下线 应用发现逻辑 服务注册 服务注册demo 服务注册逻辑 服务发现 测试调用 简单看看官方grpc服务发现逻辑 context deadline exceeded 简单看看官方grpc服务发现逻辑 go微服务框架kratos学…
目录 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) demo demo server demo client 池 dao service p2c roundrobin grpc官方负载均衡工作流程 源码 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) 本节看看kratos的学习负载均衡策略的使用. kratos 的负载均衡和服务发现一样也是基于grpc官方api实现的. grpc官方的负载均衡自带了…
目录 go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用) warden direct demo-server grpc.toml 服务注册 服务发现 client direct 调用 go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用) warden direct 本文是学习kratos warden第一节,kratos war…
目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding Interfaces go微服务框架kratos学习笔记八(kratos的依赖注入) 笔记二提过依赖注入,和如何生成,但没有细讲,本文来简单看看kratos的依赖注入. 什么是依赖注入 来看一个小程序, 创建一个小程序模拟带有问候的事件 我们将创建三个结构类型: 1)为迎宾员创建消息 message…
目录 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin) zipkin使用demo 数据持久化 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin) 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发.可能使用不同的编程语言来实现.有可能布在了几千台服务器,横跨多个不同的数据中心.因此,就需要一些可以帮助理解系统行为.用于分析性能问题的工具. 本节简单搭建…
微服务框架surging学习之路——序列化   1.对微服务的理解 之前看到在群里的朋友门都在讨论微服务,看到他们的讨论,我也有了一些自己的理解,所谓微服务就是系统里的每个服务都 可以自由组合.自由组合这个就很厉害了,这样一来,每个服务与服务之间基本的物理 耦合为0,横向扩展整个系统就会非常非常灵活. surging的厉害之处也恰恰是可以做到这些,所以surging 是.net core 里面一个非常不错的微服务框架. 2.surging的序列化方式 2.1 json.Net surging 使…
本章节阐述go-micro 服务发现原理 go-micro架构 下图来自go-micro官方 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架go-micro 入门笔记2.1 micro工具之micro api golang微服务框架go-micro 入门笔记2.2 micro工具之micro web golang微服务框架go-micro 入门笔记2.3 micro工具之消息订阅和发布 Servi…
本章节阐述micro消息订阅和发布相关内容 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架go-micro 入门笔记2.1 micro工具之micro api golang微服务框架go-micro 入门笔记2.2 micro工具之micro web broker代理 微服务之间需要通过broker来传递消息,go-micro支持http/nats/memory三种broker,其中http是默认…
micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架go-micro 入门笔记2.1 micro工具之micro api 本文应用环境 名称 描述 操作系统 win10 go version go version go1.12.7 windows/amd64 GOPATH E:\winlion\gopath G…
kratos简介 Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具 本文基于kratos v2.0.3,windows平台,其他系统平台均可借鉴参考 环境搭建 Golang开发包 Protoc编译工具安装 Protoc-gen-go插件安装 开启module模式 并配置GOPROXY 安装kratos go get -u github.com/go-kratos/kratos/cmd/kratos/v2@latest 创建项目 # 创建项目模板 kratos new <Y…
micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 主要作用 主要作用是为微服务提供http网关支持.假如后端服务名…
1.对微服务的理解 之前看到在群里的朋友门都在讨论微服务,看到他们的讨论,我也有了一些自己的理解,所谓微服务就是系统里的每个服务都 可以自由组合.自由组合这个就很厉害了,这样一来,每个服务与服务之间基本的物理 耦合为0,横向扩展整个系统就会非常非常灵活. surging的厉害之处也恰恰是可以做到这些,所以surging 是.net core 里面一个非常不错的微服务框架. 2.surging的序列化方式 2.1 json.Net surging 使用的是Newtonsoft.Json, 它是基于…
什么是链路追踪 借用阿里云链路追踪文档来解释 分布式链路追踪(Distributed Tracing),也叫 分布式链路跟踪,分布式跟踪,分布式追踪 等等,它为分布式应用的开发者提供了完整的调用链路还原.调用请求量统计.链路拓扑.应用依赖分析等工具,可以帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下的开发诊断效率. 为了应对各种复杂的业务,开发工程师开始采用敏捷开发.持续集成等开发方式.系统架构也从单机大型软件演化成微服务架构.微服务构建在不同的软件集上,这些软件模块可能是…
微服务的本质是让专业的人做专业的事情,做出更好的东西. golang具备高并发,静态编译等特性,在性能.安全等方面具备非常大的优势.go-micro是基于golang的微服务编程框架,go-micro操作简单.编码高效.功能强大.但是网络上资料偏少,本系列文章定位最简单最容易上手的go-micro入门教程,所有案列来自实操,而非网络上的复制粘贴. 本章节的目的是让大家最快速搭建好go-micro环境 软件 环境 操作系统 win10 golang go 12.7/AMD64 micro micr…
Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及"请求-响应"模式的信息交换方式. 集群容错: 提供基于…
引言 Json web token (JWT) 是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密. jwt构成 JWT是由三段信息构成的,将这三段信息文本用.链接一起就构成了Jwt字符串,就像这样 eyJhbGciOiJIUzI1NiIs…
介绍 GORM是一个使用Go语言编写的ORM框架.中文文档齐全,对开发者友好,支持主流数据库. GORM官方文档 安装 go get -u github.com/jinzhu/gorm 在kratos中引入GORM框架 在kratos生成的目录internal/data中找到data.go文件, 修改NewData方法并封装数据库客户端 // Data . type Data struct { db *gorm.DB } // NewData . //集成gorm框架 func NewData(…
本例重新创建项目,构建一个空的mavan工程. 一.Config Server 从本地读取配置文件 新建一个moudle config_server ,pom添加依赖   <dependency>   <groupId>org.springframework.cloud</groupId>   <artifactId>spring-cloud-config-server</artifactId>   </dependency> 启动类…
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务1:课程介绍 任务2:Labels and Selectors 所有资源对象(包括Pod, Service, Namespace, Volume)都可以打 Label,定义标签 Selectors:=, !=, in, not in, and 关系 Kubernetes Labels 和 Selectors #deploy.yaml apiVersion: apps/v1…
目录 kratos微服务框架学习笔记一(kratos-demo) kratos本体 demo kratos微服务框架学习笔记一(kratos-demo) 今年大部分时间飘过去了,没怎么更博和github,现在开发任务也差不多完成了,会比较轻松,考虑到今后发展,打算看看微服务框架. 常见微服务框架主要有这么几个 gizmo, a microservice toolkit from The New York Times ★ go-micro, a microservices client/serve…
本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过RPC接口通信.这样这些系统之间的耦合度大大降低,你的系统将非常容易扩展,团队协作效率提升了N个档次.这种架构通过眼下流行的SpringBoot和阿里巴巴吊炸天的Dubbo框架来实现. 容器化部署 你的各个微服务将采用目前处于浪潮之巅…
  当项目逐渐变大之后,服务增多,开发人员增加,单纯的使用go来写服务会遇到风格不统一,开发效率上的问题. 之前研究go的微服务架构go-kit最让人头疼的就是定义服务之后,还要写很多重复的框架代码,一直再想如何使用IDL描述服务,然后自动生成框架代码. 直到遇到老这货 goa,另外一个go的微服务框架.具体介绍看这篇,还有官网.   这货实现了框架的代码自动生成(自动生成的代码可以热更新,因为生成代码和自己写的代码是分开的),而且理念也比较时髦,基于API设计,利用插件来扩展业务逻辑.   于…
在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderService { private OrderDao orderDao; public void setOrderDao(OrderDao orderDao) { this.orderDao = orderDao; } //调用dao的方法 //业务逻辑层,写转账业务 public void accou…
go微服务框架go-micro深度学习(一) 整体架构介绍 go微服务框架go-micro深度学习(二) 入门例子 go微服务框架go-micro深度学习(三) Registry服务的注册和发现 go微服务框架go-micro深度学习(四) rpc方法调用过程详解 go微服务框架go-micro深度学习(五) stream 调用过程详解 代码在github上…
上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取server的地址信息,就可以和服务建立连接,然后就可以进行通信了.这篇帖子详细说一下,go-micro的通信协议.编码,和具体服务方法的调用过程是如何实现的,文中的代码还是我github上的例子: gomicrorpc go-micro 支持很多通信协议:http.tcp.grpc等,支持的编码方式也很多有jso…
产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂,变成一个大项目,如果前期项目架构没设计的不好,代码会越来越臃肿,难以维护,后期的每次产品迭代上线都会牵一发而动全身.项目微服务化,松耦合模块间的关系,是一个很好的选择,随然增加了维护成本,但是还是很值得的.       微服务化项目除了稳定性我个人还比较关心的几个问题: 一: 服务间数据传输的效率和安全性. 二: 服务的动态扩充,也就是服务的注册和发现,服务集群化. 三: 微服务功能的可订制化,因为并不是所有的功能都…
摘要: 上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取server的地址信息,就可以和服务建立连接,然后就可以进行通信了. 上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取server的地址信息,就可以和服务建立连接,然后就可…
写在前面 使用spring cloud搭建微服务框架,是我最近最主要的工作之一,一开始我使用bubbo加zookeeper制作了一个基于dubbo的微服务框架,然后被架构师否了,架构师曰:此物过时.随即,我上一套spring cloud,与公司大环境框架一致,也废了不少功夫,现在在这里分享基础结构给各位博友,如有不对的地方,欢迎大家直接评论区怂我.嘿嘿. 后续的代码已传至我的github,大家可以下载查看. 下载文件地址 微服务 首先我们要了解什么是微服务,以及微服务的作用,我们才能够顺利的搭建…