operhero

戚骏的博客

服务器框架(二) 游戏数据的落地

落地策略 架构:游戏逻辑服务器—Redis—DataSaver—MySQL数据库 游戏数据存储的特点是读少写多,玩家状态数据变化非常频繁,所以每次直接load数据库肯定是不行的。 服务器启动时,从数据库中提取所有数据(私有表除外)进内存,这样load次数减少为1次(用内存换取cpu时间)。逻辑服的脏数据每隔一段时间会向redis做一次修改同步,而存储服务器(DataSaver)不停地读取...

服务器框架(一) 游戏内存与数据库的映射

映射关系 对象 <-> 内存数组 <-> mysql 例如: Helper.GM_Cmd <-> Cache <-> knight_game0.gm_cmd 映射的字段类型 包含’int’、‘char’、’text’字符串的字段类型 如:INT(10)、BIGINT(20)、TEXT、MEDIUMTEXT TEXT、MEDIUMTEXT...

Jekyll

内网centos7的机器上想部署jekyll,通过export https_proxy=外网机ip:代理端口 来外网通信。 安装相应的依赖包及所需要的工具 yum install -y nodejs npm ruby ruby-devel rubygems git gcc gcc-c++ make openssl-devel wget 修改gem源 ```...

DotNetty

下载demo 克隆github项目 git clone git@github.com:Azure/DotNetty.git 阅读examples/Discard.Server工程,启动代码如下: var bossGroup = new MultithreadEventLoopGroup(1); var workerGroup = new MultithreadEventLoopGro...

SSL

基础概念 SSL证书一般安装在服务器上,而主流的Web服务软件,通常都基于两种基础密码库:OpenSSL和Java Tomcat、Weblogic、JBoss等系统是使用Java提供的密码库。通过Java的Keytool工具,生成Java Keystore(JKS)格式的证书文件。 而Apache、Nginx等,使用OpenSSL提供的密码库,生成PEM、KEY、CRT等格式的证书文件。...

ProtoBuf

安装 github下载protoc-3.15.8-win64.zip 解压后,将/protoc-3.15.8-win64/bin所在目录添加到环境变量 Demo 新建一个myproto.proto文件,内容如下: syntax = "proto3"; package my; message pb_team_info { string team_id = 1; ...

GRPC

项目添加引用 Install-Package Grpc Install-Package Google.Protobuf Install-Package Grpc.Tools 定义helloworld.proto syntax = "proto3"; package gRPCDemo; service gRPC { rpc SayHello (HelloRequest) returns...

Rabbit MQ

Windows环境安装 安装Erlang运行环境 下载安装Erlang:http://www.erlang.org/downloads。 安装RabbitMQ 下载安装Windows版本的RabbitMQ:http://www.rabbitmq.com/install-windows.html。 启动RabbitMQ Server 点...

EF Core

visual studio 2019 新建 .Net Core 3.1 Console工程 添加程序包: Microsoft.EntityFrameworkCore.Tools version:3.1.14 Microsoft.EntityFrameworkCore.Design version:3.1.14 Pomelo.EntityFrameworkCore.MySql version...

OAuth2

OAuth2.0定义了授权机制,用来授权第三方应用,获取用户数据。 比如登录网站后,跳转到github授权,网站就可以使用github的用户数据用户数据了。# OAuth2.0四种授权方式 授权码 这种方式是最常用的流程,安全性也最高。 A网站向用户提供B网站跳转链接,请求授权码,此时传递参数:应用id(client_id)、回调地址(redirect_uri)和授权范围...