伴随着研究Windows服务,逐渐掌握了一些小技巧,现在与大家分享一下. 将Windows服务转变为控制台程序 由于默认的Windows服务程序,编译后为Win32的窗口程序.我们在程序启动或运行过程中,如果想看到一些调试信息,那么就只能通过DebugView或者输出到日志的方式了.因为如果我们通过printf或者std::cout输出调试信息的话,Win32窗口程序是无法显示的. 此时,我们是多么怀念我们的经典的控制台程序啊,它可以很方便的将我们的调试信息输出出来,简直是太方便了.既然如此,那…
最近有客户反映,机房出现断电情况,服务器的系统重新启动后,数据库服务自启动失败.第一次遇到这种情况,为了查看是不是断电情况导致数据库文件损坏,从客户的服务器拿到数据库的日志,进行分析. 数据库工作机制 要分析数据库启动失败的原因,首先说明一下数据库服务的工作机制. 数据库分为六大服务: 数据库的六大服务之间存在依赖关系,及启动流程: 服务自动启动失败原因 从客户那里,拿到了两份日志,一份是开机自启动的日志信息,此次数据库启动失败.另外一份是开机后,手动启动数据库服务的日志信息,此次数据库启动成功…
原文:玩转Windows服务系列——Windows服务小技巧 伴随着研究Windows服务,逐渐掌握了一些小技巧,现在与大家分享一下. 将Windows服务转变为控制台程序 由于默认的Windows服务程序,编译后为Win32的窗口程序.我们在程序启动或运行过程中,如果想看到一些调试信息,那么就只能通过DebugView或者输出到日志的方式了.因为如果我们通过printf或者std::cout输出调试信息的话,Win32窗口程序是无法显示的. 此时,我们是多么怀念我们的经典的控制台程序啊,它可以…
目录 1. 服务注册 1.1 代码演示 1.2 在go run的时候传入服务注册的参数 2. 服务发现均衡负载 2.1 均衡负载算法 2.2 服务发现均衡负载的演示 1. 服务注册 1.1 代码演示 还是跟上一篇:go微服务(一) - go micro入门一样使用consul package main import ( "net/http" "github.com/gin-gonic/gin" "github.com/micro/go-micro/regi…
1. 关于服务调用 2. 基本方式调用服务 3. 服务调用正确姿势(初步) 3.1 服务端代码 3.2 客户端调用(重要) 1. 关于服务调用 这里的服务调用,我们调用的可以是http api也可以是gRPC等.主要意思就是调用我们从consul获取到的服务的API. 下面的所有示例以RESTful HTTP API为例 2. 基本方式调用服务 我们在服务发现之后,肯定要调用发现之后的服务,这里的服务可以是http的RESTful API也可以是RPC服务等,这里以前面的定义的productSe…
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分布式存储-部署篇 Longhorn 企业级云原生容器分布式存储-券(Volume)和节点(Node) Longhorn,企业级云原生容器分布式存储-K8S 资源配置示例 目录 设置 Prometheus 和 Grafana 来监控 Longhorn 将 Longhorn 指标集成到 Rancher…
当我们运行一个Windows服务的时候,一般情况下,我们会选择以非窗口或者非控制台的方式运行,这样,它就只是一个后台程序,没有界面供我们进行交互. 那么当我们想与Windows服务进行实时交互的时候,我们应该怎么做呢? 快速给Windows服务添加实时交互功能的方案 Windows服务是一个进程,而我们用于交互的程序,又是另外一个进程.我们与Windows服务实时交互,其实就是一个进程间通信的问题.所有的进程间通信的方案基本上都适用于实时交互的方案,比如Socket.共享内存.管道.COM等.…
玩转Windows服务系列——创建Windows服务一文中,介绍了如何快速使用VS构建一个Windows服务.Debug.Release版本的注册和卸载,及其原理和服务运行.停止流程浅析分别介绍了Windows服务的注册.卸载.运行.停止的简单流程.那么今天就来介绍一下如何使用开源库Boost.Application来快速构建一个Windows服务. Boost.Application简介 Boost.Application 是一个开源的C++库,主要用于构建跨平台的服务,包括Windows.U…
Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Services.exe -service 卸载 Services.exe -unregserver 原理 Windows服务的Debug.Release版本的注册和卸载方式均已明确.但是为什么要这么做呢. 最初我在第一次编写Windows服务的程序时,并不清楚Windows服务的注册方式.于是从谷歌搜索后得…
创建Windows服务的项目 新建项目->C++语言->ATL->ATL项目->服务(EXE) 这样就创建了一个Windows服务项目. 生成的解决方案包含两个项目:Services.ServicesPS .其实主要是使用Services,VS2012下不清楚为什么生成了两个项目. 注册Windows服务 Windows服务第一次启动时,是需要注册的,注册方式可以通过命令行或批处理的方式. Services.exe -regserver 卸载Windows服务 既然服务需要注册,那…