1 Sidecar
1.1 简介
Sidecar 简介是为了解决非jvm,注册 到 Eureka上面的问题。本次试验采用的 是 PHP微服务。1.2 原理
1 java访问java:
java访问 java,是通过InstanceInfo instance = discoveryClient.getNextServerFromEureka(“ORDER-SERVICE”, false),从 注册中心直接找到对应的服务,直接访问。得到url服务:http://10.4.13.140:8003
2 java访问 php:
java访问 java,是通过InstanceInfo instance = discoveryClient.getNextServerFromEureka(“PRODUCT-SIDECAR”, false),从 注册中心直接找到对应的服务,直接访问。得到url服务:http://10.4.13.140:8500,这里注意拿到的是php微服务的端口,不是sidecar的端口2001。
3 php访问 java
浏览器中 http://10.4.13.140:2001/user-service/user/index ,(或者$ curl http://10.4.13.140:2001/user-service/user/index -H ‘Host: localhost’ )这里特别注意user-service必须全部小写,user-service是serviceId,否则会报错。同时serviceId不能是自己 ,比如http://10.4.13.140:2001/product-sidecar/index.php。访问自己也会报错。
这里其实 是把请求发给了 sidecar,sidecar根据serviceId去注册中心 找 服务,然后发起代理请求。
2 新建 PHP微服务productservice
1 新建立一个productservice2 新建health.json文件
{
"status":"UP"
}
3 新 建立 一个index.php
<?php
echo "php:product service!";
?>
4 配置nginx,让其8500端口执行这个productservice目录。
3 Eureka与java的微服务系统
请参考:https://blog.csdn.net/CleverCode/article/details/836222604 新建 Sidecar
1 配置pom.xml<?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.0</modelVersion>
<groupId>com.clevercode.biz</groupId>
<artifactId>productsidecar</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar