ServiceComb微服务框架

文章目录

  • 一、ServiceComb的概述
  • 二、服务中心CSE的介绍
  • 三、Restful方式开发
  • 四、RPC方式开发
  • 五、ServiceComb服务治理方案
    • ①负载均衡
    • ②限流策略
    • ③熔断

一、ServiceComb的概述

ServiceComb作为Apache开源组织下的一款微服务框架,其前身为华为云的微服务引擎CSE(Cloud Service Engine) 云服务。

解决方案级,多语言、多通信协议、标准服务契约、事务最终一致性开源开放,拥抱SpringBootSpringCloudServiceMesh 等主流生态,低门槛准入,业务侵入度低,架构松耦合。

ServiceComb的优势:国内政府部门有的会选择华为云,使用ServiceComb开发可以快速优雅的部署到华为云的的pass平台上。至于ServiceComb支持RPC调用,REST难道不香吗?CSE注册中心中的服务契约提供的类似swagger和接口测试功能,倒是挺好用的。

缺点:由于ServiceComb的特性,遇到bug的可能百度很难解决。在SpringCloud F版后,SpringCloud的功能更强大了,普及度方面SpingCloud也更多人使用。

二、服务中心CSE的介绍

ServiceComb微服务框架_第1张图片
CSE的架构和Eureka很像,经过使用后,可以发现CSE的自我保护机制比Eureka还要严重。

下载安装CSE的安装包:apache-servicecomb-service-center-1.3.0-windows-amd64.tar.gz,解压文件目录如下:
ServiceComb微服务框架_第2张图片

三、Restful方式开发

完整代码参考:https://github.com/hucheng1997/servicecomb

①添加依赖

父工程依赖:(这里选择1.x版本的springboot,2.x版本会遇到意料之外的错误!)

<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>1.5.12.RELEASEversion>
    <relativePath/>
parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.servicecombgroupId>
            <artifactId>java-chassis-dependenciesartifactId>
            <version>1.3.0version>
            <type>pomtype>
            <scope>importscope>
        dependency>
    dependencies>
dependencyManagement>

providerconsumer工程的依赖如下:


<dependency>
    <groupId>org.hibernategroupId>
    <artifactId>hibernate-validatorartifactId>
dependency>
<dependency>
    <groupId>org.apache.servicecombgroupId>
    <artifactId>spring-boot-starter-providerartifactId>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starterartifactId>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
dependency>

②添加配置文件
这里配置文件只能为microservice.yaml,这是ServiceComb的硬性规定:

APPLICATION_ID: hucheng #一般填公司的名称
service_description:
  name: servicecomb-provider #微服务名
  version: 0.0.1 #版本
  environment: development #环境
  properties:
    allowCrossApp: false #不允许跨App访问服务
  rest:
    address: 0.0.0.0:81 #服务端口
  service:
    registry:
      address: http://127.0.0.1:30100 #注册中心的位置

③主启动上添加注解@EnableServiceComb

④Provider代码及说明
ServiceComb微服务框架_第3张图片
⑤Consumer调用代码
使用RestTemplate远程调用服务
ServiceComb微服务框架_第4张图片
⑥测试
使用注册中心中的服务契约进行测试
ServiceComb微服务框架_第5张图片

四、RPC方式开发

@RestSchema注解换成@RpcSchema即可

五、ServiceComb服务治理方案

①负载均衡

使用了ServiceComb框架的微服务即自带了负载均衡功能,无需任何配置。

②限流策略

添加依赖:

<dependency>
      <groupId>org.apache.servicecombgroupId>
      <artifactId>handler-flowcontrol-qpsartifactId>
  dependency>

添加配置:

servicecomb:
  flowcontrol:
    Provider:
      qps:
        limit:
          gateway: 100 #限流每秒QPS次数的限制

③熔断

添加依赖:

<dependency>
    <groupId>org.apache.servicecombgroupId>
    <artifactId>handler-bizkeeperartifactId>
dependency>

添加配置:

servicecomb:
   circuitBreaker: 
   	provider: 
   	shicifang-qa:
requestVolumeThreshold: 1
  fallbackpolicy:
    provider:
      policy: returnnull #容错策略

你可能感兴趣的:(JavaEE)