Intellij IDEA使用Docker插件部署应用

1、安装Docker插件

  enter image description here
  配置Docker Api,在API URL中填入api的地址,记得Docker后台程序启动是要配置 -H tcp://0.0.0.0:2375 开放远程地址端口,注意这里的ip地址填写内网ip即可,0.0.0.0将会绑定到宿主机所有的ip中包括外网ip有一定的风险,请注意;

  enter image description here

2、创建Dockerfile

  在项目配置文件中创建Dockerfile文件,这里在resources目录下创建Dockerfile,内容为:

 FROM jboss/wildfly
 ADD webDemo.war /opt/jboss/wildfly/standalone/deployments

  注意这里把webDemo.war与Dockerfile放在同一个目录中否则这里需要制定webDemo.war的路径;
  enter image description here

  添加文件后IDEA会提示是否关联Docker,选择是;

3、配置Docker Deployment

  然后打开Run/Debug Configurations窗口,添加Docker Deployment

enter image description here

  在Deployment中选择刚创建的Dockerfile文件,Container name填写容器的名字,由于这个Demo为Web应用所以还需要把容器的端口映射到宿主机端口,选择Container,在Port bindings中添加端口映射项:

enter image description here

4、部署到docker

  配置好后,可在Docker插件中右键选择Deploy部署;
enter image description here
enter image description here

  刚创建的那个Docker Deployment;
enter image description here

  开始部署,如Dockerfile中指定的Image不存在则会去远程下载,否则直接创建名为:WebDemo的Container

enter image description here

  创建好后即可通过http://ip:18080/webDemo/index.html访问;

enter image description here

Kafka监控框架介绍

  前段时间在想Kafka怎么监控、怎么知道生产的消息或消费的消费是否有丢失,目前有几个开源的Kafka监控框架这里整理了下,不过这几个框架都有各自的问题侧重点不一样;

1、Kafka Monitor
2、Availability-Monitor-for-Kafka
3、Kafka Web Console
4、Kafka Manage
5、KafkaOffsetMonitor

kafka-monitor

git clone https://github.com/linkedin/kafka-monitor.git  
cd kafka-monitor  
./gradlew jar    //下载依赖,这个会比较久编译源码  

启动KafkaMonitor

./bin/kafka-monitor-start.sh config/kafka-monitor.properties  

enter image description here
  启动端到端监控Kafka集群:

 ./bin/end-to-end-test.sh --topic test --broker-list localhost:9092 --zookeeper localhost:2181

  打开监控页面:http://localhost:8000/index.html 页面显示 kafka实时的度量监控值(例如,服务可用性,消息丢失率)动态图显示
  enter image description here

  Kafka-monitor把度量监控信息写入JMX中,并使用jolokia框架所以可以通过http请求获取监控的度量值;

curl localhost:8778/jolokia/read/kmf.services:type=produce-service,name=*/produce-availability-avg

  Kafka-monitor与Kafka为同根同源的都是LinkedIn公司开源的不过Kafka-minitor刚开源没半年所有功能相对于其他监控框架来说比较简单;
  kafka-monitor启动后会启动一个produce、一个consume,broker过时时间为10分钟; 用于捕获服务的可用性、消息丢失率、延迟率等,可监控集群与单个kafka;
  kafka-monitor默认自动创建监控topic,可以修改为已经存在的topic,自动增加partition,确保监控topic的partition# >= broker#
  produce用于生成消息到kafka,并产生生成速率、可用性度量数据
  consume从kafka中消费消息,并产生消息丢失率、消息重复率、端到端延迟 依赖生产服务来提供消息内嵌的消息序列号和时间戳。

KafkaManager

  KafkaManager为Yahoo开源的KafkaManager管理工具, 可管理多个集群; 能够更容易地检查集群的状态, 能够创建主题, 执行首选的副本选择,能够基于集群当前的状态生成分区分配,并基于生成的分配执行分区的重分配 检查集群状态可以发现集群中主题分布不均匀、分区分布不均匀等,

KafkaManager 编译生成,下载依赖会比较久
enter image description here

Availability Monitor for Kafka

  Availability Monitor for Kafka微软开源的Kafka可用性、延迟性的监控框架,提供JMX接口,并可存入SqlServer;

  AvailabilityMonitor可监控发送与读取数据的可用性、延迟;
  Producer可用性=所有主题和分区成功发送消息数/尝试发送消息数
  Consumer可用性=所有主题和分区消息成功读取数/消息尝试读取数
  通过往Producer发送数据测试Producer的可用性与延迟,消息以CanaryMessage_为前缀,可以通过producerProperties.json修改;

  通过从所有分区的尾部读取数据来衡量Consumer的可用性与延迟

enter image description here

enter image description here