Blog

某日打开浏览器发现会弹出很多乱七八糟的广告,第一感觉是运营商又fangjian了。仔细看了看广告内容感觉又不太像,运营商胆子没这么大,有些sax的广告也敢放。 观察广告的顶部都有一个Countflix的标识,于是网上找了一下。说可能是安装了什么被捆绑的软件导致的。于是找了下,还真找到个不认识的软件,卸载之。重启后发现还是有广告。 网上有人说是不是DNS已被篡改。于是打开DNS配置界面发现DNS服务器那里是空的,心想,果然是DNS的问题(果然,我还是太天真了),然后把DNS给加上了。可是问题依旧。 最后在cmd下面用ipconfig /all命令打了一下发现猫腻了 起作用的DNS其实是上面两个(82.163.143.176,82.163.142.178)[流汗]。 netsh interface ip set dns "以太网" static 114.114.114.114 ipconfig /flushdns 重启后打开浏览器,再无广告。VV

READ MORE

原文地址 随着Windows Server 2016添加对Docker容器支持,大家一定会想知道Windows容器和Linux容器之间的差别。这里做一个简单的概述。 为了简单起见,我们从这两者相似点和差异点来看: 相似点 Linux和Windows上的Docker容器有以下几点类似之处: 它们都被设计用于作为应用程序的容器。 运行不依赖于虚拟机管理程序或虚拟机。 都可以通过Docker进行管理(在Windows环境下可以使用PowerShell来管理)。 它们仅支持主机操作系统支持的应用程序。也就是说Windows上的Docker只能托管Windows应用程序,而Linux上的Docker仅支持Linux应用程序。 提供了相同的可移植性和模块化功能。 差异点 以下是Docker在Windows上的不同之处: Docker仅支持特定版本的Windows(目前为Windows Server 2016和Windows 10)。相比之下,Docker可以在任何类型的基于Linux(内核不低于3.13)的操作系统上运行。 即便是在Docker支持的Windows版本中,Windows对镜像的兼容性也有更严格的要求。更多相关信息在这里。 Windows上的容器尚不支持的一些Docker的网络功能。在这里的底部有详细说明。 Windows上不支持大多数用于Linux上Docker容器编排系统。Docker Swarm是个例外。(Windows也正在开发对k8s和mesos这类容器编排引擎的支持)。 非Docker容器和Windows 值得一提的是,Docker是目前唯一与Windows兼容的主要容器平台。其他类型的容器,例如OpenVZ和LXD仍然只能在Linux上运行,并且在可预见的将来也是如此。 由于这些容器平台相对于Docker有着不同类型的使用场景,因此Windows对这些容器的支持与否并不影响我们决定是在Windows还是Linux上运行Docker。尽管如此,Docker仍是Windows上唯一的容器选项,这一事实非常重要,因为这一点突出了Windows的容器生态系统现在比Linux容器世界要小得多。

READ MORE

一、内容概览 本篇介绍如何在Windows系统上搭建SSH Server,并打通一个对Windows系统的SSH反向隧道。 二、安装SSH Server 1、在https://github.com/PowerShell/Win32-OpenSSH/releases下载对应版本的程序。 2、解压压缩包到指定目录,并以管理员权限打开PowerShell执行install-sshd.ps1脚本。若出现以下内容则表示安装成功: [SC] SetServiceObjectSecurity SUCCESS [SC] ChangeServiceConfig SUCCESS Granting SeAssignPrimaryTokenPrivilege to NT SERVICE\SSHD ... successful sshd and ssh-agent services successfully installed 若出现 无法加载文件ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"提示则先执行set-executionpolicy […]

READ MORE

原文地址 Like I mentioned in my post “Microsoftie Perk #9 – Access to product team devs”, it is awesome to be able to ping the guys who build the tools […]

READ MORE

1、以管理员权限打开PowerShell,输入以下命令: Install-Module -Name DockerMsftProvider -Repository PSGallery -Force 出现以下提示信息 需要使用 NuGet 提供程序来继续操作PowerShellGet 需要使用 NuGet 提供程序“2.8.5.201”或更高版本来与基于 NuGet 的存储库交互。必须在“C:\ProgramFiles\PackageManagement\ProviderAssemblies”或“C:\Users\sunkang\AppData\Local\PackageManagement\ProviderAssemblies”中提供 NuGet 提供程序。也可以通过运行'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' 安装 NuGet提供程序。是否要让 PowerShellGet 立即安装并导入 NuGet 提供程序? [Y] […]

READ MORE

1、未导入hadoop-mapreduce-client-common包或导入版本有问题 错误内容 Exception in thread "main" java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses. 解决方法 导入hadoop-mapreduce-client-common包: <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-common</artifactId> <version>2.8.3</version> </dependency> 2、未提供windows native […]

READ MORE
Spring Cloud 之Sleuth-微服务跟踪(二)

一、内容概述 在上一篇了解Sleuth组件的基本用法后留下了一个问题,虽然已经将数据放到ELK中,但是还没有友好的将收集的数据展示出来。本篇不会继续在ELK的基础上去实现这个功能,而是去了解一个专门的开源的分布式跟踪系统——Zipkin。让Sleuth与Zipkin结合起来以达到友好展示的目的。 二、什么是Zipkin Zipkin(Git仓库)是Twitter开源的分布式的跟踪系统。它有助于收集微服务架构中的时许数据,通过分析这些数据的延时可以解决分布式系统的一些问题。它提供了对这些数据的收集和查找功能。Zipkin的设计是基于Google Dapper论文。 应用程序向Zipkin报告请求的时序数据。通过Zipkin的管理界面可以查看每个应用程序有多少跟踪请求,甚至可以查看服务间依赖关系图。如果要排查延时相关的问题或错误,则可以通过对应用程序、trace长度,annotation或时间戳的过滤和排序来选择trace。选中某个trace可以看到每个span所花费的时间及所占百分比,从而可以初步定位有问题的应用程序。 三、搭建Zipkin Server 1、新建一个zipkin-server-demo模块。 2、修改pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-ui</artifactId> <version>2.4.1</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-server</artifactId> <version>RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> […]

READ MORE

一、内容概览 本篇将介绍Spring Cloud全家桶中的微服务跟踪组件——Sleuth。阅读本篇你将初步了解大规模分布式系统跟踪的基本概念;如何将Spring Cloud Sleuth整合到微服务中;如何把跟踪数据接入到ELK中。 二、Google Dapper 现阶段大部分分布式系统的跟踪框架或多或少都是基于或参考了Google的这篇论文(Dapper(English)|Dapper(中文))。 当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。 Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系统,它是如何满足一个低损耗、应用透明的、大范围部署这三个需求的。当然Dapper设计之初,参考了一些其他分布式系统的理念,尤其是Magpie和X-Trace,但是我们之所以能成功应用在生产环境上,还需要一些画龙点睛之笔,例如采样率的使用以及把代码植入限制在一小部分公共库的改造上。 自从Dapper发展成为一流的监控系统之后,给其他应用的开发者和运维团队帮了大忙,所以我们今天才发表这篇论文,来汇报一下这两年来,Dapper是怎么构建和部署的。Dapper最初只是作为一个自给自足的监控工具起步的,但最终进化成一个监控平台,这个监控平台促生出多种多样的监控工具,有些甚至已经不是由Dapper团队开发的了。下面我们会介绍一些使用Dapper搭建的分析工具,分享一下这些工具在google内部使用的统计数据,展现一些使用场景,最后会讨论一下我们迄今为止从Dapper收获了些什么。 ... Spring Cloud Sleuth同样也借鉴了Dapper的一些概念,我们首先要了解的就是它从Dapper中借用的一些术语: Span:最基本的工作单元。例如:发送一个RPC请求是一个新的span,发送RPC响应也是一样。span由一个的64bit ID唯一标识。span中还包含诸如描述、事件时间戳、键值注解(标签)信息。起始的spanid和traceid是相同的,起始span又被成为root span。整个过程中每个span还会有上一个span的id:Parent Id,root span的Parent Id为空。 Trace:一组span的集合组成的树形结构。 Annotation:用于及时记录事件的存在。通过annotation可以标记client或server及请求的开始或结束。 cs(Client Sent):客户端发出请求,该annotation描述了span的开始。 sr(Server Received):服务端获得请求并准备处理。如果此时记录了cs时间戳,那么就可以计算出网络延迟。 ss(Server Sent):标识服务端对请求处理完成。如果sr记录时间戳那么可以计算出请求处理时间。 cr(Client […]

READ MORE

一、内容概览 通过Spring Cloud 之Config-配置中心化(一)我们了解了配置中心化的基本概念和Spring Cloud Config的概念,简单完成一个配置中心化的例子。本篇将了解Git仓库的配置详解、配置内容加密、自动刷新配置。 二、Config Server的Git仓库配置详解 在上一篇中,我们仅简单的配置了一下Git仓库的地址来实现配置从Git仓库中获取的目的。事实上,spring.cloud.config.server.git这个配置节还有许多其他的功能。 按照上一篇的配置方法,如要实现多种微服务共享一个Git仓库,那么配置文件都得毫无结构的放在一起,这并不能有效的管理配置文件。 下面就介绍几种Config Server Git仓库配置的增强用法 1、不同的微服务使用不同的Git仓库 server: port: 9007 spring: application: name: config-server-demo cloud: config: server: git: uri: https://github.com/xdlysk1/SpringConfigRepo #git仓库地址(这里地址故意写错) username: #git仓库用户名 […]

READ MORE

一、内容概览 本篇将介绍配置中心化的概念,以及如何使用Spring Cloud Config配合Git实现一个配置中心化的示例。 二、配置中心化 配置中心化就是将基础设施中所有的网络设备配置集中到中心化仓库管理的过程。 举个例子:假设我们有若干模块的微服务,当部署环境改变或者模块升级时,可能需要修改配置。在微服务数量不大的情况下,我们手动一一修改不会成为什么问题,但是一旦服务数量成百上千时,这种运维工作量就会变得巨大且易出错。配置中心化就是解决这个问题,集中化管理配置后,每个服务可以从配置中心获取对应的配置,当配置修改后只需要统一更新配置中心,然后通过某种机制让服务知道配置已修改自动从配置中心加载刷新配置即可。资料。 三、Spring Cloud Config Spring Cloud Config为分布式系统中心化配置提供服务端和客户端的支持。借助Config Server,你可以在任何环境中通过一个集中位置管理应用程序的外部配置属性。客户端和服务端的概念与Spring Environment和PropertySource的抽象一致,所以这种设计非常适合Spring应用程序,同时也可以用于任何语言编写任何应用程序。当应用程序在部署流程中从开发到测试再到生产,你可以通过切换环境来改变配置,这能确保应用程序具有在迁移时所需的所有运行配置内容。服务端存储使用的默认实现是基于git的,所以可以简单支持标记版本的配置环境,而且可以通过很多常用工具来管理这些配置。通过Spring配置可以简单的扩展和增强这些实现。 下面是Server和Client的一些特性: 3.1 Spring Cloud Config Server 基于HTTP资源的外部配置管理(键值对或YAML格式内容) 加解密属性值(对称/非对称) 通过@EnableConfigServer集成到Spring Boot应用程序 3.2 Spring Cloud Config Client […]

READ MORE
Scroll Up