SpringCloud初体验:五、Sidecar 将 PHP 这类非 Java 生态语言的服务接入 Spring Cloud

2021-07-04 08:03

阅读:413

标签:.com   response   pac   localhost   aliyun   version   instance   prope   还需   

 先起一个 Sidecar 服务,一个PHP服务一个应用,和PHP服务部署在同一台机子,通过 localhost 访问,这样就解决了网络开销,相当于本地进程间调用

Sidecar 服务比较简单,

1、这里记录下 maven 的配置

技术分享图片技术分享图片
xml version="1.0" encoding="UTF-8"?>
project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    modelVersion>4.0.0modelVersion>

    groupId>cn.taxionggroupId>
    artifactId>tx_php_server_side_carartifactId>
    version>0.0.1-SNAPSHOTversion>
    packaging>jarpackaging>

    name>tx_php_server_side_carname>
    description>Demo project for Spring Bootdescription>

    parent>
        groupId>org.springframework.bootgroupId>
        artifactId>spring-boot-starter-parentartifactId>
        version>2.0.4.RELEASEversion>
        relativePath/> 
    parent>

    properties>
        project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        java.version>1.8java.version>
    properties>

    
    repositories>
        repository>
            id>aliRepositoryid>
            name>aliRepositoryname>
            url>http://maven.aliyun.com/nexus/content/groups/public/url>
            snapshots>
                enabled>falseenabled>
            snapshots>
        repository>
    repositories>

    
    dependencyManagement>
        dependencies>
            dependency>
                groupId>org.springframework.cloudgroupId>
                artifactId>spring-cloud-dependenciesartifactId>
                version>Finchley.RELEASEversion>
                type>pomtype>
                scope>importscope>
            dependency>
        dependencies>
    dependencyManagement>

    dependencies>
        dependency>
            groupId>org.springframework.bootgroupId>
            artifactId>spring-boot-starterartifactId>
        dependency>

        dependency>
            groupId>org.springframework.bootgroupId>
            artifactId>spring-boot-starter-testartifactId>
            scope>testscope>
        dependency>
        dependency>
            groupId>org.springframework.cloudgroupId>
            artifactId>spring-cloud-netflix-sidecarartifactId>
        dependency>

        dependency>
            groupId>org.springframework.cloudgroupId>
            artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
        dependency>
    dependencies>

    build>
        plugins>
            plugin>
                groupId>org.springframework.bootgroupId>
                artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>


project>
View Code

 

2、sidecar 相关的配置,及注册中心的配置

spring:
  application:
    name: tx-php-server-sidecar

#服务注册中心端口号
server:
  port: 8203

#服务注册中心实例的主机名、端口
#是否向服务注册中心注册自己
#是否检索服务
#服务注册中心的配置内容,指定服务注册中心的位置
eureka:
  port: 8200
  instance:
    hostname: localhost
  client:
    register-with-eureka: true
    fetch-registry: true
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${eureka.port}/eureka/

sidecar:
  port: 1215
  instance:
    hostname: localhost
  health-uri: http://${sidecar.instance.hostname}:${sidecar.port}/health

 

3、服务启动类 @EnableSidecar

 

 4、还需要在PHP服务一个检查服务的接口或文件, 注意响应头类型 Content-Type

 以 laravel 框架为例子,配置后的地址是 http://127.0.0.1:1215/health

Route::get(‘health‘, function () {
    $content = ‘{ "status" : "UP" }‘;
    $status = 200;
    $value = ‘application/json; charset=utf-8‘;
    return response($content, $status)
        ->header(‘Content-Type‘, $value);
});

 

技术分享图片

 

 

 

这是通过 Eureka 中心页面,看见 Sidecar 已经注册上去,注意如果 PHP 的 health 页面的响应内容或者响应头不对的话, Sidecar 服务的 UP 状态会显示 DOWN

 

技术分享图片

 

  这里是 PHP 服务的默认页面

 技术分享图片

 

 

  这里是通过 Spring Cloud gateway 转发后的 PHP 服务页面

 技术分享图片

 

SpringCloud初体验:五、Sidecar 将 PHP 这类非 Java 生态语言的服务接入 Spring Cloud

标签:.com   response   pac   localhost   aliyun   version   instance   prope   还需   

原文地址:https://www.cnblogs.com/liugx/p/9614141.html

上一篇:C# 集合

下一篇:C++双线性插值-片段


评论


亲,登录后才可以留言!