游戏服务器之Java热更新】的更多相关文章

对于运行良好的游戏来说,停服一分就会损失很多收益.因为有些小bug就停服就划不来了.在使用Java开游戏服务器时,JVM给我们提供了一些接口,可以简单做一些热更新.修复一些小Bug而不用重启服务. JVM可以给运行中的服务器绑定一个代理,在这个代理中可以拿到Instrumentation 这个类的实例,它可以让用户手动修改jvm中的class类,对它进行热更新,但是有一点,用于热更新的新类和老的类方法签名必须一样,即不能修改方法的名字,参数类型,还有修改声明的字段.只能修改方法体里面的代码.一般…
1.前言 上一随笔写了如何使得spring boot热更新前端 ,但后端java部分无法热更新. 对于Java热更新,以前常使用  springloaded  ,但是缺点 和bug很多 无法实现真正意义的 Java热更新 于是出来了个叫 JRebel的插件 ,很好用 ,但是需要收费,当前可以免费使用15天 . 对于我这样的穷学生 ,买不起 ,所以 ,我只能破解 ,网上有些破解版直接安装到idea ,一点都不靠谱 ,不说这个,安全就受到威胁. 那怎么办? 很简单,自己破解就行!!! 2.下载配置信…
写在前面: (1)为了防止版本兼容问题,此处的webpack版本与之前的一致为:webpack@3.6.0.同时这里我们安装的webpack-dev-server版本是2.9.7版本. (2)之前已经安装了node.js 在此之前我们一直采用live-server充当本地服务器,其实这与webpack是不怎么搭配的,现在我们可以利用webpack自带的webpack-dev-server来构建一个本地服务器(基于node.js架构)--让浏览器检测代码修改,并自动刷新修改后的结果.由于webpa…
Groovy 是什么? Apache的Groovy是Java平台上设计的面向对象编程语言.这门动态语言拥有类似Python.Ruby和Smalltalk中的一些特性,可以作为Java平台的脚本语言使用,Groovy代码动态地编译成运行于Java虚拟机(JVM)上的Java字节码,并与其他Java代码和库进行互操作. 由于其运行在JVM上的特性,Groovy可以使用其他Java语言编写的库.Groovy的语法与Java非常相似,大多数Java代码也符合Groovy的语法规则,尽管可能语义不同. G…
2014年新春佳节即将到来,也算是送给大家的一份新年礼物.虽然这礼物貌似不给力啊哈哈.(没有用心啊 o(∩_∩)o 哈哈) 这次开源主要去掉上一次开源版本中大量指针代码,简化上手操作,并重构大部分代码提高性能.并且去掉了之前臃肿的MSSQL换成SqlLite. 此次更新也修正了上次代码中遗留下的许多bug,上次很多朋友都无法正常进入游戏,这次也修正了之前可能导致无法进入游戏bug. 代码纯粹娱乐开发.高手勿喷. 代码已经相关配套服务端下载地址:http://pan.baidu.com/s/1kT…
链接:https://pan.baidu.com/s/1ggWP0OF 第 1 章 : 热更新技术学习介绍 课时1:101-热更新技术学习介绍 11:55 什么是热更新? 举例来说 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新打包,然后让玩家重新下载(浪费流量和时间,体验不好). 热更新可以在不重新下载客户端的情况下,更新游戏的内容. 热更新一般应用在手机网游上. 为什么C#脚本不可以直接更…
1.前言 分布式微服务想要热更新配置文件,还需要 消息中间件 配合使用 ,一般使用 rabbitMQ 或 Kafka ,这里不解释 . 这篇随笔 只讲解 底层的 单机热更新配置文件 2.环境 spring boot : 2.1.6.RELEASE spring cloud :  Greenwich.SR2 jdk 1.8 3.配置中心服务端 ,端口6001 目录结构 pom.xml # 设置本机服务名称 spring.application.name=config-server-6001 # 设…
原创作品,请注明出处转载CSDN:http://blog.csdn.net/relar/article/details/38084689 开发游戏server往往有"热更新"的需求,就是在不停止服务程序的情况下.对服务程序进行升级. 这里採用lua脚本桥接C++的模式.程序主框架用C++,程序的业务逻辑也是C++(详细的是C++写的DLL),这两者之间用LUA脚本语言进行桥接.当程序执行时,仅仅要改变LUA脚本,即能够选择使用不同的DLL.以实现业务逻辑的升级更新. 上演示代码,代码分…
前言 不知各位遇没遇到过,刚刚发布的应用,突然发现了一个隐藏极深的“碧油鸡(BUG)”,肿么办!肿么办!肿么办!如果被老板发现,一定会让程序员哥哥去“吃鸡”.但是想要修复这个“碧油鸡”,就必须要重新打包.重新测试.重新部署等等.重点是在这个重新打包.测试.部署的时候,可能已经有用户发现了这个“碧油鸡”,接下来就是承受用户的投诉.举报 + 漫骂.如果这仅仅只是一个无关痛痒的“碧油鸡”,那还到无可厚非.怕就怕这是一个非常严重的错误,比如会泄露用户隐私等.这时候就不单单是被请“吃鸡”了,还有可能被请“…
一.热更新学习介绍 1.什么是热更新 举例来说: 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新打包,然后让玩家重新下载(浪费流量和时间,体验不好). 热更新可以在不重新下载客户端的情况下,更新游戏的内容. 热更新一般应用在手机网游上. 2.为什么C#脚本不可以直接更新 C#是一门编程语言,它运行之前需要进行编译,而这个编译的过程在移动平台无法完成,所以当我们游戏的逻辑更改,C#代码发生改变的…
热更新简介 热更新是指在不需要重新编译打包游戏的情况下,在线更新游戏中的一些非核心代码和资源,比如活动运营和打补丁.热更新分为资源热更新和代码热更新两种,代码热更新实际上也是把代码当成资源的一种热更新,但通常所说的热更新一般是指代码热更新.资源热更新主要通过AssetBundle来实现,在Unity编辑器内为游戏中所用到的资源指定AB包的名称和后缀,然后进行打包并上传服务器,待游戏运行时动态加载服务器上的AB资源包.代码热更新主要包括Lua热更新.ILRuntime热更新和C#直接反射热更新等.…
主题:使用 Swoole 加速你的 CMS 系统,并实现热更新 关于 Swoole 的简介不再在此赘述,各位可以自行查看官网的文档进行详细的了解. 本文以 MyCms 为例,简要说明 Swoole 结合传统的 CMS 系统进行使用,并实现热更新. CMS系统:MyCms (目前v3.3+以上版本重新编写了对 Swoole 的支持,移除了包swooletw/laravel-swoole. 使用新版本的用户直接安装后修改Nginx配置即可) 集成 Swoole 问题: 1.系统配置更新后无法实时读取…
老版本链接如下:http://www.cnblogs.com/answerwinner/p/4469021.html 新用户不要再使用老版本了. 新版本 JSBinding 将抛弃 SharpKit 转而使用 Bridge.NET(老版本仍然维护). 理由是 1. 把 C# 编译成 Js 后,Bridge 几乎100%确定转换后可运行. Bridge 在编译时不允许引用外部 Dll(System.dll也不行).允许使用的 C# Api 都是 Bridge 已严格测试过的.一般来说,编译能过,就…
paip.提升用户体验--提升java的热部署热更新能力 想让java做到php那么好的热部署能力  "fix online"/在线修复吗??直接在服务器上修改源码生效,无需重启应用.. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax 以下是总结一些方法.. 使用resin4代替tomcat,resin4支持更好的热部署能力 慎用spring,struts,hib…
SNS类游戏基本都是使用HTTP短连接,用Java来开发服务端时能够使用Servlet+Tomcat非常轻松的架构起服务端来.在这里介绍一种使用Servlet比較好的一种设计,我也见过非常多基于HTTP请求的游戏服务端使用Struts.Spring.Hibernate等等.事实上我感觉对于游戏来说使用这些东西非常繁琐.若是开发Java Web应用使用SSH倒是合情合理. 使用Servlet时,我们能够仅仅创建一个Servlet左游戏中全部请求的入口,然后使用注解来标识方法,在程序启动时使用反射去…
1.在终端安装 cnpm i webpack-dev-server --save-dev 2.配置好后执行 webpack-dev-server,这时候会报错 出现错误,只需要在pagejson里配置下scripts就可以了 3.下载好后,需要配置下devServer const path = require('path'); //引入path module.exports={ //暴露出来 entry:{ entry:'./src/entry.js', entry2:'./src/entry2…
需求当游戏需要更新时,不必让用户下载新的完整包,只需要通过游戏内部的更新系统自动更新差异包,达到节约用户流量和时间的目的. 大体思路:1.(游戏逻辑用lua等脚本编写的情况)这种方式的增量更新非常简单,因为脚本本身可以当成资源来处理,只需要将脚本和其他资源(美术资源,配置档)从游戏的原包(apk)中剥离出来,每次版本更新将旧版本和新版本的资源包作对比,生产差异资源包即可. 2.(游戏逻辑用c++等编译型语言编写的情况)这种方式相对来说复杂一些,展开说一下,以c++作为游戏主逻辑的开发语言为例.…
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:…
热更不规范,同事两行泪 背景 C君是一个javaer,最近在开发用户登出接口的时候,不小心把接口参数拼错了 正确的是: /api/v1/user/logout?referrer=www.javaer.com 结果不小心把referrer写成了referre,把字母 r 给丢了,带来的影响就是用户登出后再登陆就无法回到正确的地址,而且代码已经上生产了,这可怎么办?! 偷偷发一版?那么多用户已经在线了,如果被发现就GG了. 下一版再修复?那等待时间也太长了,让BOSS知道也是一首凉凉啊,有可能还的找…
1. 增加exe版(console),web版本(IIS)的游戏服宿主程序 2. 增加Model支持脚本化,实现不停服更新 3. 增加Language支持脚本化 4. 修改Sns与Pay Center组件的数据库连接字符串 5. 修改输出Log异常信息重复问题 6. 修改消息队列写MSSQL数据库时SqlParamter被占用问题 Scut游戏服务器引擎介绍: Scut游戏服务器引擎使用C#语言开发,特别适用于手机网络游戏,支持使用C#/Python脚本进行游戏开发:支持MSSQL/Mysql数…
因为目前项目每次修改文件要看效果,必须重启服务:node app.js再进入浏览器看效果,很是麻烦.所幸的是有很多第三方的管理工具(supervisor,hotnode,forever,pm2等),当文件修改保存后,能自动重启node服务,但需要刷新浏览器,帮助我们节省开发时间. $ npm install -g supervisor 启动服务: supervisor node.js 命令窗口显示信息如下: 其实webpack也是可以实现实时热更新服务,暂时没去配置,既然用到node就使用nod…
脚本的热更新的流程都大同小异, 第一步先保存旧代码的块的数据, 第二部加载新的代码块,第三步将旧代码块的局部和全局数据拷贝到新代码块的对应的 变量中. 在服务器热更新中,主要考虑热更的内容是什么, 一般更新分两种,一种是逻辑的更新,一种是变量的值更新. 先谈论第一种,在lua 5.3中,继承了新的debug.upvaluejoin(f1, i, f2, j)函数,能将函数f1的第i个个upvalue引用f2的第j个upvalue, 可以通过debug.getupvalue函数,获取ENV 的up…
微服务架构的说明: 微服务的架构风格是将一个单体的应用程序开发拆解为一组"小"的服务,这里的"小"是以业务边界 来区分的,而不是根据代码的多少区分.每个服务都运行在一个单独的进程中,服务之间通过轻量级的方式进行通信,例如使用HTTP资源接口. 单体架构与微服务架构的比较. 单体架构存在的问题: 由于所有的业务逻辑都写在了一个应用service中,因此只要对该service进行修改,哪怕只是添 一行代码,也需要编译打包部署整个应用,需要的时间会比较久,耗时耗力. 假设…
前言 前面铺垫了这么久,终于要开始写热更新了. Unity游戏热更新包含两个方面,一个是资源的更新,一个是脚本的更新. 资源更新是Unity本来就支持的,在各大平台也都能用.而脚本的热更新在iOS平台则是不被允许的(除了Lua). 为了让一套代码能在各个平台都支持热更,将游戏的业务逻辑全面Lua化,是一种解决方法.这也是ToLua在做的事. 关于Unity热更与平台的关系 可以阅读陈嘉栋大佬的文章:谁偷了我的热更新?Mono,JIT,iOS 一.热更新的原理 1.热更新的简单理解    手机Ap…
对老项目进行热更新 项目用纯C#开发的? 眼看Unity引擎热火朝天,无数程序猿加入到了Unity开发的大本营. 一些老项目,在当时ulua/slua还不如今天那样的成熟,因此他们选择了全c#开发:也有一些出于性能考虑,全c#开发:也有一些没有太丰富运营经验的开发团队,没有想太多,用全c#爽爽地开发. 策划和运营要热更新? 用C#开发爽爽的日子一天一天的过去了,直到突然有一天,策划老大说:"我们得做个热更新模块!": 突然有一天,老板说:"别人游戏用Lua热更新,为什么我们不…
IIS-Apache-Tomcat的区别 IIS与Tomcat的区别 IIS是微软公司的Web服务器.主要支持ASP语言环境. Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的SJP语言环境容器,严格得说不能算是一个WEB服务器,而是Apache服务适配器. tomcat主要的任务不是WEB服务,而是支持JSP语言环境. IIS就是也款WEB服务器,支持ASP语言环境 Apache与Tomcat的区别 APA…
COCOS IDE用手机调试更新是正常的,是预想的结果,但用COCOS IDE打包发布APK,安装到手机上,热更新下载图片.JSON UI什么的都能正常更新替换,但JS脚本没有替换,这是为毛.更新文件是已经有下载到手机上了root@hwB199:/ # ls -l /data/data/org.cocos2dx.CocosJSGame/files/ls -l /data/data/org.cocos2dx.CocosJSGame/files/-rw------- u0_a113  u0_a113…
前言 最近项目集成了Tinker,开始认为集成会比较简单,但是在实际操作的过程中还是遇到了一些问题,本文就会介绍在集成过程大家基本会遇到的主要问题. 考虑一:后台的选取 目前后台功能可以通过三种方式实现: 1.自己搭建后台布丁下发系统2.第三方提供的服务,目前如原微信simsun大神的个人tinkerpatch平台,目前出于内测阶段,暂时免费.后期应该会按下发量对app进行收费.3.腾讯Bugly提供的服务,提供了热更新的下发后台,集成到了bugly的升级sdk中.免费.根据公司的精神,我们选择…
linux下维护服务器之常用命令! 第1套如下: 正则表达式: 1.如何不要文件中的空白行和注释语句: [root@localhost ~]# grep -v '^$' 文件名 |grep -v '^#' 2.如何查阅系统上面正在运作当中的程序呢? 利用静态的 ps 或者是动态的top,还能以 pstree 来查阅程序树之间的关系! 一个是叧能查阅自己 bash 程序癿『 ps -l 』一个则是可以查阅 所有系统运作癿程序『 ps aux 』 [root@bj02 ~]# ps -l F S U…
onic官方文档链接:http://ionicframework.com/docs/ 如果是新的环境会有很多坑,主要是有墙,请仔细阅读每个步骤 文档包含以下内容: l  环境搭建 l  创建demo并调试运行 l  打包APK l  添加支持热更新 l  优化启动慢问题 l  常用命令 1.      环境搭建 需要安装以下软件和插件(Android): l  安装nodeJS(自带npm) l  配置cnpm  (使用淘宝镜像取代npm) l  安装cordova和ionic2 l  安装JA…