服务接入paas平台前准备

step 1.

配置注册中心 (在此之前你必须有已经部署好的注册中心集群,Femas不绑定任何注册中心,你可以将任意注册中心托管到Femas平台)

Femas治理服务列表来源用户注册中心的服务数据。

https://user-images.githubusercontent.com/22976760/156726829-ff8380d1-0a28-426a-8cbb-1398a69f9cb4.png

集群地址支持IP:port逗号隔开,或者域名方式

step 2.

创建命名空间

https://user-images.githubusercontent.com/22976760/156727253-834f560f-e147-4217-9203-4b0cbd4e5575.png

命名空间绑定配置的注册中心

femas治理中心的服务列表是以命名空间维度逻辑隔离,服务列表从第三方注册中心拉取,拉取条件是接入FemasSDK且服务标记(下文中通过—D写入的命名空间ID)的命名空间和列表选取的命名空间一致。

完成以上两步之后,接下来就可以通过SDK接入femas将服务纳管到paas平台了。

Springcloud接入

样例

在femas父pom下执行脚本:

mvn -Dmaven.test.skip=true clean install -U

添加依赖

<!-- 注册中心原生依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    <version>${femas.latest.version}</version>
</dependency>
<!-- femas中间件依赖 -->
<dependency>
    <groupId>com.tencent.tsf</groupId>
    <artifactId>femas-springcloud-greenwich-starter</artifactId>
    <version>${femas.latest.version}</version>
</dependency>

目前femas支持starter列表目录:cd femas-starters/

默认支持的版本组件有:

<aside> ✅ springcloud greenwich

</aside>

<aside> ✅ springcloud 2020

</aside>

<aside> ✅ springcloud gateway

</aside>

<aside> ✅ springcloud zuul

</aside>

配置文件

业务应用原生配置文件,路径为:resources/bootstrap.yaml

server:
  port: 18001
spring:
  application:
    name:
      femas-springcloud-consumer
  cloud:
    consul:
      host: 127.0.0.1
      port: 8500
      discovery:
        serviceName: femas-springcloud-consumer
        instanceId: ${spring.application.name}-${server.port}-${spring.cloud.client.hostname}
        heartbeat:
          enabled: true
#    nacos:
#      discovery:
#        server-addr: 127.0.0.1:8848
Femas组件配置文件路径:resources/femas.conf(Ymal格式,用于配置femas相关本地配置,如paas地址、自定义注册中心集群、自定义治理规则等)
# 配置paas后台地址,如果没有配置,则从本地配置文件获取规则
paas_server_address: <http://127.0.0.1:8080>
# 使用Femas提供的方式接入注册中心,dubbo或者自研协议的使用方式
femas_registry_ip: 127.0.0.1  //注册中心集群地址
femas_registry_port: 8500   //注册中心端口号   
femas_registry_type: consul //注册中心类型
#以下配置可选,用于配置加载基础组件类型及本地治理规则,不加则加载femas默认配置。
rateLimit:
 type: femasRateLimit
authenticate:
 type: femasAuthenticate
serviceRouter:
 chain:
   - FemasDefaultRoute
loadbalancer:
 type: random
circuitBreaker:
 enable: true
 chain:
   - femasCircuitBreaker

启动服务命令

# 接入femas必须参数
-Dfemas_namespace_id=命名空间ID  //服务需要指定所属命名空间-Dfemas_prog_version=服务版本   //指定服务所属的版本(部署组),配合sdk侧的实现服务治理,如流量分拨路由# 有监控需求的用户按需添加,非必须
-javaagent:"{skywalking agent绝对路径}/agent/skywalking-agent.jar"  // 引用skywalking的agent探针-Dskywalking.agent.service_name=注册到skywalking上的服务名,需要跟注册中心名称一致,否则tracing链路观测会找不到相应服务。-Dskywalking.collector.backend_service=skywalking 后端地址,可以覆盖agent的conf配置