项目08-31

来源:互联网 发布:网络安全法明确了 编辑:程序博客网 时间:2024/06/05 03:32

OK,7月16日到今天,已经40多天了,果然是一场马拉松,good luck!

  • Zookeeper管理kafka的哪些元数据信息,看书《从PAXOS到Zookeeper分布式一致性原理与实践》
    • 管理broker集群:brokers的父节点/brokers/ids,一个broker启动在其下创建子节点/brokers/ids/[0..N],所以一个broker由唯一的id标识,(可以随意修改id和物理主机的映射,不影响服务。就像:使用域名而非IP地址标识一个服务、一个资源)
    • broker对应的为临时节点:broker宕机,节点被删除,通过watch机制可被感知;
    • Topic注册:节点/brokers/topics/[topic],记录broker与topic分区的对应关系。临时节点
    • 生产者负载均衡:生产者可以对zk上的“broker的新增与减少”、“topic的新增与减少”、“broker与topic关联关系的变化”等事件注册watch监听,实现动态负载均衡;不是很理解;
    • 消费者负载均衡:一个partition分区同时只能被一个group内的一个消费者消费,zk会记录consumer与partition的对应关系。eg:/consumer/[group_id]/owners/[topic]/[broker_id-partition_id],[broker_id-partition_id]标示一个分区,节点内容就是消费该分区的consumer_id
    • offset:/consumer/[group_id]/offsets/[topic]/[broker_id-partition_id],节点内容就是offset值;
    • 消费者注册:一个新的consumer加入,就在group下创建一个临时节点:/consumers/[group_id]/ids/[consumer_id],内容记录自己订阅的topic。
    • consumer监听:
      • 每个consumer在父节点/consumers/[group_id]/ids上注册子节点列表变化的watch,一旦变化,触发rebalance;
      • 监听/brokers/ids/,有broker宕机,也会引发rebalance
  • zk权限ACL。没有详细了解;
  • java.lang.OutOfMemoryError: unable to create new native thread异常的原因:
    • java OutOfMemory的一种;
    • OutOfMemory有:
      • StackOverFlowError,栈深度太深,可能代码中出现死递归,动态扩展栈时,内存空间不足,会抛出outofmemery;
      • JavaHeapSpace堆溢出,可能是配置的堆太小,调整参数值即可,也可能存在内存泄漏;
      • PermGenSpace永久代也就是方法区溢出了,可能因为加载了太多的类,可参考http://www.cnblogs.com/xwdreamer/archive/2011/11/21/2296930.html;
      •  unable to create new native thread:可能是创建的线程数超过了操作系统的限制,类似于用户的文件描述符用完了;每个线程都有自己独立的虚拟机栈,需要占用内存空间,若给堆分配的heapspace很大,线程数多时,导致内存溢出;参考:http://sesame.iteye.com/blog/622670  http://www.blogjava.net/ldd600/archive/2009/09/25/296397.html   https://plumbr.eu/outofmemoryerror/unable-to-create-new-native-thread
  • 运行的程序出现频繁的Full gc,定位原因:
    • 首先讲清楚什么情况下触发full gc,之后说明可以用jmap、jstat、jhat等命令分析,查看gc的详细信息;
    • 参考:http://blog.csdn.net/chenleixing/article/details/46706039 
    • http://blog.csdn.net/gugemichael/article/details/22819851
    • http://my.oschina.net/goldwave/blog/168516
  • Kakfa的高性能是如何实现的:可参考翻译的kafka官网文档说明:http://blog.csdn.net/anjing900812/article/details/51758915
  • flume使用memory channel,容易丢数据,使用file channel性能、吞吐量不好,有没有一种折中的方案?单台flume做日志采集,存在单点故障,如何进行容错机制的设计?
  • 观察者模式,写代码;
  • java nio:找大神推荐书,开始学习。。。

1 0
原创粉丝点击