我几天前听说过Docker,想过去.
但事实上,我不知道这个"容器"的目的是什么?
什么是容器?
它可以取代专用于开发的虚拟机吗?
简单来说,在公司中使用Docker的目的是什么?主要优势?
我正在阅读一些文章,以了解更多angular.js的工作原理.
我不理解的一个术语是" 脏检查 ".
究竟是什么?它似乎是一个观察者模式,但显然它更好.
你能帮我理解一下吗?
提前致谢.
我的gradle构建存在问题.我使用Spring网站(https://spring.io/guides/gs/rest-service/)提出的标准,但是当我尝试使用gradle build时,我收到了这个错误:

它不适用于这个gradle,但是当我使用另一个(我在学校时使用的)它完美地工作.
上下文
我有多种服务,如:
我需要连接我的微服务使用OAuth2.0,开始使用标准登录/密码(我使用自己的数据,而不是gettint第三个腿服务器)
问题
根据这些图片:
步骤1

第2步

如何在authmicroservice之外的其他服务中处理access_token控制或授权控制?
我实际上正在阅读有关微服务架构的文章,但似乎他们正在以最简单的方式处理事情,而不是更深入地解释.
为了向您解释我的问题,我将向您展示我的实际小建筑:

所以,这就是我想要使用的.在技术上做任何事之前,我需要更多的理论信息.
我的域名的描述
我有一些基于移动和浏览器的客户,能够在应用程序上连接自己,获取用户信息并能够查询有关他们购买的产品的账单信息.
在单片应用程序中,我将使用这种架构: - 具有Mobile/Angular-Ember的表示层 - 带有NGINX的REST API的业务层 - 带有标准MySQL数据库的DAL - 可扩展性仅适用于X轴
在这种情况下,我想使用微服务架构,因为它是"域可扩展的"并且非常灵活(当然要学习更多关于它的内容).
在架构上,在每个服务中,都有相关API公开的唯一HTTP URL.
问题
a /在(1)flux中,"mobile"在http://myDomain.or/auth上发送http请求.
在我看来,APIGateway能够要求标准的服务注册表(Eureka,ZooKeeper或其他东西)能够找到AuthSrv是否可访问并且可以检索他的网络地址.然后ApiGateway可以请求AuthSrv并响应服务器
这是一个让它运作的好方法吗?处理X机器访问数据时是否存在延迟问题?
b / flux(2)咨询服务注册表.服务注册表如何理解/ auth上的每个请求,甚至在/ auth/other之类的子URL上(如果它被暴露)与此地址ip:port上的此服务相关?
c / flux(3)显示服务注册表具有可用的AuthSrv.(3之二)显示另一个:没有AuthSrv可用.在一个小应用程序中,我们可以承认我们失去了一段时间的可用性,但在一个大型系统中,有数百个服务链接在一起,我们如何处理服务缺陷?
d /在另一篇文章中,我询问如何存储结算信息,因为它与用户,其他服务和另一个数据库相关.
在标准架构中,我会:
{
billingInformations:{...},
billingUser:ObjectId("userId")
}
Run Code Online (Sandbox Code Playgroud)
在微服务架构中,有人建议使用:
{
billingInformations:{...},
billingUser:"/user/12365" // URL corresponding the the user Resource in the other service
}
Run Code Online (Sandbox Code Playgroud)
这是处理"服务数据共享"而不是耦合服务的最佳方式吗?
e /在这种特定情况下,我应该何时更喜欢使用AMQP协议而不是HTTP协议?
谢谢你提前
我实际上正在研究REST Apis安全性,似乎很多人都在使用OAuth2和OpenId协议来管理身份验证.
我尝试使用以下方法实现两个OAuth2服务器:
对于第一个解决方案,运行示例工作正常但我需要做一些无状态(在示例中作者使用会话...)
你能帮我创建最简单的oauth2服务器,或默认向我解释这些库的整个功能吗?
谢谢你提前
我实际上使用node-bunyan通过elasticsearch和logstash管理日志信息,我遇到了问题.
事实上,我的日志文件有一些信息,并在我需要它时填充.
问题是弹性搜索没有找到任何东西
我有一个空对象,因此,我无法将我的日志传递给kibana.
这是我的logstash conf文件:
input {
file {
type => "nextgen-app"
path => [ "F:\NextGen-dev\RestApi\app\logs\*.log" ]
codec => "json"
}
}
output {
elasticsearch {
host => "localhost"
protocol => "http"
}
}
Run Code Online (Sandbox Code Playgroud)
我的js代码:
log = bunyan.createLogger({
name: 'myapp',
streams: [
{
level: 'info',
path: './app/logs/nextgen-info-log.log'
},
{
level: 'error',
path: './app/logs/nextgen-error-log.log'
}
]
})
router.all('*', (req, res, next)=>
log.info(req.url)
log.info(req.method)
next()
)
Run Code Online (Sandbox Code Playgroud)
注意:日志写在日志文件中.问题出在logstash和elasticsearch之间: - /
编辑:查询http:// localhost:9200/logstash-*/给我"{}"一个空的JSON对象感谢提前
我想知道是否可以使用反射,更具体地说是关于装饰器,属性,参数或方法的类反射?
这是否可以使用反射器来获取装饰器中使用的信息?
如果有可能,我们该怎么做?另外,为什么我们不能这样做?
编辑:
我有一个应用程序,我使用装饰器,从serviceRegistry注入数据到名为@Inject的装饰器.
在这个应用程序中,我手动填写一个简单的服务注册表,如:
serviceRegistry.push(MyClass1)
serviceRegistry.push(MyClass2)
...
serviceRegistry.push(MyClass100)
Run Code Online (Sandbox Code Playgroud)
目的是能够在运行时使用@ToInject批注修饰的类填充此服务注册表.
这将允许我避免手动填写此注册表,并简单地自动完成此操作.
提前谢谢
当我多次运行相同的图像(已经在本地拉动)时,我想知道发生了什么?
它每次都运行dockerfile吗?(表示docker文件中的每个命令)
是否重新运行(重新启动)相关容器?
rest ×4
java ×3
docker ×2
javascript ×2
node.js ×2
web-services ×2
angularjs ×1
gradle ×1
logstash ×1
oauth ×1
spring ×1
spring-boot ×1
typescript ×1