摘要: swarm和k8s本质都是容器编排服务。它们都能把底层的宿主机抽象化,然后将应用从以构建好的镜像开始,最终以docker的方式部署到宿主机上。 应该选择哪种方案作为我们的容器云服务呢? 我觉得k8s(kubernetes简称)跟swarm的比较好比MySQL和SQL Server的比较,前者轻量级、 阅读全文
posted @ 2018-08-01 07:36 i6first 阅读(16142) 评论(1) 推荐(2) 编辑
 
 
1.Terminology
  • Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker
  • Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处).
Topic在逻辑上可以被认为是一个queue,每条消费都必须指定它的Topic,可以简单理解为必须指明把这条消息放进哪个queue里。
  • Partition
Parition是物理上的概念,为了使得Kafka的吞吐率可以线性提高,物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。
消息文件都是一个log entrie序列,每个log entrie包含一个4字节整型数值(值为N+5),1个字节的"magic value",4个字节的CRC校验码,其后跟N个字节的消息体。每条消息都有一个当前Partition下唯一的64字节的offset,它指明了这条消息的起始位置。
这个log entries并非由一个文件构成,而是分成多个segment,每个segment以该segment第一条消息的offset命名并以“.kafka”为后缀。另外会有一个索引文件,它标明了每个segment下包含的log entry的offset范围,如下图所示。

 

 
因为每条消息都被append到该Partition中,属于顺序写磁盘,因此效率非常高(经验证,顺序写磁盘效率比随机写内存还要高,这是Kafka高吞吐率的一个很重要的保证)。

 

 
  • Producer
负责发布消息到Kafka broker
  • Consumer
消息消费者,向Kafka broker读取消息的客户端。
  • Consumer Group
每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
 
 
 

 

2. Kafka拓扑结构

 

 
posted @ 2018-08-01 07:35 i6first 阅读(323) 评论(0) 推荐(1) 编辑
摘要: 需求 对于包含了get-tip-msg和get-robot-state的URL进行捕获,然后由nginx直接返回查询参数中callback的内容。 nginx的配置文件 访问的效果 阅读全文
posted @ 2018-08-01 07:25 i6first 阅读(1799) 评论(0) 推荐(1) 编辑
摘要: 对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量。 上篇博客已给大家分享过:要在没有域的环境中搭建AlwaysOn需要两个步骤, 1).搭建基于windows 阅读全文
posted @ 2016-11-09 16:45 i6first 阅读(4425) 评论(4) 推荐(3) 编辑
摘要: 对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量。 该特性可以使用户不必额外准备一台或者两台(为了避免单点故障)AD域服务器,从而降低了部署的成本;对DBA而言 阅读全文
posted @ 2016-11-07 19:48 i6first 阅读(8335) 评论(18) 推荐(9) 编辑
摘要: 问题现象 从阿里云上镜像过来的一台的数据库服务器,SQL Agent服务启动不了,提示服务启动后停止。(原数据库服务器是正常的,怀疑跟镜像有关) 如下是系统日志和SQL Agent的日志 解决方法 在注册表中,定位到SQL Agent的ServerHOST属性: 其中MSSQL.X表示实例信息,其命 阅读全文
posted @ 2016-05-20 11:47 i6first 阅读(11857) 评论(4) 推荐(3) 编辑
摘要: 问题现象: 在删除数据库用户(不是登录名)时报错,提示该用户在数据库中拥有架构,无法删除,错误:15138 解决方法: 1.用如下语句找出runhe这个用户拥有的所有架构 SELECT s.name FROM sys.schemas s WHERE s.principal_id = USER_ID('runhe');其中user_id的参数就是你要删除的用户名字。 2.然后把这些架... 阅读全文
posted @ 2016-05-18 16:43 i6first 阅读(1003) 评论(0) 推荐(0) 编辑
摘要: --事务的原子性要求事务要么全部完成,要么全部不完成,不可能停滞在某个中间状态。--然而,我的事务却没有“回滚”,为此还导致了异常数据的发生,为什么? 这是一个发生在我工作中的真实的案例,在用户问我的时候我当时也SB了,在我理解了这背后的原理后,我虽然接受了SQL Server在某些场景下不回滚的设 阅读全文
posted @ 2016-03-31 17:57 i6first 阅读(4311) 评论(11) 推荐(1) 编辑
摘要: null是什么? 不知道。我是说,他的意思就是不知道(unknown)。 它和true、false组成谓词的三个逻辑值,代表“未知”。与true和false相比,null最难以令人捉摸,因为它没有明确的值,在不同的场景下,它能代表不同的含义。下文以例子的方式给大家分享下null使用的典型场景及对应的 阅读全文
posted @ 2016-03-01 08:41 i6first 阅读(3131) 评论(8) 推荐(7) 编辑
摘要: 今天是大年初三,先跟大家拜个年,祝大家新年快乐。今天处理了一个alwaysOn问题——辅助副本因为磁盘空间不足一直显示【未同步——可疑】,在日志中可以看到数据库处于挂起状态,与主副本失去同步。原以为只需把辅助副本的磁盘做个清理,腾出一点空间,然后重启SQL Server服务就好了(重启让数据库从挂起 阅读全文
posted @ 2016-02-10 23:24 i6first 阅读(5726) 评论(4) 推荐(2) 编辑
点击右上角即可分享
微信分享提示