![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
API/RPC/Socket技术
API/RPC/Socket技术分享
Lansonli
CSDN大数据领域博客专家,InfoQ写作社区2022年度影响力作者、华为云社区2022年度十佳博主、华为云享专家、阿里云专家博主、腾讯云开发者社区2022年度最佳作者、腾云先锋(TDP)核心成员、51CTO专家博主,全网二十万多粉丝,知名互联网公司大数据高级开发工程师
展开
-
TCP/UDP协议基本概念
TCP和UDP协议是TCP/IP协议的核心。 TCP 传输协议:TCP 协议是一TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的...原创 2019-10-26 00:13:20 · 1521 阅读 · 0 评论 -
workerman的基本用法
workerman是什么?Workerman是一个异步事件驱动的PHP框架,具有高性能,可轻松构建快速,可扩展的网络应用程序。支持HTTP,Websocket,SSL和其他自定义协议。支持libevent,HHVM,ReactPHP。要求 1 2 3 PHP 5.3或更高版本 兼容POSIX的操作系统(Linux,OSX,BSD)...原创 2019-10-25 22:48:54 · 1495 阅读 · 0 评论 -
OpenResty搭建高性能服务端
Socket编程Linux Socket编程领域为了处理大量连接请求场景,需要使用非阻塞I/O和复用,select、poll、epoll是Linux API提供的I/O复用方式,自从Linux2.6中加入了epoll之后,高性能服务器领域得到广泛的应用,Nignx就是使用epoll来实现I/O复用支持高并发。对于“高性能”服务端而言,我们所关注的并不是语言的性能,而是缓存和语言支持异步非阻...原创 2019-10-25 18:57:11 · 563 阅读 · 0 评论 -
HTTP/HTTPS抓包工具-Fiddler
HTTP代理神器FiddlerFiddler是一款强大Web调试工具,它能记录所有客户端和服务器的HTTP请求。 Fiddler启动的时候,默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置。工作原理Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888Fiddler抓取HTTPS设置 启动F...原创 2019-10-23 17:27:39 · 1876 阅读 · 0 评论 -
HTTP/HTTPS的请求和响应
HTTP和HTTPSHTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。SSL(Secure Sockets Layer 安全套接层)主要用于W...原创 2019-10-23 17:03:17 · 1552 阅读 · 0 评论 -
Swoole入门介绍
Swoole虽然是标准的PHP扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。新手入门教程:https://github.com/LinkedDestiny/swoole-docSwoole要求使用者必须具备一定的Linux/Unix环境编程基础,学习Swoole需要...转载 2018-04-25 22:08:07 · 764 阅读 · 0 评论 -
阿里云https认证
1.登录阿里云服务器,在控制台上选择 安全(云盾)---CA证书服务(数据安全)2.点击购买证书--(阿里把免费的隐藏起来了,这显得很不厚道)默认都是付费的,如果要免费的需要先选择 品牌 Symantec,然后选择证书类型 增强型OV SSL这时候你就会发现免费的跑出来了,我也是一个一个点发现的。这个设置还是有点贱的3.购买后接下来就是填写认证资料包括域名解析,将系统显示的CNAME解析值,解析到...原创 2018-04-26 23:15:47 · 778 阅读 · 0 评论 -
阿里云实例配置
阿里云服务器实例设置1.购买或领取免费的阿里云,购买时都会选择系统和配置,当前个人可以领取1个月免费的阿里云服务器2.在控制台的云服务器选实例,找到自己购买区(华南1)下面的实例,重置密码,这个密码就是用来给putty等ssh工具进行访问服务器、搭建环境用的。3.使用putty等工具通过IP地址进行搭建环境操作,搭建教程请 看lnmp一键安装(也包含有apache)https://blog.csd...原创 2018-04-24 20:35:20 · 5028 阅读 · 1 评论 -
腾讯云https认证
1.准备好域名2.登录腾讯云,在腾讯云找到ssL证书管理2.申请一个证书选择1年免费版的3.填写域名资料:1、通用名称就是你的域名2、申请邮箱填写你的常用邮箱3、证书备注名:填写一个易记的就行4、私钥密码:可不填写6、所属项目:默认项目即可4.域名资料填写完成后,进入下一步,选择手动DNS验证。将系统显示的CNAME解析值,解析到域名上。代解析完成后,点击自助诊断按钮,等待系统验证。比如,域名是在...原创 2018-04-18 22:14:41 · 5530 阅读 · 3 评论 -
高并发下接口幂等性技术方案
一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果;2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;3. 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;4. 创建业务订单,一次业务请求只能创建一个,创...原创 2019-09-21 14:08:23 · 890 阅读 · 0 评论 -
Windows系统下安装Thrift的方法
安装下载下载地址:http://archive.apache.org/dist/thrift/0.13.0/将thrift-0.13.0.exe放到一个文件下,如F:\thrift下,将其重命名为thrift.exe。如果不重命名,需要使用thrift-0.13.0调用thrift命令。配置环境变量向Path中添加变量值,值为thrift.exe的地址,如G:...原创 2020-04-05 02:39:09 · 1030 阅读 · 0 评论 -
Thrift的服务器和客户端Python案例
服务器Thrift提供的常见服务端类型有一下几种:thrift.server.TServer.TSimpleServer单线程服务器 thrift.server.TServer.TThreadedServer多线程服务器 thrift.server.TServer.TThreadPoolServer线程池服务器 thrift.server.TServer.TForkingSer...原创 2020-04-04 00:47:17 · 965 阅读 · 1 评论 -
Thrift协议与传输选择
1 协议Thrift 可以让用户选择客户端与服务端之间传输通信的消息协议类别,如我们前面所讲总体划分为文本 (text) 和二进制 (binary) ,为节约带宽,提高传输效率,一般情况下使用二进制类型的为多数,有时还会使用基于文本类型的协议,这需要根据项目 / 产品中的实际需求。常用协议有以下几种: thrift.protocol.TBinaryProtocol 二进制编码格式进行...原创 2020-04-04 00:43:45 · 1330 阅读 · 0 评论 -
Thrift的接口定义语言IDL
Thrift的IDL可以使用下面的语法来定义描述接口。1 基本类型bool:布尔值,true 或 false byte:8 位有符号整数 i16:16 位有符号整数 i32:32 位有符号整数 i64:64 位有符号整数 double:64 位浮点数 string:字符串 binary:二进制数据2 容器类型可以包含多个数据(元素)的类型。 list<typ...原创 2020-04-02 22:46:32 · 1640 阅读 · 1 评论 -
CentOS7:Thrift的安装
使用Thrift需要进行安装,主要安装两个工具:接口定义文件(.thrift)的编译器 不同语言的公共基础库程序1 安装依赖工具和库sudo apt-get install automake bison flex g++ git libboost-all-dev libevent-dev \libssl-dev libtool make pkg-config2 安装Thrif...原创 2020-04-01 23:50:12 · 1003 阅读 · 0 评论 -
Thrift架构与使用方法
如果现在要实现一个除法divide的RPC接口服务:float divide(1:int num1, 2:int num2=1) => InvalidOperation如何使用Thrift来进行实现呢?Thrift的基础库程序中已经提供了用于RPC通讯的底层基本消息协议和传输工具,也就是调用双方如何传输str、int、float等不同基本类型的数据无需我们自己再实现了。但...原创 2020-03-31 00:25:57 · 1199 阅读 · 0 评论 -
如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)
上篇文章说到接口安全的设计思路,如果没有看到上篇博客,建议看完再来看这个。通过园友们的讨论,以及我自己查了些资料,然后对接口安全做一个相对完善的总结,承诺给大家写个demo,今天一并放出。对于安全也是相对的,下面我来根据安全级别分析1.完全开放的接口有没有这样的接口,谁都可以调用,谁都可以访问,不受时间空间限制,只要能连上互联网就能调用,毫无安全可言。实话说,这样的接口我...转载 2020-04-22 23:07:49 · 1415 阅读 · 0 评论 -
接口的幂等性原则
接口调用存在的问题现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能在服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这样请求有多次,那么处理数据的结果是否要统一呢?那是肯定的!尤其在支付场景。...原创 2019-10-27 23:32:38 · 1992 阅读 · 0 评论 -
RPC通信原理
什么是 RPCRPC(Remote Procedure Call Protocol)远程过程调用协议。通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算上的某个过程或函数,就像调用本地应用程序中的一样。正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。一句话总结:RPC:remote procedure call Protocol ...原创 2019-10-27 22:08:22 · 744 阅读 · 0 评论 -
RESTful API 最佳实践
RESTful是目前最流行的 API 设计规范,用于 Web 数据接口的设计。它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。一、URL 设计1.1 动词 + 宾语RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。比如,GET /articles这个命令,GET是动词,/art...原创 2019-10-27 22:23:17 · 532 阅读 · 0 评论