智慧农业(微服务)

智慧农业——微服务

微服务云应用平台是面向调控云业务的一站式PaaS平台服务,提供微服务框架,兼容主流开源生态,不绑定特定开发框架和平台,帮助开发人员快速构建。基于微服务架构的分布式应用;提供应用云上托管解决方案,帮助用户简化部署、监控、运维和治理等应用生命周期管理问题。

微服务框架()是企业级微服务应用管理平台,包含服务注册、配置和治理中心,帮助用户实现微服应用的快速构建、实时监控和高可用保障。兼容主流开源生态,不绑定特定开发框架和平台,支持已有应用业务代码零修改接入。

微服务---SaaS服务架构图

微服务---SaaS服务构图-调度

  1. 微服务开发框架

支持Spring cloud 、Dubbo、grpc、thrift等微服务RPC框架:提供微服务的注册、发现、通信路由、重试等基础能力。

  1. 微服务治理中心
  2. 负载均衡提供微服务的负载均衡、限流、降级、容错、熔断、灰度发布、回滚等服务治理中心。当出现访问量较大,单个服务实例无法负载的情况下,选择合适的负载均衡策略保证负载在多个实例中能够均衡分布。负载均衡策略包含随机、轮询、响应时间权重、一致性哈希(超过会话保持时间或失败次数阈值时,不再访问该实例)。

负载机制:采用Nginx.

  1. 服务限流

限流解决微服务实例之间的流量分配问题,当当前服务实例的QPS超过给定阈值时,该服务实例不再接受新的请求。

  1. 服务降级 降级是容错的特殊形式,通过限制非该心服务的可用性,来保证核心业务的正常运行。服务降级包括:手动降级(即刻降级)和容错降级(当服务请求发生 错误时进行降级)。服务降级后,消费方对该服务的调用知己返Null或抛出异常。
  2. 服务容错 当服务请求发生错误时,根据预设的容错策略进行应对。容错策略包含Failover (在不同服务实例上重新尝试建立连接)、Failfast (不同一个服务实例上重新尝试建立连接)。
  3. 服务熔断 当目标服务响应缓慢或大量超时发生时,熔断该服务的调用,对于后续调用请求,不再调用目标服务,直接返回,防止雪崩效应,等到目标服务好转再恢复调用。熔断包含手动熔断和自动熔断两种方式。自动熔断在请求失败率和窗口请求数超过给定阈值时自动触发,需设置熔断时间窗口参数。
  4. 灰度发布

按照权重方式设置灰度规则,通过配置每个服务实例的引流权重,请求按照配置的白粉比率流向对应的服务实例。支持使用服务分组、服务厂商、服务站点 定义微服务的灰度发布规则。

微服务安全管控

提供基于AK/SK的认证鉴权、黑白名单等能力保障服务访问安全。

统一配置中心支持微服务配置项的发布、更改和通知。

(5)微服务监控

支持微服务实例和接口级的实时QPS、响应时间、出错率等监控统计。

(6)调用链跟踪

实时分析系统内每一服务调用链的情况,精准发现系统的瓶颈和隐患。调用链详情包括应用名、 IP、调用类型()、被调用服务、状态、响应时间、网络流量、支持按应用名、时间范围、调用类型、响应 阈值等条件进行查询。

API网关

API网光()提供高性能、高可用的API托管服务、辅助将能力、服务、数据以API的形式开放给调控云及其他业务系统,提供API定义、测试、发布、下线等全生命周期管理。

支持API创建、测试、发布、下线等生命周期管理功能以及API分组、版本管理、快速回滚等维护功能。

(2)权限控制

用户以APP作为请求API的身份,网关支持对APP的权限控制。API提供者主动授权某个APP调用某个API的权限,只有已经获得授权的APP才能请求相应的API.

  1. 安全防护

支持多种身份认证方式,建议采用HMAC算法签名。支持HTTPS协议,支持SSL加密。

(4)请求检验

支持参数类型、参数值(范围、枚举、正则、Json Schema)校验,无效校验直接会被API网关拒绝。

(6)SDK

至少支持JAVA/C++两种语言的接口,统一配置中心着眼于把业务开发者从复杂以及繁琐的配置中解脱出来,只需专注于业务代码本身,从而能够显著提升开发运维效率。同时将配置和发布包解藕,也进一步提升发布的成功率,并为运维的力度管控、应急处理等提供强有力的支持。

统一配置中心是一款在分布式架构环境中对应用配置进行集中管理和推送的工具类产品,具有完善的配置管理流程、配置实时推送、多版本控制,更提供配置细粒度的管理如灰度管理、任意版本管理和推送的工具类产品,具有完善的配置管理流程、配置实时推送,多版本控制,更提供配置细粒度的管理如灰度管理、任意版本重置等丰富功能。基于该产品,可以在微服务、DevOps、大数据等场景下极大地减轻配置管理的工作量,增强配置管理的服务能力。

支持多种配置文件,包括:Linux Environment/ Tomcat/Nginx / Spring CloudConfig / Dubbo/ Logback 等

统一配置中心架构图

  1. Config Service

提供配置获取接口

提供配置更新推送接口(基于HTTP long polling)

服务端使用Spring DeferredResult 实现异步化,从而大大增加长连接数量。

目前使用的tomcat embed默认配置是最多10000个连接(可以调整),使用了4C8G的虚拟及实测可以支撑10000个链接,所以满足需求(一个应用实例 只会发起一长连接)。

C/接口服务对象为配置中心客户端。

  1. Admin Service A.提供配置管理接口。B、提供配置修改、发布等接口。C、接口服务对象Portal。
  2. Meta Server
  • portal 通过域名访问Meta Server 获取Admin Service 服务列表(IP+Port)。
  • Client 通过域名访问Mcta Server 获取Config Service 服务列表(IP+Port)。
  • Meta Server 从Eureka获取Config Service和Admin Service 的服务信息,相当于是一个Eureka Client 。

  1. 增设一个Meta Server的角色主要为了封装服务发现的细节,对Portal和Client而言,永远通过一个Http接口获取Admin Service 和 Config Service的服务信息,而不需要关心背后实际的服务注册和发现组件。
  2. Meta Server 只是一个逻辑角色,在部署时和Config Service是在一个JVM进程中的。
  3. Eureka
  4. 基于Eureka和Spring Cloud Netflix提供服务注册和发现。
  5. Config Service 和 Admin Service 会向Eureka注册服务,并保持心跳。
  6. 为了简单起见,目前Eureka在部署时和Config Service 是在一个JVM进程中的(通过Spring Cloud Netflix)
  7. Portal

A/提供Web界面供用户管理配置。

  1. 通过Meta Server获取Admin Service服务列表(IP +port)通过IP+Port访问服务
  2. 在Portal侧做load balance 、错误重试。
  3. Client
  4. 客户端程序,为应用提供配置获取、实时跟新等功能。
  5. 通过Meta Server获取Config Service服务列表(IP+Port),通过IP+Port访问服务。
  6. 在Client侧做load balance、错误重试。
  7. 统一身份证服务

统一身份证(简称IAM)是一个稳定可靠的中式访问控制服务。具有用户身份管理和访问控制的功能,管理用户账号,并且可以控制这些用户账号的云资源操作权限。

(统一身份证服务架构图)

用户管理实现用户的创建,删除、修改和为用户授予相应的权限。

云资源权限包括云资源的创建、删除、修改、设置等操作的权限。权限管理。根据用户职责规划用户组,赋予用户组对应职责的权限。添加用户到用户组,继承用户组的权限。

访问密钥管理。提供AK/SK访问密钥的创建、修改、删除功能,支持AK/SK的鉴权认证机制。

证书 管理。管理用户的SSL证书,方便用户录入、查看及应用SSL证书。账户安全策略管理。Security Administrator用户可设置登录验证策略、密码策略及访问控制列表,提高用户信息和系统的安全性。具备联邦认证功能。具备操作审计功能。

  1. 容器服务

容器服务()整合虚拟化、存储、网络和安全能力,提供高性能可伸缩的容器应用管理能力,支持用Docker容器进行应用生命周期管理,让开发人员专注于容器化的应用的开发与管理。建议采用Kubernetes管理容器应用。

  1. 集群管理包含集群创建、删除、扩容/缩容以及节点监控,具体说明如下:
  2. 创建Kubernetes集群

创建Kubernctes 集群时,需配置集群名称、站点、网络、节点等相关信息。集群创建成功后,可以查看集群基本信息、连接信息、集群日志。

  1. 查看节点列表

通过命令,容器服务管理控制台查看Kubernetes集群的节点列表,节点列表中需包含节点名称、状态、版本、CPU、内存、创建时间、运行时间等信息项。

  1. 节点监控在容器服务管理控制台,以曲线方式展示节点的基本监控信息,包括CPU使用率、网络流入带宽、网络流出带宽、系统磁盘BPS、系统盘IOPS等指标。
  2. 扩容和缩容集群
  3. 通过容器服务管理控制台,根据实际业务需要对Kubernetes集群的Worker

节点进行扩容和缩容

删除集群 通过容器服务管理控制台删除不再使用的集群,释放相应的资源。

  1. 镜像管理
  2. 创建镜像 支持创建镜像、查看镜像列表功能,具体说明如下:

支持从本地仓库上传镜像,以及从代码仓库(GitHub/Bitbucket)中进行自动构建。

  1. 查看镜像

查看镜像种类,例如:常用镜像、Docker 官方镜像、用户镜像等。支持通过 镜像名称的关键字进行搜索。

  1. 应用生命周期管理 应用生命周期管理提供应用云上托管解决方案,为应用提供完整的生命周期管理流程。
  2. 应用管理 应用发布包括创建、部署、启动、停止以及删除应用。支持普通应用、docker应用、K8S 三种应用。普通应用在虚拟机中创建Web容器,然后将应用的WAR包部署到Web容器中。

Docker应用

在Swarm集群中创建Docker 实例,在Docker实例中创建容器,然后将应用WAR包部署到Docker 实例的Web容器中。镜像部署:在本地将Docker、Web容器和应用WAR包制作成Docker镜像,然后上传到镜像Pod中。

应用治理

  • 2)应用管理包括回滚应用、应用扩容/缩容(手动)、弹性伸缩功能根据集群内服务器的CPU、相应时间RT、负载Load三个指标实现自动的扩容和缩容)。
  • 3)应用监视
  • 应用监视反映应用的实时流量情况和历史信息,用户通过该信息监控应用的健康状态,并且可以快速发现、定位问题。应用监视详情包含CPU、内存、网络、磁盘Qps、客户端耗时、服务端耗时、出错率等指标。
  • 4)通知报警
  • 当CPU、内存等资源使用过度时,提醒运维人员及时处理线上问题。报警规则包含规则名称、监控对象(例如:CPU、内存等)、触发条件、统计周期、重试几次后报警。
  • 5)应用日志 提供日志浏览功能,无需登录服务器就可以查看服务器上应用运行日志。当应用出现异常情况的时候,可以通过查看日志来排查问题。
  1. 存储管理
  2. 支持通过Kubernetes的NFS驱动使用NAS文件存储服务,支持分布式Ceph文件存储。
  3. 日志管理

通过容器服务管理控制台查看Kubernetes的集群日志;支持集成调控云日志服务来查看和管理Kubernetes集群的日志。

  1. 资源编排

资源编排服务()帮助用户简化云计算资源管理和自动化运维的服务。

用户遵循ROS定义的模板规范,编写模板文件,在模板中定义所需云计算资源的集合及资源间的依赖关系、资源配置细节等,ROS通过编排引擎自动完成所有资源的创建和配置,以达到自动化部署、运维的目的。

编排模板是一种用户可读、易于编写的文本文件,用户可以通过SVN、Git等版本控制工具来控制模板的版本,以达到控制基础设施版本的目的,用户可以通过API、SDK等方式把ROS的编排能力与自己的应用整合,做到基础设施。

  1. 消息队列

消息队列(……简称MQ)基于高可用分布式集群技术,提供消息发布订阅、消息轨迹查询、定时(延时)消息、资源统计、监控报警等一系列消息云服务,为分布式应用系统提供异步解耦、削峰填谷的能力,同时具备海量消息堆积、高吞吐、可靠重试等海量数据应用所需的特性,支持Push/Pull的消息消费模型,具体如下:

  1. 顺序消息允许消息者按照消息发送的顺序对消息进行消费。
  2. 事务消息保证本地操作、消息发送的事务一致性功能;同时,保证消息被消息端成功处理一次,确保消息端崩溃或网络故障等异常条件下,消息在一段时间后仍继续可见。
  3. 定时消息 允许消息生产者指定消息进行定时(延时)投递,最长支持7天。
  4. 消息优先级 具有更高优先级的队列具有较高的优先权,优先级高的消息具备优先被消费的特权。
  5. 全链路消息轨迹通过消息轨迹,用户能清晰定位消息从发布者发出,经由MQ服务端,投递给消息订阅者的完整链路,方便定位排查问题。
  6. 消息回溯 根据时间重置消费进度,允许用户进行消息回溯或者丢弃堆积消息。
  7. 消息堆积允许亿级消息堆积且不影响性能,具备查询堆积消息的能力。
  8. 多协议、多语音SDK。支持TCP、HTTP、MQTT协议;支持JAVA/C++/JavaScript多种语言API。
  9. Web控制台

支持Topic管理、发布管理、订阅管理、消息查询、消息轨迹、资源报表以及监控报警管理。

(10)Mqadmin命令集 提供一套丰富的管理命令集,以命令方式对MQ服务进行管理。

posted @ 2025-08-15 19:17  weilili_20  阅读(3)  评论(0)    收藏  举报