zoukankan      html  css  js  c++  java
  • [分享会] 微服务框架设计 (基于Swoole)

    框架三要素
    1. Service 通信
    2. 服务管理
    3. 开发组件
     
    为什么需要服务
    1.自治性
    2.可组合
    3.异构性
    2.弹性扩展
     
    -实现方式-
     
    共享库
    1.二进制文件/Composer包
    2.优点:实现简单、使用方便
    3.缺点:隔离性差、部署升级麻烦
     
    REST
    1.解决了隔离性和部署问题
    2.优点:简单通用
    3.缺点:HTTP 不支持主动推送、TCP开销多、长连接相关支持差
     
    -服务设计-
     
    TCP Server/Client
    1.服务名+接口名+参数+环境信息
    2.服务提供方(接收 socket 消息,执行方法,发送数据)
    3.服务调用方(连接服务,指定格式向服务发网络请求,接收数据)
     
    数据封包、解包由 Swoole 根据配置在底层解析,应用获取完整数据。
     
    -服务治理-
     
    数据中心
    1.Consul agent 集群
    2.支持 DNS 和 HTTP API 动态配置管理
     
    服务发现/负载均衡/心跳检测
    1.服务启动时(onStart)注册到 Consul
    2.服务停止时(onShutdown)从 consul 清除
    3.数据中心收到配置变更推送到调用方
    4.客户端实现轮询负载均衡机制
    5.心跳检测进程检测服务状态,动态上下线
     
    进程调度
    1.Supervisor 自启动 Service 进程
    2.断电重启
     
    开发组件
    swlib/swpod                       Swoole协程PDO组件
    symfony/console                可编程命令行组件
    symfony/routing                 路由组件
    symfony/dotenv                  配置解析组件
    symfony/event-dispatcher  事件调度组件
     
    其余
    服务监控统计
     

  • 相关阅读:
    JavaScript——面向对象的程序设计——创建对象与继承
    JavaScript 引用类型
    JavaScript 变量、作用域和内存问题
    JavaScript基本概念——操作符
    JavaScript基本概念
    在HTML中使用JavaScript
    JavaScript简介
    记录前端遇到的坑
    第八次作业
    电脑上下载b站视频到本地
  • 原文地址:https://www.cnblogs.com/farwish/p/11047421.html
Copyright © 2011-2022 走看看