自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(238)
  • 资源 (7)
  • 收藏
  • 关注

转载 skynet框架应用 (六) 服务调度

​ 每次使用skynet.fork其实都是从协程池中获取未被使用的协程,并把该协程加入到fork队列中,等待一个消息调度,然后会依次把fork队列中协程拿出来执行一遍,执行结束后,会把协程重新丢入协程池中,这样可以避免重复开启关闭协程的额外开销。以上做法是不正确的,在skynet.start函数中的服务初始化代码不允许有阻塞函数的存在,服务的初始化要求尽量快的执行完成,所有的业务逻辑代码不会写在skynet.start 里面。当然,一个好的服务端,肯定不能一直出现中断掉的协程。

2024-05-11 09:06:30 13

转载 skynet框架应用 (五) 服务别名

​ 每个服务启动之后,都有一个整形数来表示id,也可以使用字符串id来表示,例如::01000010,其实就是把id:0x01000010转换成字符串。​ 但是这个数字的表示方式会根据服务的启动先后顺序而变化,不是一个固定的值。如果想要方便的获取某个服务,那么可以通过给服务设置别名来。​。

2024-05-11 08:44:39 112

转载 skynet框架应用 (四) 服务类型

​ 调用queryservice时,也可以选择是否传递第一个参数true, 表示查询的是当前skynet节点的全局唯一服,还是所有节点的全局唯一服。第一次创建唯一服,返回服务地址,第二次创建的时候不会正常创建服务,只是返回第一次创建的服务地址。​ skynet中的服务分为普通服务与全局唯一服务。​ 每调用一次创建接口就会创建出一个对应的服务实例,可以同时创建成千上万个,用唯一的id来区分每个服务实例。全局唯一的服务等同于单例,即不管调用多少次创建接口,最后都只会创建一个此类型的服务实例,且全局唯一。

2024-05-11 08:32:43 7

转载 skynet框架应用 (三) 构建服务的基础API

​ 以上出现找不到logger.so的情况,其实不仅仅是这个模块找不到,所有的模块都找不到了,因为在config包含的路劲conf.path中,所有的模块路劲的引入全部依靠着相对路劲。也就是在skynet.start之前运行。另一种方式启动想要的服务,可以在main.lua运行后,在console直接输入需要启动的服务名称.1、预先加载的环境变量是在conf中配置的,加载完成后,所有的service都能去获取这些变量。​ 4、环境变量设置完成后,及时服务退出了,环境变量依然存在,所以不要滥用环境变量。

2024-05-11 08:08:00 11

转载 skynet框架应用 (二) 搭建skynet

原文链接:https://blog.csdn.net/qq769651718/article/details/79432809。我们要运行的的客户端是example/client.lua 这个lua脚本文件,那么首先你要有一个lua虚拟机程序。​ 注意:如果安装失败,请先安装一下只支持库。

2024-05-10 13:54:54 9

转载 skynet框架应用 (一) skynet介绍

​ 每个服务都是严格的被动的消息驱动的,以一个统一的 callback 函数的形式交给框架。强隔离性: Actor中的方法不能由外部直接调用,所有的一切都通过消息传递进行的,从而避免了Actor之间的数据共享,想要观察到另一个Actor的状态变化只能通过消息传递进行询问。是一个轻量级的为在线游戏服务器打造的框架。状态(state):Actor中的状态指的是Actor对象的变量信息,状态由Actor自己管理,避免了并发环境下的锁和内存原子性等问题。二、一个服务向另一个服务发送的消息的次序是严格保证的。

2024-05-10 13:43:10 7

原创 unity基础(二)

当使用Unity的LoadSceneMode.Additive时,开发人员可以在当前场景中加载一个新的场景,而不需要卸载当前场景。//这个是获取真正的激活状态,就是是否显示出来了 例如自己显示否跟父物体也有关 这个包含了。//Asset路径 移动端 主机游戏:可读 不可写 pc端:可读可写。// Assets下面的streamingAssetsPath路径。//只是激活状态的勾有没有打上 也就是只判断自己。//获取脚本挂载的游戏物体。//场景中最外层的游戏物体。//场景是否加载完成。

2024-05-07 09:39:38 589

原创 unity基础(一)

通过按照上述步骤,在脚本执行顺序列表中将 ScriptA 移动到 ScriptB 之前,然后保存设置,就成功地设置了脚本的执行顺序。在 Unity 中,如果有多个脚本,并且它们之间的执行顺序很重要,可以通过编辑器设置来确保它们按照自己期望的顺序执行。通过在 Unity 编辑器中设置脚本的执行顺序,可以确保它们按照自己期望的顺序执行,从而有效地管理项目中的脚本执行逻辑。这样,可以确保一个脚本在另一个脚本之前执行,也可以在出现的面板中点击+号,选择要设置顺序的脚本。这样就成功地设置了脚本的执行顺序。

2024-05-06 09:18:09 924

原创 代码事件派发机制(观察者模式)

通过 AddListener 方法可以为指定事件名称注册一个事件监听器,而 Dispatch 方法用于派发事件并通知相应的监听器。在 dispatch() 方法中,我们检查指定事件名称的监听器列表是否存在,然后依次调用每个监听器函数,并将事件数据作为参数传递给它们。在实际的应用中,你可以根据需要扩展和定制事件调度器,添加更多的事件和监听器,以实现更复杂的业务逻辑。最后,在示例的最后部分,我们通过调用 dispatch() 方法模拟触发了两个事件,然后相应的监听器函数被调用并处理事件。

2023-10-07 11:21:55 412

原创 随机算法了解

伪随机数生成器是确定性的,它们的输出是基于一个固定的种子或状态值。因此,如果你需要更可靠和高质量的真随机数,建议使用专门的硬件设备或第三方真随机数服务来获取随机数。请注意,rand.Read() 函数在获取真随机数时可能会阻塞,这取决于底层操作系统的实现和可用的随机源。线性同余算法是一种常见的伪随机数生成算法,它可以生成一系列看起来随机的数字序列。因此,在实际应用中,如果需要高质量的伪随机数序列,建议选择更复杂和安全的伪随机数生成算法,或者使用真随机数生成器。c:偏移量,用于控制序列中的移动。

2023-10-07 10:54:56 352

转载 【idea错误解决】Error:java: 不再支持源选项 5。请使用 6 或更高版本。

NO1.点击File—>Project StructureNO2.点击左侧栏Modules–>找到对应的language levelNO3.保存以上修改,点击File–>Settings以上操作即可解决idea报的此类错误

2021-03-10 11:22:55 512

原创 简单PHP代码实现一个orm

<?phpabstract class Model { protected $pk = 'id'; protected }

2021-03-02 15:38:04 282

转载 PHP7垃圾回收机制详解(附GC处理完整流程图)

垃圾回收:简称GC。顾名思义,就是废物重利用的意思。说垃圾回收机制之前,先接触一下内存泄漏。内存泄漏:某大神重口味充满画面感的形象解释:大概意思就是申请了一块地儿拉了会儿屎,拉完后不收拾,那么那块儿地就算是糟蹋了,地越用越少,最后一地全是屎。说到底一句,用了记得还。一定程度上说,垃圾回收机制就是用来擦屁股的。c语言垃圾回收机制:如果用过C语言,那么申请内存的方式是malloc或者是calloc,然后你用完这个内存后,一定不要忘了用free函数去释放掉,这就是手动垃圾回收,一般都是大神用这种

2021-03-01 16:26:08 331

转载 彻底解决Intellij IDEA中文乱码问题

关于JAVA IDE开发工具,Eclipse系列和Intelli IDEA是大部分公司的主要选择,从开发者的选择角度,Intellij IDEA似乎比Eclipse系列更受欢迎一些。当我们使用Intellij IDEA开发时,我们发现出现中文乱码问题,造成中文乱码的根本原因时开发工具和系统环境编码格式不匹配,本篇采用理论结合实际的角度,彻底解决该问题。一 Intellij IDEA乱码问题重现如下图所示,Intellij IDEA显示中文为乱码。二 解决问题(一)问题识别根据Intellij

2021-02-07 11:33:53 442

转载 怎么理解PHP代理模式

本篇文章主要给大家用实例代码来详细介绍PHP代理模式。在前面的文章中,我们已经给大家简单介绍了PHP代理模式的基础概念,相信大家对代理模式也有了一点了解。本节内容就结合具体的代码示例,给大家介绍PHP代理模式。代码如下:/* * 代理模式 *///代理抽象接口interface shop { public function buy($title);}//原来的CD商店,被代理对象class CDShop implements shop { public funct

2021-02-04 18:14:35 121

转载 为什么明知违法,互联网大厂还在提倡996?

“互联网大厂又不差几个钱,干嘛不能多招几个人,非要让员工996 ?”1 效率诅咒所有公司的本质就是追求效率。虽然有些公司未必能理解这句话,但他们本质上还是在追求效率。从早些年某些厂房24小时不停工,到某些物流仓储公司投入重金采用机器人分拣,从西贝莜面村优化菜单提高翻台率,到互联网公司强行996解除35岁以上的员工,本质上没有任何区别,都是在追求效率。差异的是,有些合法,有些不合理,有些不合法。‍‍为什么不是传统公司,反而看上去很高科技的互联网公司在 996?因为传统公司大多是一个完整的价值.

2021-01-19 11:22:05 781

转载 日志处理两大生态Splunk和ELK深度对比

随着Splunk越来越被大家熟知和认可,现在市面上也不断涌各种同类产品,作为大数据搜索界的翘楚Splunk和ElasticSearch,绝对值得我们去学习,探索和使用,因此为了造福Splunk的铁粉和新粉们,小编特邀了Splunk的资深架构师,江湖人称“陶指导”的陶刚为大家就架构,功能,产品线,概念等方面将Splunk和ElasticSearch做了一下全方位的对比,希望能够给大家在制定大数据搜索方案的时候有所帮助。陶刚在Splunk上海担任资深架构师,负责数据采集和云平台产品的技术架构。 拥有丰富的企业

2021-01-06 10:15:06 927

转载 MySQL的连接池、异步、断线重连

MySQL长连接MySQL短连接每次请求操作数据库都需要建立与MySQL服务器建立TCP连接,这是需要时间开销的。TCP连接需要3次网络通信。这样就增加了一定的延时和额外的IO消耗。请求结束后会关闭MySQL连接,还会发生3/4次网络通信。close操作不会增加响应延时,原因是close后是由操作系统自动进行通信的,应用程序感知不到长连接就可以避免每次请求都创建连接的开销,节省了时间和IO消耗。提升了PHP程序的性能。断线重连在cli环境下,PHP程序需要长时间运行,客户端与MySQL服务器之

2021-01-04 11:42:54 486

转载 简述微服务架构

作者:老刘链接:https://www.zhihu.com/question/65502802/answer/802678798来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。一文详解微服务架构本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程

2021-01-04 11:39:49 325

转载 java注册数据库驱动

传统的使用jdbc来访问数据库的流程为:Class.forName(“com.mysql.jdbc.Driver”);String url = “jdbc:mysql://localhost:3306/test?user=root&password=123456″;Connection con = DriverManager.getConnection(url);Statement statement = con.createStatement();最开始使用的时候,不明白为什么首先要加

2020-12-06 17:15:16 2039

转载 MySQL事务

1. 事务的基本介绍 1. 概念: * 如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。 2. 操作 1. 开启事务: start transaction; 2. 回滚:rollback; 3. 提交:commit 3. 例子: CREATE TABLE account ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10), bala

2020-11-27 15:39:32 98

原创 java JUnit

JUnit是什么?JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道

2020-11-25 19:24:16 1466

原创 java开发常用快捷键

IDE: IDEA快速生成main方法psvm 回车快速生成输出代码sout 回车代码补全Ctrl+Alt+Space: 内容提示查看源码Ctrl+B重写toStringAlt+Insert 选择toString在类的空白区域,右键->Generate-> 选择toString重写equals方法alt + insert 选择equals() and hashCode(),IntelliJDefau

2020-09-25 15:35:13 439

转载 单点登录原理

一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求;要鉴别浏览器请求,必须清楚浏览器请求状态。既然http协议无状态,那就让服务器

2020-08-27 07:12:17 203

转载 Laravel Broadcaster 进阶使用 & 原理分析

上一篇简单介绍了什么是 Laravel 广播,本篇我们来剖析一下 Laravel 广播的原理,以及使用时的注意事项。正好看到一篇老外写的搭建攻略,也非常不错:https://medium.com/@dennissmink/laravel-echo-server-how-to-24d5778ece8b开始使用Laravel App Server - 应用服务端修改 .env 的 BROADCAST_DRIVER = redis,同时启用 QUEUE_DRIVER 队列服务,广播队列应独立一条,默认走

2020-08-25 09:16:48 530

转载 Laravel Broadcasting广播机制(Redis + socket.io)-学习实例

借助Laravel Broadcasting你可以使用上时下很热的Websocket技术。注意:请务必使用较新版本的 Laravel。Laravel在最近几个版本进行过比较大的重构,比如路由从 app\Http\routes.php 拆分为到 routes 目录下的多个文件,包括广播在内的各个附加组件也都进行了重构并正式写入文档。所以网上有些教程(特别是入门教程)可能是根据旧版本来写的,容易让你迷惑。当安装完Laravel后执行以下命令查看Laravel版本php artisan --version如

2020-08-25 09:02:11 923

转载 实时聊天室:基于Laravel+Pusher+Vue通过事件广播实现

之前有说过要整理出一篇事件广播的教程,今天终于有时间把这篇文章给写了出来,本次的教程是基于Laravel+Pusher+Vue,以事件广播作为核心技术,让你可以快速搭建起一个实时聊天室应用,话不多说,让我们来直接看看具体的内容吧。应用初始化安装配置首先还是通过 Composer 安装一个全新的聊天室应用:1composer create-project laravel/laravel chatroom --prefer-dist由于要用到事件广播,所以需要取消 config/app.php 中广

2020-08-25 08:25:43 685

转载 深入浅出 Laravel Echo

看源代码,解析一次完整的 public channel 下发流程。此图来自网上,如有侵权,通知我删除通过上图,我们至少要知道两件事:Laravel 和我们的前端 (vue) 没有直接关联,它们通过 Socket.io Server 来做中转,这是怎么做到的呢?怎么发送 Brocadcasted Data?下面来一一解析。BroadcastServiceProviderBroadcastServiceProvider 主要包含了 Broadcast 相关的五个驱动器、Broadcast 事件

2020-08-24 08:53:52 367

转载 简单 16 步走一遍 Laravel Echo 的使用

官方文档推荐使用 Pusher 或者 laravel-echo-server (是一个使用 NodeJS + Socket.IO 实现的 WebSocket 服务端)。在国内,个人还是不推荐使用 Pusher,访问速度有所影响,而且其还是一个商业产品。今天利用最简便的「16」步,走一遍代码集成 laradock 和 laravel-echo-server 来使用 Laravel Echo。搭建基础环境// 1. new projectlaravel new echolearning// 2.

2020-08-24 08:17:01 1344

转载 Laravel Broadcast——广播系统源码剖析

在现代的 web 应用程序中,WebSockets 被用来实现需要实时、即时更新的接口。当服务器上的数据被更新后,更新信息将通过 WebSocket 连接发送到客户端等待处理。相比于不停地轮询应用程序,WebSocket 是一种更加可靠和高效的选择。我们先用一个电子商务网站作为例子来概览一下事件广播。当用户在查看自己的订单时,我们不希望他们必须通过刷新页面才能看到状态更新。我们希望一旦有更新时就主动将更新信息广播到客户端。laravel 的广播系统和队列系统类似,需要两个进程协作,一个是 laravel

2020-08-24 07:58:55 530

转载 基于socket.io的php扩展介绍---phpsocket.io

工具地址:https://github.com/walkor/phpsocket.iophpsocket.io是由workerman根据socket.IO扩展的用于php服务端通讯组件,后台服务用workerman监听端口,处理事件回调.socket.io-client客户端socket.io.js 供前端界面初始化io下面是phpsocket.io操作手册:安装请使用composer集成phpsocket.io。脚本中引用vendor中的autoload.php实现SocketIO相关类的加载

2020-08-22 18:48:20 304 1

转载 workerman和thinkphp完美结合使用源码

逛论坛看到很多thinkphper在问如何将workerman集成到thinkphp中, 现在特意奉上源码,经过本人自测可以运行下载workerman, 放入thinkphp,注意与Home平级,就把workerman当做是一个模块。进入Home/Controller目录,新建WorkermanController.class.php直接上源码,这里我是以守护进程方式运行的,调试的话,可以去掉daemonize = true 这行.<?phpnamespace Admin\Controlle

2020-08-22 18:45:56 361

转载 thinkphp5.0整合phpsocketio完整攻略(绕坑)

这篇文章主要介绍了thinkphp5.0整合phpsocketio完整攻略(绕坑),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧PHPSocket.IO是基于workerman开发的php版本的socket.IO服务。可用于服务器消息的推送、聊天室、客服系统的开发使用环境: thinkphp5.0项目需求前端下单,后台接受,并立即做出提示。例如:美团外卖,客户端下单成功后,商家端就会立即有接单语音提示。开发环境thinkphp5.0phpsocketio

2020-08-22 18:40:35 1111 1

转载 php使用socket.io进行tcp通讯

安装socket.io库切换国内镜像 composer config -g repo.packagist composerhttps://packagist.phpcomposer.com切换国外镜像: composer config -g repo.packagist composerhttps://packagist.org下载扩展库 composer require workerman/phpsocket.io启动入口文件<?php// [ 应用入口文件 ]namespac

2020-08-22 17:26:09 670

转载 socket.io的基本用法

今天用nodejs和socket.io实现在线聊天功能。总结一下socket.io的基本用法首先安装socket包npm install socket.io在服务器端引用const socketio = require("socket.io");安装完包,引用这个socket的js文件 。他的路径node_modules/socket.io-client/dist/socket.io.js在客户端,即index.html文件中引用<script src="js/sock

2020-08-22 16:13:12 944

转载 WebSocket简介

1. 什么是 WebSocket提到 WebSocket,我首先会想到 “及时通讯” 和 “推送” 这类词。在 WebSocket 以前,很多网站通过其他方式来推送信息,下面我们先看看以前的推送方式,这样,有比较才能看出 WebSocket 的优势。1.1 (短)轮询(Polling)这种方式下,client 每隔一段时间都会向 server 发送 http 请求,服务器收到请求后,将最新的数据发回给 client。一开始必须通过提交表单的形式,这样的后果就是传输很多冗余的数据,浪费了带宽。后来 A

2020-08-22 15:57:15 187

转载 Redis发布订阅(pub/sub)命令介绍

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。一:命令介绍PSUBSCRIBE pattern [pattern1 ....]说明:订阅一个或多个符合给定模式的频道,每个模式以*作为匹配符参数:pattern(给定的模式)返回:接受到的信息PUNSUBSCRIBE pattern [pattern1 ....]说明:用于退订所有给定模式的频道参数:pattern(给定的模式)返回:这个命令在不同的客户端中有

2020-08-22 15:14:15 591

转载 Laravel Queue——消息队列任务处理器源码剖析

运行队列处理器队列处理器的设置Laravel 包含一个队列处理器,当新任务被推到队列中时它能处理这些任务。你可以通过 queue:work 命令来运行处理器。要注意,一旦 queue:work 命令开始,它将一直运行,直到你手动停止或者你关闭控制台:php artisan queue:work可以指定队列处理器所使用的连接。 php artisan queue:work redis可以自定义队列处理器,方式是处理给定连接的特定队列。 php artisan queue:work redis -

2020-08-21 08:49:47 713

转载 Laravel Queue——消息队列任务与分发源码剖析

在实际的项目开发中,我们经常会遇到需要轻量级队列的情形,例如发短信、发邮件等,这些任务不足以使用 kafka、RabbitMQ 等重量级的消息队列,但是又的确需要异步、重试、并发控制等功能。通常来说,我们经常会使用 Redis、Beanstalk、Amazon SQS 来实现相关功能,laravel 为此对不同的后台队列服务提供统一的 API,本文将会介绍应用最为广泛的 redis 队列。本文参考文档资料:使用 Laravel Queue 不得不明白的知识Laravel 的消息队列剖析背景知识在讲

2020-08-20 09:24:05 492

转载 Laravel 的消息队列剖析

在实际工作中也不止遇见过一次这个问题,我在想着以前是怎么处理的呢?我记得当初在上家公司的时候直接使用的是 laravel 的 queue 来实现的。当然,这里说的 laravel 的 queue 实际上也是基于 redis 的队列实现的。正好今天遇上这个问题,追下底层机制。使用如下:http://learnku.com/docs/laravel/5.3/queues// 创建10分钟后执行的任务$job = (new ProcessPodcast($pocast)) -&gt

2020-08-20 08:43:26 441

资料.rar redis java jar包 window下redis软件

window 的redis软件 redis的jar包

2021-03-08

java_json_lib.rar

java的json解析 lib

2021-03-04

lib.rar资源包~~~~

jstl包

2021-02-05

简单登录代码 java

简单的java的一个登录代码 案例

2021-01-03

JavaEE7-api手册

JavaEE7手册

2021-01-02

jsoup-1.11.2.jar JsoupXpath-0.3.2

java的两个包 JsoupXpath-0.3.2 jsoup-1.11.2 解析xml

2020-12-26

java jdbcTemplate 资源及实例代码

spring 包 druid包 cp3包 数据mysql链接包

2020-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除