Janrs.com | 杨建勇

  • 首页
  • 站点地图
  • 所有文章
  • 加入学习群
Janrs.com | 杨建勇
Go/Kubernetes/Istio/CloudNative
所有文章

微服务中的分布式事务管理 - 2/2 Saga异步模式

转载请注明来源:https://janrs.com/h42y 这篇文章是上一篇文章的延续。 在这篇文章中,我们将看到Saga模式,它是一种异步模式,在每个微服务中执行一连串的事务,并发布消息或事件以进行下一步。如果中间有任何步骤失败,Saga模式将执行补偿步骤以逆转交易。 我们可以从上图中看到,Saga模式在每个服务中执行一连串的本地事务。每个服务更新它的数据库,然后发布一个消息或事件,这将触发下一个本地事务。 因此,我们必须写出提交事务的逻辑,并且当事务中的任何地方出错时,也要有一个机制来逆转流程。所有的事务和补…

2023年3月17日 0条评论 12点热度 0人点赞 码仔 阅读全文
所有文章

微服务中的分布式事务管理 - 1/2 2/3阶段提交同步模式

转载请注明来源:https://janrs.com/bkt7 在这篇文章中,我们将看到关于跨微服务的分布式事务管理。 什么是事务 一个事务不过是一系列必须成功执行的操作。即使其中一个操作失败了,整个步骤也必须回滚,以使应用程序处于之前的稳定状态。一个事务具有以下ACID属性。 单体架构和微服务中的事务 在传统的单片机应用程序中,将有一个单一的大型应用程序连接到一个大型数据库,这种应用程序坚持ACID属性。 事务边界从服务层内部开始,可以根据该事务中所有步骤的结果进行提交或回滚。在微服务的情况下,每个微服务运行一个特…

2023年3月17日 0条评论 19点热度 1人点赞 码仔 阅读全文
Go

Golang Grpc 高级使用 - Deadlines, Cancellation, Error Handling, Multiplexing

Golang Grpc 高级使用 转载请注明来源:https://janrs.com/xag1 Deadlines 超时是分布式系统中常用的一种模式。尽管截止日期与超时相似,但对于gRPC来说,有一个关键的区别。超时是一个选项,让客户决定他们愿意等待服务器响应的时间,并且是在每个客户端本地应用。因此,它不可能在gRPC请求的整个生命周期内应用。这就是为什么我们需要使用截止日期。 超时允许你在微服务架构中避免无限期或长期运行的过程。任何服务都可以查询还有多少时间可以完成RPC,如果超过了这个时间,调用就会以DEADL…

2023年3月17日 0条评论 18点热度 1人点赞 码仔 阅读全文
Istio

istio实现多版本流量转移

istio实现多版本流量转移 多版本流量分发主要概念:同一个服务部署多个 deployment 共用一个 service 。通过在 deployment 设置 version 然后在 virtual service 以及 destination 配置流量转发。 deploy 配置示例 apiVersion: apps/v1 kind: Deployment metadata: name: hello-client namespace: rakour-dev labels: app: hello-client spe…

2023年3月16日 0条评论 14点热度 0人点赞 码仔 阅读全文
代码手册

Debian10 替换国内源

Debian10 替换国内源 deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main #deb http://security.debian.org/debian-security buster/updates main contrib #deb-src http://security.debian.org/debian-se…

2023年3月7日 0条评论 28点热度 0人点赞 码仔 阅读全文
k8s/云原生

谷歌发布编写分布式应用的框架Service Weaver

一个新的框架,在本地以模块化单体的形式运行,一旦部署,则为分布式微服务架构 转载请注明来源:https://janrs.com/dl08 项目GitHub地址:https://github.com/ServiceWeaver/weaver 感觉就像永远,总是在什么是更好的之间来来回回:单体还是微服务? 取决于你问谁,以及他们的经验,你每次都会得到不同的答案。但在大多数情况下,这往往取决于许多因素,如公司的规模,你需要服务的流量有多大,以及提供的产品。 在现实中,两种方法都有优点和缺点。但是,如果你能拥有两个世界的最…

2023年3月7日 0条评论 109点热度 2人点赞 码仔 阅读全文
Jaeger

在Kubernetes上使用Jaeger的分布式追踪基础设施

在Kubernetes上使用Jaeger的分布式追踪基础设施 转载请注明来源:https://janrs.com/sptc 作为分布式系统(或任何系统)的一个组成部分,监测基础设施的重要性怎么强调都不过分。监控不仅要跟踪二进制的 "上升 "和 "下降 "模式,还要参与到复杂的系统行为中。监测基础设施的设置可以让人们深入了解性能、系统健康和长期的行为模式。 这篇文章介绍了监控基础设施的一个方面--分布式跟踪。 微服务架构中的可观察性 Kubernetes已经成为微服务基础设施和…

2023年3月2日 2条评论 317点热度 141人点赞 码仔 阅读全文
Go

用GoRoutines高性能同时进行多个Api调用

用GoRoutines高性能同时进行多个Api调用 转载请注明来源:https://janrs.com/ppzi Golang是高效的,非常高效。这种效率在很大程度上要归功于它在处理并发性问题时的独特抽象。例如,Java将其线程映射为操作系统线程,而Go使用自己的goroutines调度器将其轻量级goroutines从操作系统线程中进一步抽象出来。简而言之,Golang在使用操作系统线程方面非常节俭;如果一个goroutine被阻塞了,Go的调度器会在它的位置上切换另一个goroutine,以尽可能地保持线程的忙…

2023年3月2日 0条评论 81点热度 31人点赞 码仔 阅读全文
Go

Go创建Grpc链接池

Go创建Grpc链接池 转载请注明来源:https://janrs.com/x0gn 常规用法 gRPC 四种基本使用 请求响应模式 客户端数据流模式 服务端数据流模式 双向流模式 常见的gRPC调用写法 func main(){ //... some code // 链接grpc服务 conn , err := grpc.Dial(":8000",grpc.WithInsecure) if err != nil { //...log } defer conn.Close() //...some…

2023年3月2日 0条评论 125点热度 31人点赞 码仔 阅读全文
Istio

kiali创建获取token

kiali创建获取token 查看 service account kubectl get sa -n istio-system 创建token 根据上面显示的 kiali 的 sa 创建 token 单例部署的kialia kubectl -n istio-system create token kiali operator部署的kialia kubectl -n istio-system create token kiali-service-account

2023年3月2日 0条评论 62点热度 28人点赞 码仔 阅读全文
代码手册

istio网关配置ssl证书开启443端口访问

istio网关配置ssl证书开启443端口访问 生成ssl证书 以配置访问rancher为例子 export DOMAIN_NAME=janrs.com openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=$DOMAIN_NAME Inc./CN=$DOMAIN_NAME' -keyout $DOMAIN_NAME.key -out $DOMAIN_NAME.crt openssl req -out ranc…

2023年3月2日 0条评论 56点热度 0人点赞 码仔 阅读全文
Docker

docker部署elk

docker 部署 elk 创建docker-compose mkdir -p /databases/elk cd /databases/elk mkdir -p elasticsearch/plugins mkdir -p elasticsearch/data mkdir -p logstash cat > /databases/elk/docker-compose.yaml <<EOF version: '3' services: elasticsearch: image:…

2023年3月1日 0条评论 54点热度 28人点赞 码仔 阅读全文
k8s/云原生

kubeadm部署k8s containerd设置harbor镜像地址以及非安全证书

containerd设置harbor镜像地址以及非安全证书 转载请注明来源:https://janrs.com 如果没有配置证书直接拉取镜像会出现以下错误: INFO[0000] trying next host error="failed to do request: Head \"https://reg.baidu.com/v2/rakour-dev/rakour-api/manifests/sha256:2cc4c70a07e2280b31257aa3a6895ca9a8bd790ddb1…

2023年2月26日 0条评论 74点热度 28人点赞 码仔 阅读全文
所有文章

scp 使用端口上传文件

scp 使用端口上传文件 转载请注明来源:https://janrs.com 域名方式 scp -P 10332 istio-1.17.1-linux-arm64.tar.gz john@jump.baidu.com:/home/john ip 地址方式 scp -P 10332 istio-1.17.1-linux-arm64.tar.gz john@192.168.1.1:/home/john 转载请注明来源:https://janrs.com

2023年2月25日 0条评论 47点热度 28人点赞 码仔 阅读全文
代码手册

ssh 设置免密登录

ssh 设置免密登录 转载请注明来源:https://janrs.com ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.22

2023年2月25日 0条评论 52点热度 0人点赞 码仔 阅读全文
k8s/云原生

kubeadm部署k8s后containerd设置crictl的runtime和image-endpoint地址

kubeadm部署k8s后containerd命令crictl无法查看容器和镜像 kubeadm部署k8s后containerd命令crictl无法查看容器和镜像,显示如下错误: WARN[0000] image connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-d…

2023年2月25日 0条评论 42点热度 28人点赞 码仔 阅读全文
Linux

k8s linux 释放内存

k8s linux 释放内存 转载请注明出处:https://janrs.com 释放之前先 sync 同步数据再执行以下命令: free -h sync echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches free -h

2023年2月25日 0条评论 48点热度 0人点赞 码仔 阅读全文
代码手册

istio开启自动注入sidecar

istio 开启自动注入sidecar 转载请注明出处:https://janrs.com 把下面的 default 换成要自动注入的命名空间 kubectl label namespace rakour-dev istio-injection=enabled

2023年2月25日 0条评论 52点热度 0人点赞 码仔 阅读全文
k8s/云原生

k8s部署metallb

[!TIP] k8s 部署 MetalLB 转载请注明出处:https://janrs.com k8s 版本 1.23.9 MetalLB 版本 v0.13.7 [!WARNING] MetalLB 该版本还处于 Beta 阶段。 如果使用 MetalLB 的 speaker 模式,会跟 calico 的 BGP 冲突。我这里没有使用 calico 的 BGP。 k8s 部署 MetalLB 修改 kube-proxy MetalLB 需要使用严格的 ARP 模式。需要设置 strictARP 参数为 true。 …

2023年2月25日 0条评论 52点热度 28人点赞 码仔 阅读全文
PHP

PHP高级特性-反射以及工厂设计模式的结合使用

[!TIP] php 高级特性 反射 以及 工厂设计模式 的结合使用 转载请注明出处:https://janrs.com PHP高级特性-反射以及工厂设计模式的结合使用 [结合 Laravel-Admin 代码实例讲解] 转载请注明出处:https://janrs.com 利用反射来实现工厂模式的生产而无需创建特定的工厂类 反射[Relfection] 什么是Reflection Reflection,即反射。反射提供给面向对象编程可以自省的能力。 这么理解有点太过于概念化,通俗地讲,就是能根据事件的结果反查出原因…

2023年2月20日 0条评论 43点热度 28人点赞 码仔 阅读全文
12345
有关Go/istio/k8s/云原生直接搜
分类
  • CICD
  • Docker
  • Go
  • Istio
  • Jaeger
  • k8s/云原生
  • Kubeadm部署k8s
  • Linux
  • MySQL
  • PHP
  • Rancher
  • 二进制部署k8s
  • 代码手册
  • 所有文章
  • 架构
  • 部署k8s服务
归档
  • 2023年3月 / 12篇
  • 2023年2月 / 68篇
  • 2023年1月 / 3篇

COPYRIGHT © 2023 Janrs.com | 杨建勇. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

闽ICP备20002184号