getty

分布式事务框架 seata-golang 通信模型详解

不问归期 提交于 2021-02-14 13:41:07
简介: Java 的世界里,大家广泛使用的一个高性能网络通信框架 netty,很多 RPC 框架都是基于 netty 来实现的。在 golang 的世界里,getty 也是一个类似 netty 的高性能网络通信库。getty 最初由 dubbogo 项目负责人于雨开发,作为底层通信库在 dubbo-go 中使用。随着 dubbo-go 捐献给 apache 基金会,在社区小伙伴的共同努力下,getty 也最终进入到 apache 这个大家庭,并改名 dubbo-getty 。 作者 | 刘晓敏 于雨 一、简介 Java 的世界里,大家广泛使用的一个高性能网络通信框架 netty,很多 RPC 框架都是基于 netty 来实现的。在 golang 的世界里, getty 也是一个类似 netty 的高性能网络通信库。getty 最初由 dubbogo 项目负责人于雨开发,作为底层通信库在 dubbo-go 中使用。随着 dubbo-go 捐献给 apache 基金会,在社区小伙伴的共同努力下,getty 也最终进入到 apache 这个大家庭,并改名 dubbo-getty 。 18 年的时候,我在公司里实践微服务,当时遇到最大的问题就是分布式事务问题。同年,阿里在社区开源他们的分布式事务解决方案,我也很快关注到这个项目,起初还叫 fescar,后来更名 seata

Dubbo-go 源码笔记(一)Server 端开启服务过程

南楼画角 提交于 2021-01-07 05:00:45
简介: 随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。 作者 | 李志信 dubbo-go 源码 : https://github.com/apache/dubbo-go 导读 :随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。下周将发表本文的姊妹篇:《从 client 端源码导读 dubbo-go 框架》。 当拿到一款框架之后,一种不错的源码阅读方式大致如下:从运行最基础的 helloworld demo 源码开始 —> 再查看配置文件 —> 开启各种依赖服务(比如zk、consul) —> 开启服务端 —> 再到通过 client 调用服务端 —> 打印完整请求日志和回包。调用成功之后,再根据框架的设计模型,从配置文件解析开始,自顶向下递阅读整个框架的调用栈。 对于 C/S

分布式事务框架 seata-golang 通信模型详解

♀尐吖头ヾ 提交于 2020-12-14 19:17:30
一、简介 Java 的世界里,大家广泛使用的一个高性能网络通信框架 netty,很多 RPC 框架都是基于 netty 来实现的。在 golang 的世界里,getty 也是一个类似 netty 的高性能网络通信库。getty 最初由 dubbogo 项目负责人于雨开发,作为底层通信库在 dubbo-go 中使用。随着 dubbo-go 捐献给 apache 基金会,在社区小伙伴的共同努力下,getty 也最终进入到 apache 这个大家庭,并改名 dubbo-getty 。 18 年的时候,我在公司里实践微服务,当时遇到最大的问题就是分布式事务问题。同年,阿里在社区开源他们的分布式事务解决方案,我也很快关注到这个项目,起初还叫 fescar,后来更名 seata。由于我对开源技术很感兴趣,加了很多社区群,当时也很关注 dubbo-go 这个项目,在里面默默潜水。随着对 seata 的了解,逐渐萌生了做一个 go 版本的分布式事务框架的想法。 要做一个 golang 版的分布式事务框架,首要的一个问题就是如何实现 RPC 通信。dubbo-go 就是很好的一个例子摆在眼前,遂开始研究 dubbo-go 的底层 getty。 二、如何基于 getty 实现 RPC 通信 getty 框架的整体模型图如下: 下面结合相关代码,详述 seata-golang 的 RPC 通信过程。 1

Dubbo-go 源码笔记(一)Server 端开启服务过程

耗尽温柔 提交于 2020-11-06 16:50:34
简介: 随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。 作者 | 李志信 dubbo-go 源码 : https://github.com/apache/dubbo-go 导读 :随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。下周将发表本文的姊妹篇:《从 client 端源码导读 dubbo-go 框架》。 当拿到一款框架之后,一种不错的源码阅读方式大致如下:从运行最基础的 helloworld demo 源码开始 —> 再查看配置文件 —> 开启各种依赖服务(比如zk、consul) —> 开启服务端 —> 再到通过 client 调用服务端 —> 打印完整请求日志和回包。调用成功之后,再根据框架的设计模型,从配置文件解析开始,自顶向下递阅读整个框架的调用栈。 对于 C/S

荔枝派Nano (Lichee Pi)玩 Linux 傻瓜教程 (6) --- 程序自启

自闭症网瘾萝莉.ら 提交于 2020-08-16 08:00:39
转载请注明出处。 http://chengchen.cnblogs.com/ 每次登陆都要插COM连接线,还要插 usb线进行设置,才能使用SSH,太恶心了。 本来想用/etc/rc.local ,结果发现由于刷的系统太新,找不到这个文件。 看了别人代码,我才知道有如此简单的新方法,并且还可以保证COM口正常登录: 直接修改/etc/inittab文件 看这一句:运行/sbin 目录下的getty命令。 # Put a getty on the serial port /dev/ttyS0::respawn:/sbin/getty -L /dev/ttyS0 115200 vt100 # GENERIC_SER 注意这个/dev/ttyS0,我的系统是这样显示的,但是不管你的系统是什么样的,照抄就行。 比如: /dev/ttyS0::respawn:/sbin/ifconfig usb0 192.168.5.100 这样就可以运行了,当然如果有更复杂的启动逻辑,也可以去调用脚本,比如调用文件名为main的脚本 /dev/ttyS0::respawn:/etc/main main可以随便写: cd /xxxxxx; ./xxxxxx ------------------------------------------- 以下为旧方法--------------------------

涂鸦智能 dubbo-go 亿级流量的实践与探索

筅森魡賤 提交于 2020-08-15 10:38:46
作者 | 潘天颖,Github ID @pantianying,开源爱好者,就职于涂鸦智能 dubbo 是一个基于 Java 开发的高性能的轻量级 RPC 框架,dubbo 提供了丰富的服务治理功能和优秀的扩展能力。而 dubbo-go 在 java 与 golang 之间提供统一的服务化能力与标准,是涂鸦智能目前最需要解决的主要问题。本文分为实践和快速接入两部分,分享在涂鸦智能的 dubbo-go 实战经验,意在帮助用户快速接入 dubbo-go RPC 框架,希望能让大家少走些弯路。另外,文中的测试代码基于 dubbo-go版本 v1.4.0。 dubbo-go 网关实践 dubbo-go 在涂鸦智能的使用情况如上图,接下来会为大家详细介绍落地细节,希望这些在生产环境中总结的经验能够帮助到大家。 1. 背景 在涂鸦智能,dubbo-go 已经作为了 golang 服务与原有 dubbo 集群打通的首选 RPC 框架。其中比较有代表性的 open-gateway 网关系统(下文统一称 gateway,开源版本见 https://github.com/dubbogo/dubbo-go-proxy )。该 gateway 动态加载内部 dubbo 接口信息,以HTTP API 的形式对外暴露。该网关意在解决上一代网关的以下痛点。 通过页面配置 dubbo 接口开放规则,步骤繁琐

aix6.1安装部署zabbix代理报错处理 Member libiconv.so.2 is not found in archive

本秂侑毒 提交于 2020-08-13 11:14:02
1、一般官网的二进制包下下来就能用,但是有时候一些系统环境不匹配,依赖的包需要单独安装 2、连接aix 版本 aix6.1 Connection established. To escape to local shell, press 'Ctrl+Alt+]'. WARNING! The remote SSH server rejected X11 forwarding request. 5 unsuccessful login attempts since last login. Last unsuccessful login: Tue Jun 16 11:05:51 2020 on ssh from 8.5.5.161 Last login: Thu Jun 4 15:58:07 2020 on /dev/pts/0 from 9.5.7.188 ******************************************************************************* * * * * * Welcome to AIX Version 6.1! * * * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release

涂鸦智能 dubbo-go 亿级流量的实践与探索

别等时光非礼了梦想. 提交于 2020-08-12 00:12:54
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! dubbo 是一个基于 Java 开发的高性能的轻量级 RPC 框架,dubbo 提供了丰富的服务治理功能和优秀的扩展能力。而 dubbo-go 在 java 与 golang 之间提供统一的服务化能力与标准,是涂鸦智能目前最需要解决的主要问题。本文分为实践和快速接入两部分,分享在涂鸦智能的 dubbo-go 实战经验,意在帮助用户快速接入 dubbo-go RPC 框架,希望能让大家少走些弯路。另外,文中的测试代码基于 dubbo-go版本 v1.4.0。 dubbo-go 网关实践 dubbo-go 在涂鸦智能的使用情况如上图,接下来会为大家详细介绍落地细节,希望这些在生产环境中总结的经验能够帮助到大家。 1. 背景 在涂鸦智能,dubbo-go 已经作为了 golang 服务与原有 dubbo 集群打通的首选 RPC 框架。其中比较有代表性的 open-gateway 网关系统(下文统一称 gateway,开源版本见 https://github.com/dubbogo/dubbo-go-proxy )。该 gateway 动态加载内部 dubbo 接口信息,以HTTP API 的形式对外暴露。该网关意在解决上一代网关的以下痛点。 通过页面配置 dubbo 接口开放规则

apue笔记-第9章 进程关系

自闭症网瘾萝莉.ら 提交于 2020-08-10 21:05:50
终端登录: init进程知道那些终端设备可用来登录,并且为每个设备生成一个getty进程 网络登录: 为了使同一个软件技能处理终端登录,又能够处理网络登录,系统使用了一种称为伪终端(pseudo terminal)的软件驱动程序。 BSD登录中,有一个inetd进程-->等待大多数网络连接。 inetd等待TCP/IP连接请求到达主机,当一个连接请求到达时,执行一次fork,然后生成的子进程exec执行适当的程序。 进程组 pid_t getpgrp()获取进程组id int setpgid(pid_t pid,pid_t pid);加入一个现有的进程组或者创建一个新的进程组 注意:一个进程只能为它自己或者它的子进程设置进程组ID。在它的子进程调用了exec后,它就不可以更改该孩子进程的进程组了! 会话: 返回前台进程组GroupID: #include<unistd.h> #include "apue.h" int main(void){ /*returns the process group ID of the foreground process group on the terminal associated to fd, which must be the controlling terminal of the calling process.`*/ printf(

涂鸦智能dubbo-go亿级流量的实践与探索

巧了我就是萌 提交于 2020-08-09 14:47:55
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! dubbo 是一个基于 Java 开发的高性能的轻量级 RPC 框架,dubbo 提供了丰富的服务治理功能和优秀的扩展能力。而 dubbo-go 在 java 与 golang 之间提供统一的服务化能力与标准,是涂鸦智能目前最需要解决的主要问题。本文分为实践和快速接入两部分,分享在涂鸦智能的 dubbo-go 实战经验,意在帮助用户快速接入 dubbo-go RPC 框架,希望能让大家少走些弯路。另外,文中的测试代码基于 dubbo-go版本 v1.4.0。 dubbo-go 网关实践 dubbo-go 在涂鸦智能的使用情况如上图,接下来会为大家详细介绍落地细节,希望这些在生产环境中总结的经验能够帮助到大家。 1. 背景 在涂鸦智能,dubbo-go 已经作为了 golang 服务与原有 dubbo 集群打通的首选 RPC 框架。其中比较有代表性的 open-gateway 网关系统(下文统一称 gateway,开源版本见 https://github.com/dubbogo/dubbo-go-proxy )。该 gateway 动态加载内部 dubbo 接口信息,以HTTP API 的形式对外暴露。该网关意在解决上一代网关的以下痛点。 通过页面配置 dubbo 接口开放规则