Node.js 确保请求来自docker compose中网络中的另一个容器
有时候简单的任务似乎更复杂。这就是我现在面临的问题 我正在开发一个电子商务API。该应用程序具有基于微服务的体系结构。因此,Node.js 确保请求来自docker compose中网络中的另一个容器,node.js,docker,docker-compose,microservices,Node.js,Docker,Docker Compose,Microservices,有时候简单的任务似乎更复杂。这就是我现在面临的问题 我正在开发一个电子商务API。该应用程序具有基于微服务的体系结构。因此,订单,产品,付款和Auth这些都是不同的微服务。每个都有自己的数据库 这些微服务通过httprestfulapi相互通信。因此,如果用户下了订单,它会与payment microservice进行对话,以获得生成的校验和,从而进行付款。支付微服务与订单对话下单 Order microservice下订单并将详细信息返回给payment。没问题 但下订单后,产品数量必须减少。
订单
,产品
,付款
和Auth
这些都是不同的微服务。每个都有自己的数据库
这些微服务通过httprestfulapi
相互通信。因此,如果用户下了订单,它会与payment microservice进行对话,以获得生成的校验和,从而进行付款。支付微服务与订单
对话下单
Order microservice下订单并将详细信息返回给payment。没问题
但下订单后,产品数量必须减少。我没有任何API来减少产品数量。我不想要一个
因为,一个产品只能由其供应商修改。供应商确实可以更改其产品,但为此他通过了他的jwt
如果我制作一个API来改变产品数量,任何人都可以点击API来减少数量
因此,一种解决方案可以是只能由微服务访问的API
我怎么知道电话是从微服务打来的
我是否应该创建一些散列
,并在与其他微服务交互时传递它
Docker-compose.yml
version: '3'
services:
users:
build: './users'
ports:
- '4001:3000'
volumes:
- './users:/src/'
products:
build: './products'
ports:
- '4002:3000'
volumes:
- './products:/src/'
orders:
build: './orders'
ports:
- '4003:3000'
volumes:
- './orders:/src/'
payments:
build: './payments'
ports:
- '4004:3000'
volumes:
- './payments:/src/'
Dockerfile
#User node js official image as a parent image
FROM node
ADD package.json /tmp/package.json
RUN cd /tmp && npm install
RUN mkdir -p /src && cp -a /tmp/node_modules /src/
COPY . /src
WORKDIR /src
RUN npm install
EXPOSE 3000
CMD npm start
我将从更广阔的角度来看待这个问题 可以使用RBAC(基于角色的访问控制)解决您试图执行的操作,任何具有不同用户类别和访问权限的应用程序都需要RBAC。根据描述,在您的案例中有三类用户