小编ygk*_*ygk的帖子

Docker-swarm 覆盖网络不适用于不同主机中的容器

我们在 docker-swarm 中遇到网络问题。问题如下;

  • 我们拥有基于 wmware 的虚拟化环境(vsphere 6.02)
  • 我们的服务器是从 vmware 创建的,例如 server1 和 server2
  • 我们有一个 docker compose 文件定义了几个服务
  • 我们在 docker-compose 中为 docker-swarm 有一个覆盖网络定义
  • 当我们使用 docker-swarm 部署系统成功完成时,所有容器都会从覆盖网络范围获取 IP。
  • 但问题是,如果 2 个容器(例如 cnt1 和 cnt2)部署到不同的服务器,它们将无法互相 ping 通
  • 我检查 tcpdump 并看到 ARP 通信成功,因此他们正确地知道彼此的 mac
  • 但是,当您尝试 ping 到容器时,ICMP Echo 消息会发送,但不会传递到第二台机器。

我应该去哪里检查,有什么建议吗?

    server-1:~$ docker version
    Client:
     Version:      17.03.0-ce
     API version:  1.26
     Go version:   go1.7.5
     Git commit:   3a232c8
     Built:        Tue Feb 28 08:01:32 2017
     OS/Arch:      linux/amd64

    Server:
     Version:      17.03.0-ce
     API version:  1.26 (minimum version 1.12)
     Go version: …
Run Code Online (Sandbox Code Playgroud)

vmware networking docker docker-swarm

10
推荐指数
2
解决办法
8185
查看次数

如何以编程方式捕获html5视频(无头)

我正在尝试以编程方式捕获具有js / css效果的html5视频。我尝试了几种方法。

  1. 首先,我找到了这篇很棒的博客文章并将其实现。一切都很完美,直到我发现phantomjs 不支持 html5视频标签,因此无法捕获视频。

  2. 第二种选择是使用无头的chrome拍摄连续的屏幕截图,并将这些屏幕截图输入ffmpeg以创建视频。尽管它在某种程度上可以正常工作,但无头的chrome屏幕快照仍需要一些时间。.我无法创建流畅的视频。

  3. 在我的第三次尝试中,我给了Chrome的Page.startScreencast api一个机会。它可以捕获视频,但是帧速率确实有问题。原因是 ..

  4. 现在,我正在研究xvfb + chrome / firefox + ffmpeg组合,以捕获评论中提到的视频。从理论上讲,这是有希望的,但我无法捕获视频。相反,我有黑屏。

我的设置如下:

  • light-http服务器,在html5视频标签中具有简单的视频(网络);在本地主机上
  • 使用Firefox启动xvfb并导航到localhost / index.html(有视频) xvfb-run --listen-tcp --server-num 44 --auth-file /tmp/xvfb.auth -s "-ac -screen 0 1440x685x24" firefox --headless http://localhost
  • 使用x11grab参数启动ffmpeg以从xvfb抓取帧 ffmpeg -f x11grab -video_size 1440x685 -i :44 -codec:v libx264 -r 12 ./output.mp4

  • 结果是黑色视频:)

应该是什么问题,我该如何解决问题?


ps:还有一种可能的解决方案,我还没有尝试过。由于phantomjs具有捕获画布的功能;有可能

似乎是一个肮脏的解决方法,所以为什么还没有尝试呢。


更新1

尝试使用截屏,xwd -root -silent -display :44 -out screen.xwd然后转换为jpeg convert screen.xwd shot.jpg,结果为黑色jpg。

video html5 ffmpeg video-capture xvfb

7
推荐指数
1
解决办法
1653
查看次数

SpringBoot应用程序启动多次并与logstash断开连接

我有一个 springboot 应用程序(Spring Boot v1.3.5.RELEASE),它在 docker 上运行 ./mvnw;

它会在 1-2 分钟后“重新启动”,并且在第二次启动后,它们不会向 Logstash 发送任何日志。

在第一次启动时我们看到下面的日志

2016-07-27 08:54:29,616 DEBUG [background-preinit] logging: Logging Provider: org.jboss.logging.Slf4jLoggerProvider found via system property
Run Code Online (Sandbox Code Playgroud)

第二个日志记录提供程序日志丢失后的错误..

    **2016-07-27 08:54:25,386 INFO  [restartedMain] DemoApp: Starting DemoApp on 7adf92b8bc96 with PID 85 (/home/infoowl/project/target/classes started by infoowl in /home/infoowl/project)**
    2016-07-27 08:54:25,471 DEBUG [restartedMain] DemoApp: Running with Spring Boot v1.3.5.RELEASE, Spring v4.2.6.RELEASE
    2016-07-27 08:54:25,487 INFO  [restartedMain] DemoApp: The following profiles are active: dev
    2016-07-27 08:54:29,616 DEBUG [background-preinit] logging: Logging Provider: org.jboss.logging.Slf4jLoggerProvider found via system property …
Run Code Online (Sandbox Code Playgroud)

logstash spring-boot jhipster

4
推荐指数
1
解决办法
7747
查看次数

在微服务之间共享海量数据

我正在设计微服务架构中的评论分析平台。

应用程序如下所示;

  • 从电子商务站点a(site-a)作为excel文件检索的所有产品评论
  • 评论用Excel上传到系统
  • 分析代理可以列出所有评论,对其进行编辑,删除或批准
  • 分析代理可以导出网站-a的所有评论
  • 基于自动正则表达式的检查将应用于上载和编辑的每个审阅。

我有3个微服务。

  • 评论:负责Review Crud操作以及类似于批准/拒绝的操作。
  • 验证:负责定义和应用审阅验证规则。
  • 导出/导入:导出服务在给定站点名称的情况下导出大型文件(例如site-a)

问题出在某个时候,验证服务需要获得站点a的所有评论,应用验证规则并生成错误(如果有)。我知道共享数据库架构和实体会破坏微服务架构。

一种可能的解决方案是

  • 每当验证服务需要对站点进行审阅时,它都会请求网关,网关会将请求重定向到“审阅”服务并采取响应。

这种方法的两个可能的缺点

  • 验证服务知道有关网关?它带来依赖吗?
  • 如果我对某个网站有1b条评论,那么通过其余请求获得所有评论可能是一个问题。(或者,我可以从验证服务到网关发出分页请求。)

那么,在没有服务的情况下在微服务之间共享海量数据的最佳实践是什么?

  • 共享实体
  • 和复制数据

我阅读了很多有关使用消息传递队列的信息,但是我认为使用消息传递队列共享千兆字节的数据并不好。


编辑1:除了共享实体,还可以将数据存储区与rest API一起使用是一种解决方案?假设我正在使用mongodb,而不是在微服务之间共享我的实体对象,我可以使用mongo的rest接口(http://restheart.org/)并尽可能查询数据。

microservices

0
推荐指数
1
解决办法
3955
查看次数