初识云函数什么是云函数云函数提供了一种直接在云上运行,无状态的、短暂的、由事件触发的代码的能力。 云函数与轻服务的关系 ServerLess,即无服务器架构,也叫轻服务,它包含两个部分,如下: 函数即服务(FaaS: Function as a Service) 函数即服务提供的是计算能力。原有的计算能力,无论是容器也好,虚拟机也好都承载在一定的操作系统之上,函数即服务把计算能力进行了进一步抽象。 后端 2019-09-08 技术
go包管理工具-glide使用方法及踩坑记录前言大学以来一直想做一个OJ,终于可以开始,而且是用新学的Go来写,心里还是挺兴奋的。项目启动,要搭架子,第一件事,当然是选择一个包管理工具。Go的包管理还是挺混乱的,没有一个能像Java的Maven一样足够强大&一统天下,尽管优秀的第三方工具已有十来种,且官方也开始着手开发(快统一江湖吧)。(ps:虽然包管理很让人糟心,但这并不能影响我对这门语言的热爱) glide安装1go get g 2017-10-02 大学时期CSDN #golang #glide
CSDNtoHexo迁移脚本前言这一阵子,刚换了落脚地儿,没想好该去折腾什么,恰好看到可以用git page搭建一个博客,就搞了搞。关于主题啊,配置啊什么的,网上都有好多,偏偏迁移这个事儿挺麻烦,幸好有找到一前辈的脚本,可以将CSDN的博客导出为markdown格式,但是其导出来的md文件并不能直接用hexo,想要显示的好一些还需要再用脚本将它二次润色。本人重写了润色的脚本,并增加了对CSDN的分类的爬取,将其作为hexo 2017-06-18 大学时期CSDN #Hexo
Linux上定时器的实现方法1. 使用sleep或者usleep这种方法很简单,这里就不具体描述,它的缺点也很明确:精度不够,特别是在系统负载比较大时,会发生超时现象。 方法2. 使用信号量SIGALRM + alarm()alarm也称为闹钟函数,alarm()用来设置在经过参数seconds指定的秒数后传送信号SIGALRM给目前的进程。如果参数seconds为0,则之前设置的闹钟会被取消,并将剩下的时间返回。要注意 2017-03-02 大学时期CSDN #Linux系统编程
对比高性能I/O设计模式-Reactor/Proactor通常,I/O复用机制都需要事件分享器。分享器对象可将来自事件源的I/O事件分离出来,并分发到对应的Read/Write事件处理器。开发人员预先注册需要处理的事件及该事件对应的事件处理器。Reactor和Proactor都涉及到了事件分享器,不同的是,Reactor是基于同步I/O的,而Proactor是与异步I/O相关。 在Reactor模式中,事件分离器等待某个事件或者某个操作的状态发生,比如文 2017-03-01 大学时期CSDN #服务器开发 #Linux网络编程
游戏服务器和一般服务器对比,有何特别?背景在中国的互联网诸多业务领域中,游戏一直是充当“现金牛”而存在的。但是,在游戏服务器端开发领域中的很多重要问题,并没有被明确的分辨出其特异性,从而得到专门的对待。我们不管是在业界开源领域,还是内部分享中,很少会有专门针对游戏业务特征进行专门设计的组件、类库或者框架。我们从游戏的客户端方面来看,一款专业的游戏客户端引擎,已经是游戏开发的标配,比如最早的FlashBuilder,到后期的Cocos2 2017-02-27 大学时期CSDN #游戏开发
各类游戏对应的服务端架构卡牌、跑酷等弱交互服务端卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器: ,利用内存读写的高速特性来提高Linux系统的数据访问性能。在这方面,区别于Windows的内存管理。本文从Linux的内存管理机制入手,简 2017-02-16 大学时期CSDN #Linux网络编程 #Linux系统编程
TCP建立连接为什么是三次握手,为什么不是两次或四次?什么是三次握手学过网络编程的人,应该都知道TCP建立连接的三次握手,下面简单描述一下这个过程。概述在学长博客里看到了使用自动注册工厂替代switch语句的文章,想到可以将其用到自己的项目里,就照猫画虎学习着也实现了一个。这里并不是用其替代创建派生类的传统Factory,而是为了替代服务器中的业务逻辑处理。记得以前实现的第一个服务器项目:聊天室,里面在解包后,是一长串的switch语句,根据包里类型标志,来决定该如何处理,写起来舒服,可看起来,包括后期维护,实在是太不方便,因为想使用自动注册 2017-01-01 大学时期CSDN #C++
clion配置cmake添加boost库今天发现xcode在文件名修改之后,该文件内补全就失效,网上寻法多次无果,无奈转向clion。因为clion的项目构建是基于cmake的,想使用boost等第三方库就需要对其进行配置,故将配置内容保存于此。 cmake_minimum_required(VERSION 3.6) #设置项目名称 project(demo) set(CMAKE_CXX_STANDARD 11) set(BOOS 2017-01-01 大学时期CSDN #C++
Boost.Asio网络库之io_service分析io_service概述几乎绝大多数用到Boost.Asio的代码里都会出现这样一个类: ** io_service **。它应该算是Asio库里的核心类了,其本质是一个任务队列,但又不仅仅是个任务队列。 基本结构io_service是个接口类(ps:这里解释一下,这里说接口类并不是指类似java的interface类,而是指其是对下层类做了一个包装,全部功能都是调用下层类来完成)。 class 2016-12-24 大学时期CSDN #服务器开发 #C++
IDEA tomcat三步实现热部署添加Artifacts选项自己之前写了好 2016-12-15 大学时期CSDN #Web开发 #Java
SpringMVC返回json数据(@ResponseBody注解的使用)最近开始了一个web项目,深深感觉到web方面知识的混杂,越来越明白java为什么可以流行这么多年了,库啊,框架啊,一抓一大把,要多方便有多方便,开发效率提升太高了。 最初使用SpringMVC时,为其ModelAndView可以直接返回页面和数据感觉爽到不行,但是当只想返回数据而不返回页面时,该怎么办呢,难道还要每次自己进行json格式转化吗,太麻烦了。 用ModelAndView显然不行, 2016-12-15 大学时期CSDN #Web开发 #Java
boost:asio信号量signal_set源码分析及使用首先我们先看signal_set.hpp,可以看到下面代码 #include <boost/asio/detail/config.hpp> #include <boost/asio/basic_signal_set.hpp> namespace boost { namespace asio { /// Typedef for the typical 2016-12-11 大学时期CSDN #服务器开发 #C++
shared_ptr智能指针模板类的简单实现(c++11)前言 最近突然萌生把stl常用的库都通通自己过一遍的想法,算是对泛型编程的一次学习,也深入理解stl,还是对c++11知识的练习,就从智能指针开始吧。另外,c++11让c++程序变得简洁优雅了许多,对这门语言有点爱不释手了。 智能指针原理 通过使用引用计数的方式来自动的对动态申请的内存进行释放,保证指针的生存期和安全性。对智能指针初始化的时候,会将引用计数初始为1,之后每次拷贝或移动赋值时,都对 2016-12-11 大学时期CSDN #C++
boost:asio网络库初学之echo服务器客户端实现为什么想起来学网络库呢前一阵在网上看到这么一段话 select 实在是太慢了. 在这种背景下, IBM 老大哥带领着MS老弟先搞了 IOCP . 然而开源的人有开源的做法, 在 NIH 综合症的影响下, BSD 的人敢为天下所不齿,发明了 Kqueue. 同样在 NIH 综合症影响下, Linux 的一群 M* 的猴子捣鼓出了 epoll. 分裂, 让人头疼. 于是程序员 2016-12-10 大学时期CSDN #服务器开发 #C++
Mac Boost安装及使用(命令行和Xcode)安装 下载boost安装包官网下载地址 https://sourceforge.net/projects/boost/files/boost/1.62.0/ 2.解压并进入boost_1_62_0文件夹3.执行boostrap.sh ./boostrap.sh 4.上一步执行成功后会生成b2脚本,执行它./b2 执行完毕后,头文件在boost_1_62_0/boost文件夹下库文件在bo 2016-12-10 大学时期CSDN #Boost