我在后端使用微服务架构,其中我使用TypeScript创建服务,其他使用Java创建服务。我还有一个Spring网关和一个Eureka服务器(都使用Spring)。
然后,Gateway工作正常,Eureka工作正常,用Java编写的其他微服务也工作正常。问题是当我试图通过网关访问TypeScript微服务时。
我有一个简单的Eureka服务器,在Spring使用注释EnableEurekaServer。
也是连接到Eureka作为客户端的网关,其中yaml具有以下部分:
spring:
application:
name: gateway-service
cloud:
gateway:
discovery:
locator:
enabled: true
lowerCaseServiceId: true
routes:
- id: ms1
uri: lb://ms1
predicates:
- Path=/ms1/**
- id: ms2
uri: lb://ms2
predicates:
- Path=/ms2/**
有了这个网关,我希望有两条路由/ms1
和/ms2
来访问微服务1(用TS编写)或微服务2(用Java编写)。
您可以看到网关
、ms1
和ms2
。但是,为什么Java服务有192.168.8.121
而TS服务没有?
顺便说一句,链接工作正常,每个服务都路由到存在的端口,网关和Java微服务路由到<代码>
MicroService 2非常简单:
@RestController
public class Controller {
@GetMapping("/hello-world")
public ResponseEntity<String> getHi() {
return ResponseEntity.ok("hi");
}
}
也进入application.yml:
spring:
application:
name: ms2
但TS microservice使用eureka js客户端进行以下配置:
this._client = new Eureka({
instance: {
app: 'ms1',
instanceId: 'ms1',
hostName: 'localhost',
ipAddr: '127.0.0.1',
statusPageUrl: `http://localhost:8081`,
healthCheckUrl: `http://localhost:8081/health`,
port: {
'$': 8081,
'@enabled': true,
},
vipAddress: 'myvip',
dataCenterInfo: {
'@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo',
name: 'MyOwn',
},
},
eureka: {
host: 'localhost',
port: 8761,
servicePath: '/eureka/apps/'
},
})
所以,我的想法是:
第二个很好,但是路线http://192.168.8.121:8762/ms1/hello-world返回503错误:
Whitelabel Error Page
This application has no configured error view, so you are seeing this as a fallback.
Mon May 16 19:02:56 CEST 2022
[fa1d8857-5] There was an unexpected error (type=Service Unavailable, status=503).
控制台显示没有可供服务的服务器:ms1。
所以我不知道我是否误解了什么,来自
eureka-js-client
的名称是ms1
。LB是该服务的...但它不起作用。
正如我所说,使用Java服务可以很好地工作,所以问题可能是服务连接到Eureka的方式,谁使用的名称或类似的东西?但在仪表板中,它显示为MS1和MS2,所以我很困惑。。。
提前感谢
解决了我的问题,这是一件奇怪的事情。
我的vipAddress
不正确。似乎Spring Cloud Gateway检查instance.vip地址
而不是instance.app
。
因此,将myvip替换为ms1非常有效。
我们有一个WSO2 ESB代理服务,可以通过它的httpsendpoint访问。我想配置这个服务,使它也可以通过HTTP访问。我检查了carbon management控制台中的服务配置,并确认https和httpendpoint都已启用: 此外,ESB_HOME}/repository/conf/axis2/中的axis2.xml文件似乎配置得很好。 编辑:下面是代理服务配置和netstat结果
我有一个G套件域,并用域范围的授权打开一个服务号。服务号在项目中也有所有者身份。我启用gmail应用编程接口并添加范围参考(https://developers.google.com/admin-sdk/directory/v1/guides/delegation“将域范围的权限委托给您的服务号”)我也启用不太安全的应用程序设置。 这是我的代码: 但是当我使用这个令牌尝试列出电子邮件时:GETht
什么起作用了? 使用Helm(启用RBAC)部署入口控制器 集群IP服务部署 什么不起作用? null K8S入口 注释中最后应用的配置(入口描述输出)显示入口资源清单。但是,我贴在下面作为参考 附加信息 null 任何关于我可能做错了什么的建议或见解将非常感谢。
问题内容: 最初一切正常,我有一个类似的组件。这个 在其他档案中 到这里为止一切正常,但是当我在 它不起作用。我已经从react-redux导入了connect 问题答案: 接受为第四参数。在此选项参数中,您可以将flag设置为true。之后,您可以使用like 来访问ref的函数
问题内容: 我在Mac OS X上使用自制软件设置了jenkins,它 可以通过主机正常工作,或者无法通过主机名/ ipaddress访问jenkins实例: 即使从本地计算机(詹金斯主机本身)也无法访问这两个链接。同时执行命令并正常工作。 问题答案: 事实证明,启动代理配置为仅侦听127.0.0.1(或localhost)。要修复该詹金斯经纪人的plist: 并修改为而不是
我使用此处的说明在 VirtualBox 上创建了一个 3 节点 kubernetes 集群(1 个主 2 个工作线程)。我正在使用法兰绒作为覆盖网络。 我在安装过程中在主服务器上设置了< code > sysctl-w net . bridge . bridge-nf-call-iptables = 1 和< code > sysctl-w net . bridge . bridge-nf-ca