CN112769828B - 一种基于sanic异步微服务方法 - Google Patents

一种基于sanic异步微服务方法 Download PDF

Info

Publication number
CN112769828B
CN112769828B CN202110028969.XA CN202110028969A CN112769828B CN 112769828 B CN112769828 B CN 112769828B CN 202110028969 A CN202110028969 A CN 202110028969A CN 112769828 B CN112769828 B CN 112769828B
Authority
CN
China
Prior art keywords
service
request
sanic
center
authentication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110028969.XA
Other languages
English (en)
Other versions
CN112769828A (zh
Inventor
廖杰
李林渡
李进彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangxi Hongbao Zhilian Technology Co ltd
Original Assignee
Guangxi Hongbao Zhilian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangxi Hongbao Zhilian Technology Co ltd filed Critical Guangxi Hongbao Zhilian Technology Co ltd
Priority to CN202110028969.XA priority Critical patent/CN112769828B/zh
Publication of CN112769828A publication Critical patent/CN112769828A/zh
Application granted granted Critical
Publication of CN112769828B publication Critical patent/CN112769828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及WEB技术领域,具体为一种基于sanic异步微服务方法,该方法的步骤如下:步骤一、服务注册到注册中心;步骤二、Nginx反向代理器接收请求并把请求转发到认证中心;步骤三、认证中心对请求携带的用户信息进行身份认证,并把多个请求转发给多个服务器处理;步骤四、服务器收到认证中心的请求,执行业务逻辑;步骤五、响应对象,构造HTTP响应报文,返回HTTP响应报文。本发明使服务分开处理业务,和sanic单机逐步运行对比,时间响应缩小了一倍,因此面对多业务请求响应速度会更快,服务可以独立扩展,容易维护;本发明的各个服务通讯采用gRPC技术框架,可有效满足高性能且对响应速度有要求的数据传输过程,提高业务请求响应速度。

Description

一种基于sanic异步微服务方法
技术领域
本发明涉及WEB技术领域,具体为一种基于sanic异步微服务方法。
背景技术
随着Web互联网的快速发展,单体应用越来越来很多业务会耦合在一起,一但某些模块出现Bug会影响整个***正常运行,业务代码的耦合也会形成开发人员的依赖造成新业务难以推进,当用户量越来越大,性能会成为***瓶颈,响应速度变慢,所有代码都放在一起,大量紧耦合的代码导致应用模块间的界限日益模糊,改一处而动全身,有时侯无从下手,拖慢了修复问题和修改变更的速度。鉴于此,我们提出一种基于sanic异步微服务方法。
发明内容
本发明的目的在于提供一种基于sanic异步微服务方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于sanic异步微服务方法,该方法的步骤如下:
步骤一、服务注册到注册中心;
步骤二、Nginx反向代理器接收请求并把请求转发到认证中心;
步骤三、认证中心对请求携带的用户信息进行身份认证,并把多个请求转发给多个服务器处理;
步骤四、服务器收到认证中心的请求,执行业务逻辑;
步骤五、响应对象,构造HTTP响应报文,返回HTTP响应报文。
作为本发明优选的技术方案,步骤一中的注册步骤包括:服务提供者启动时,会到注册中心注册信息,当注册中心获取到服务提供者信息后,就可以通过gRPC调用对应的服务。
作为本发明优选的技术方案,步骤二中的Nginx反向代理器步骤包括:接收用户发送的访问请求,然后将请求转发给内部网络上的服务器。
作为本发明优选的技术方案,步骤三的认证具体操作为:认证中心收到Nginx反向代理器的请求转发,对请求携带的用户信息进行身份验证,身份验证通过,把不同的业务请求转发给不同的服务器,验证失败,直接返回403网络码。
作为本发明优选的技术方案,步骤四的具体操作为:不同的服务器收到认证中心的不同请求,执行业务逻辑,对于重复请求多次的数据用redis进行缓存,提高响应速度,对处理耗时的任务放到任务队列去处理,使用日志中心进行收集日志,有效地掌握服务器的运行状况。
作为本发明优选的技术方案,注册中心实现服务的注册与发现、实现配置的动态变更。
作为本发明优选的技术方案,各个服务通讯采用gRPC技术框架,在一些高性能且对响应速度有要求的数据传输场景非常适用。
作为本发明优选的技术方案,认证中心使用sanic-jwt库对用户进行身份信息验证,避免CSRD攻击,服务器不需要存储Session信息,大大减轻了服务端的压力。
作为本发明优选的技术方案,步骤四中的日志中心使用sanic的logging库进行收集日志,有效地掌握服务器的运行状况;步骤四中的缓存使用aioreids库进行读写,提高性能、响应速度;步骤四中的任务队列使用kafka框架进行生产和消费,高性能、扩展性强,提高响应速度。
作为本发明优选的技术方案,sanic-jwt库是一个开源的web安全认证框架。
与现有技术相比,本发明的有益效果是:
1、本发明使服务分开处理业务,和sanic单机逐步运行对比,时间响应缩小了一倍,因此面对多业务请求响应速度会更快,服务可以独立扩展,容易维护;
2、本发明的各个服务通讯采用gRPC技术框架,可有效满足高性能且对响应速度有要求的数据传输过程,提高业务请求响应速度;
3、本发明使用sanic-jwt库对用户进行身份信息验证,避免CSRD攻击,服务器不需要存储Session信息,大大减轻了服务端的压力;
4、本发明使用sanic的logging库进行收集日志,有效地掌握服务器的运行状况;
5、本发明使用aioreids库进行读写,提高性能、响应速度;
6、本发明使用kafka框架进行生产和消费,高性能、扩展性强,提高响应速度。
附图说明
图1为本发明基于sanic异步微服务方法的主流程图;
图2为本发明基于sanic异步微服务方法的注册中心流程图;
图3为本发明基于sanic异步微服务方法的Nginx反向流程图;
图4为本发明基于sanic异步微服务方法的身份验证流程图;
图5为本发明基于sanic异步微服务方法的gRPC通讯流程图;
图6为本发明基于sanic异步微服务方法的sanic微服务对比图。
具体实施方式
下面将结合本发明实施例对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
实施例
本实施例提供的技术方案:
一种基于sanic异步微服务方法,该方法的步骤如下(如图1所示):
步骤一、服务注册到注册中心;
步骤二、Nginx反向代理器接收请求并把请求转发到认证中心;
步骤三、认证中心对请求携带的用户信息进行身份认证,并把多个请求转发给多个服务器处理;
步骤四、服务器收到认证中心的请求,执行业务逻辑;
步骤五、响应对象,构造HTTP响应报文,返回HTTP响应报文。
作为本实施例优选的技术方案,如图2所示,步骤一中的注册步骤包括:服务提供者启动时,会到注册中心注册信息,当注册中心获取到服务提供者信息后,就可以通过gRPC调用对应的服务。
作为本实施例优选的技术方案,如图3所示,步骤二中的Nginx反向代理器步骤包括:接收用户发送的访问请求,然后将请求转发给内部网络上的服务器。
作为本实施例优选的技术方案,如图4所示,步骤三的认证具体操作为:认证中心收到Nginx反向代理器的请求转发,对请求携带的用户信息进行身份验证,身份验证通过,把不同的业务请求转发给不同的服务器,验证失败,直接返回403网络码。
作为本实施例优选的技术方案,如图5所示,步骤四的具体操作为:不同的服务器收到认证中心的不同请求,执行业务逻辑,对于重复请求多次的数据用redis进行缓存,提高响应速度,对处理耗时的任务放到任务队列去处理,使用日志中心进行收集日志,有效地掌握服务器的运行状况。
作为本实施例优选的技术方案,注册中心实现服务的注册与发现、实现配置的动态变更。
作为本实施例优选的技术方案,各个服务通讯采用gRPC技术框架,在一些高性能且对响应速度有要求的数据传输场景非常适用。
作为本实施例优选的技术方案,认证中心使用sanic-jwt库对用户进行身份信息验证,避免CSRD攻击,服务器不需要存储Session信息,大大减轻了服务端的压力。
作为本实施例优选的技术方案,步骤四中的日志中心使用sanic的logging库进行收集日志,有效地掌握服务器的运行状况;步骤四中的缓存使用aioreids库进行读写,提高性能、响应速度;步骤四中的任务队列使用kafka框架进行生产和消费,高性能、扩展性强,提高响应速度。
作为本实施例优选的技术方案,anic-jwt库是一个开源的web安全认证框架。
本发明的基于sanic异步微服务方法的实施环境为:***:windows10***、CPU:I7-8700、内存:24g,进程:1个进程,线程:50000个线程同时请求。
对比例
一种基于Sanic单体应用方法,该方法的步骤如下:
步骤一、服务注册到注册中心;
步骤二、Nginx反向代理器接收请求并把请求转发到认证中心;
步骤三、认证中心对请求携带的用户信息进行身份认证,并把请求转发给单个服务器处理;
步骤四、服务器收到认证中心的请求,执行业务逻辑;
步骤五、响应对象,构造HTTP响应报文,返回HTTP响应报文。
实施例和对比例之间的区别在于:请求任务个数和处理服务器的个数不同,其余均相同。
将本发明提供的基于sanic异步微服务方法和传统的基于Sanic单体应用方法进行实验对比,如图6所示,得到如下数据:
Figure BDA0002891312980000061
通过上述表格的数据可知,通过本发明提供的基于sanic异步微服务方法速度有较大提升。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (8)

1.一种基于sanic异步微服务方法,其特征在于:该方法的步骤如下:
步骤一、服务注册到注册中心;
步骤二、Nginx反向代理器接收请求并把请求转发到认证中心;
步骤三、认证中心对请求携带的用户信息进行身份认证,并把多个请求转发给多个服务器处理;
步骤四、服务器收到认证中心的请求,执行业务逻辑;
步骤五、响应对象,构造HTTP响应报文,返回HTTP响应报文;
步骤四的具体操作为:不同的服务器收到认证中心的不同请求,执行业务逻辑,对于重复请求多次的数据用redis进行缓存,提高响应速度,对处理耗时的任务放到任务队列去处理,使用日志中心进行收集日志,有效地掌握服务器的运行状况;
步骤四中的日志中心使用sanic的logging库进行收集日志,有效地掌握服务器的运行状况;步骤四中的缓存使用aioreids库进行读写,提高性能、响应速度;步骤四中的任务队列使用kafka框架进行生产和消费,高性能、扩展性强,提高响应速度。
2.根据权利要求1所描述的基于sanic异步微服务方法,其特征在于:步骤一中的注册步骤包括:服务提供者启动时,会到注册中心注册信息,当注册中心获取到服务提供者信息后,就可以通过gRPC调用对应的服务。
3.根据权利要求1所描述的基于sanic异步微服务方法,其特征在于:步骤二中的Nginx反向代理器步骤包括:接收用户发送的访问请求,然后将请求转发给内部网络上的服务器。
4.根据权利要求1所描述的基于sanic异步微服务方法,其特征在于:步骤三的认证具体操作为:认证中心收到Nginx反向代理器的请求转发,对请求携带的用户信息进行身份验证,身份验证通过,把不同的业务请求转发给不同的服务器,验证失败,直接返回403网络码。
5.根据权利要求1所描述的基于sanic异步微服务方法,其特征在于:注册中心实现服务的注册与发现、实现配置的动态变更。
6.根据权利要求1所描述的基于sanic异步微服务方法,其特征在于:各个服务通讯采用gRPC技术框架,在一些高性能且对响应速度有要求的数据传输场景非常适用。
7.根据权利要求1所描述的基于sanic异步微服务方法,其特征在于:认证中心使用sanic-jwt库对用户进行身份信息验证,避免CSRD攻击,服务器不需要存储Session信息,大大减轻了服务端的压力。
8.根据权利要求7所描述的基于sanic异步微服务方法,其特征在于:sanic-jwt库是一个开源的web安全认证框架。
CN202110028969.XA 2021-01-11 2021-01-11 一种基于sanic异步微服务方法 Active CN112769828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110028969.XA CN112769828B (zh) 2021-01-11 2021-01-11 一种基于sanic异步微服务方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110028969.XA CN112769828B (zh) 2021-01-11 2021-01-11 一种基于sanic异步微服务方法

Publications (2)

Publication Number Publication Date
CN112769828A CN112769828A (zh) 2021-05-07
CN112769828B true CN112769828B (zh) 2022-12-02

Family

ID=75701229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110028969.XA Active CN112769828B (zh) 2021-01-11 2021-01-11 一种基于sanic异步微服务方法

Country Status (1)

Country Link
CN (1) CN112769828B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108306877A (zh) * 2018-01-30 2018-07-20 泰康保险集团股份有限公司 基于node js的用户身份信息的验证方法、装置和存储介质
CN110149397A (zh) * 2019-05-20 2019-08-20 湖北亿咖通科技有限公司 一种微服务整合方法和装置
CN111130892A (zh) * 2019-12-27 2020-05-08 上海浦东发展银行股份有限公司 一种企业级微服务的管理***及方法
CN112187934A (zh) * 2020-09-30 2021-01-05 浪潮云信息技术股份公司 一种微服务搭建方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634738A (zh) * 2018-10-19 2019-04-16 深圳平安财富宝投资咨询有限公司 基于微服务的异步处理方法、服务器、存储介质及装置
CN110086822B (zh) * 2019-05-07 2021-07-27 北京智芯微电子科技有限公司 面向微服务架构的统一身份认证策略的实现方法及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108306877A (zh) * 2018-01-30 2018-07-20 泰康保险集团股份有限公司 基于node js的用户身份信息的验证方法、装置和存储介质
CN110149397A (zh) * 2019-05-20 2019-08-20 湖北亿咖通科技有限公司 一种微服务整合方法和装置
CN111130892A (zh) * 2019-12-27 2020-05-08 上海浦东发展银行股份有限公司 一种企业级微服务的管理***及方法
CN112187934A (zh) * 2020-09-30 2021-01-05 浪潮云信息技术股份公司 一种微服务搭建方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Sanic的微服务基础架构;Python中文社区;《https://cloud.tencent.com/developer/article/1073374》;20180326;全文 *
基于sanic的微服务框架-架构分析;非梦nj;《https://www.jianshu.com/p/c3e34228f4fa》;20190119;第1-10页 *

Also Published As

Publication number Publication date
CN112769828A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
US11121936B2 (en) Rendezvous optimization in a content delivery framework
US10791050B2 (en) Geographic location determination in a content delivery framework
US10701148B2 (en) Content delivery framework having storage services
US9239868B2 (en) Virtual session management and reestablishment
US10701149B2 (en) Content delivery framework having origin services
US10652087B2 (en) Content delivery framework having fill services
US10397051B1 (en) Configuration and testing of network-based service platform resources using a service platform specific language
CN105681426B (zh) 异构***
CN109246182B (zh) 一种分布式锁管理器及其实现方法
WO2014206129A1 (zh) 一种执行数据库操作命令的计算设备和方法
CN110138867A (zh) 文件传输和接收方法、计算机设备及存储介质
CN102025783A (zh) 集群***及其消息处理方法和协议转发网关
Bhowmik et al. Distributed control plane for software-defined networks: A case study using event-based middleware
CN113065957B (zh) 一种期货交易***
CN114371935A (zh) 网关处理方法、网关、设备及介质
CN112769828B (zh) 一种基于sanic异步微服务方法
CN110019043B (zh) 一种区块链数据存储方法
CN115186210A (zh) 一种基于多粒度的Web 3D渲染和加载优化方法
Wang et al. Distributed point-to-point routing method for tasks in cloud control systems
US9762661B1 (en) Managing networks in a virtualization system
CN116800838A (zh) 一种涉及跨域的请求处理方法与***
Zhi et al. Data management solutions based on the data distribution service communication model
CN116414582A (zh) 一种数据传输方法、***、设备以及存储介质
CN114900862A (zh) 一种5g网络下的报文分流方法、网络设备及存储介质
US7437735B2 (en) Hierarchical event filtering for storage server

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220608

Address after: 530012 No. 0509-2, floor 5, building 1, business center, Nanning Comprehensive Bonded Zone, No. 20, Jinhai Road, China (Guangxi) pilot Free Trade Zone, Nanning, Guangxi Zhuang Autonomous Region

Applicant after: Guangxi Hongbao Zhilian Technology Co.,Ltd.

Address before: 518000 808a, 8th floor, Cuilin building, No.10, Kaifeng Road, Maling community, Meilin street, Futian District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN HONGBAO WISDOM FOOD AND DRINK TECHNOLOGY CO.,LTD.

GR01 Patent grant
GR01 Patent grant