yuan同学
码龄6年
关注
提问 私信
  • 博客:42,197
    42,197
    总访问量
  • 60
    原创
  • 680,075
    排名
  • 8
    粉丝
  • 0
    铁粉

个人简介:留下一点点思考。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2018-10-30
博客简介:

程序yuan同学

查看详细资料
个人成就
  • 获得23次点赞
  • 内容获得5次评论
  • 获得111次收藏
创作历程
  • 1篇
    2022年
  • 54篇
    2021年
  • 1篇
    2020年
  • 2篇
    2019年
  • 2篇
    2018年
成就勋章
TA的专栏
  • springboot源码
    2篇
  • go
    1篇
  • mysql
    7篇
  • 游戏服务端
    1篇
  • 中间件
    8篇
  • 设计模式
    5篇
  • jenkins
  • docker
    3篇
  • SpringBoot
    3篇
  • 消息队列
    1篇
  • 工具类
    1篇
  • spring
    3篇
  • jvm
    10篇
  • redis
    7篇
  • map源码
    1篇
  • unsafe
    1篇
  • 算法
    6篇
  • 二叉树
    2篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 服务器
    linux
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Leaf框架

文章目录Leaf的模块机制协议源码分析Leaf的模块机制一个Leaf开发的游戏服务器由多个模块组成,模块有一下特点:1、每个模块运行在一个单独的goroutine中2、模块间通过一套轻量的RPC机制通讯(leaf/charpc)游戏服务器在启动时进行模块的注册,例如:leaf.Run( game.Module, gate.Module, login.Module,)这里按顺序注册了game、gate、login三个模块。每个模块都需要实现接口:type Module interfa
原创
发布博客 2022.03.05 ·
7387 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

mysql---优化

文章目录优化实战策略一、尽量全值匹配优化实战策略一、尽量全值匹配CREATE TABLE `staffs`( id int primary key auto_increment, name varchar(24) not null default "" comment'姓名', age int not null default 0 comment '年龄', pos varchar(20) not null default "" comment'职位', add_time timestam
原创
发布博客 2021.11.02 ·
511 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql---索引与执行计划

文章目录索引入门什么是索引MySQL中的索引索引的分类基础语法执行语法什么是执行语法执行计划的作用执行计划的语法执行计划详解索引入门什么是索引MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。上面的理解比较抽象,举一个例子,平时看任何一本书,首先看到的都是目录,通过目录去查询书籍里面的内容会非常的迅速。上图就是一本金瓶梅的书,书籍的目录是按顺序放置的,有第一节,第二节它本身就是一种顺序存放的数据结构,是一种顺序结构。另
原创
发布博客 2021.11.01 ·
516 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

mysql---慢查询

文章目录慢查询什么是慢查询慢查询配置慢查询基本配置慢查询解读慢查询分析慢查询什么是慢查询慢查询日志,顾名思义,就是查询慢的日志,只指MySQL记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。慢查询配置慢查询基本配置1、 slow_query_log 启动停止技术慢查询日志2、slow_query_log_file 指定慢查询日志得存储路径
原创
发布博客 2021.10.21 ·
378 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

mysql---业务设计

文章目录业务设计逻辑设计范式设计数据库设计的第一大范式(字段不可拆分)数据库设计的第二大范式(单一主键)数据库设计的第三范式范式设计实战一、用户登录及用户管理二、商品信息三、供应商管理功能四、在线销售功能五、表汇总六、查询练习反范式设计什么叫反范式设计商品信息反范式设计在线销售功能反范式查询练习总结范式化设计优缺点反范式化设计优缺点业务设计逻辑设计范式设计数据库设计的第一大范式(字段不可拆分)1、数据库表中的所有字段都只具有单一属性。2、单一属性的列是由基本数据类型所构成的。3、设计出来的表都
原创
发布博客 2021.10.19 ·
658 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql---事务

文章目录什么存储引擎支持事务事务的特性隔离性级别未提交读(READ UNCOMMITED) 导致脏读已提交读(READ COMMITED)导致不可重复读可重复读(REPEATABLE READ)可串行话(SERIALIZABLE)不同隔离性级别在并发环境下的问题什么存储引擎支持事务1、查看数据库引擎是否支持事务(Innodb支持)?show engines;2、查看MySQL当前默认的存储引擎?show VARIABLES LIKE ‘%storage_engine%’;3、查看某张表的存储
原创
发布博客 2021.10.14 ·
323 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

mysql---锁

文章目录MySQL中的锁锁的比较MyISAM的表锁共享读锁独占写锁总结MySQL中的锁MySQL的锁机制比较简单其最显著的特点是不同的存储引擎支持不同的锁机制。比如:MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking)。Innodb存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况是采用行级锁。锁的比较1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。2、行级锁:开销大,加锁慢;会
原创
发布博客 2021.10.12 ·
308 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql---优化概述、架构与存储引擎

文章目录衡量指标MySqlSlap参数的使用测试一测试二测试三衡量指标TPS: Transactions Per Second(每秒传输的事物处理个数),这是指服务器每秒处理的事务数,支持事务的存储引擎如InnoDB等特有的一个性能指标。QPS: Queries Per Second(每秒查询处理量)同时适用于InnoDB和MyISAM引擎。计算:TPS = (COM_COMMIT + COM_ROLLBACK)/ UPTIMECOM_COMMIT : 表示事务提交数量COM_ROLLBAC
原创
发布博客 2021.09.27 ·
4911 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

游戏服务器---事件

  在游戏服务器上,不同模块之间会有关联,比如任务模块,等级的变化会触发不同任务的达成。此时,就要通过事件来关联两个模块。当角色升级的时候,抛出一个升级的事件,监听升级事件的模块就会被触发。先定义事件名public class EventNames { /** 玩家升级事件 */ final static public String EVENT_ROLE_LEVEL_UP = "role_level_up";}定义事件接口,所有的事件集成统一一个接口。public interface IEv
原创
发布博客 2021.09.13 ·
194 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

消息中间件---kafka---深入理解kafka

文章目录深入理解kafka集群的成员关系什么是控制器复制-卡夫卡的核心副本类型首领副本跟随者副本工作机制处理请求的内部机制生产者请求深入理解kafka集群的成员关系  Kafka使用 zookeeper来维护集群成员的信息。每个 broker都有个唯一标识符, 这个标识符可以在配置文件里指定, 也可以自动生成。 在 broker启动的时候, 它通过创建临时节点把自己的 ID注册到 zoo-keeper。 Kafka组件订阅 Zookeeper的/brokers/ids路径(broker在 zookee
原创
发布博客 2021.09.10 ·
1927 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

消息中间件---kafka---集成springboot

springboot 和kafka的整合添加pom文件<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> &l
原创
发布博客 2021.09.09 ·
163 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

消息中间件---kafka---生产者和消费者

文章目录第一个kafka程序生产者发送消息必选属性bootstrap.serverskey.serializervalue.serializer消费者接收消息必选参数group.idkafka的生产者生产者发送消息的基本流程第一个kafka程序生产者发送消息public class HelloKafkaProducer { public static void main(String[] args) { //常量可以去ProducerConfig去查看 Pro
原创
发布博客 2021.09.09 ·
2143 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

消息中间件---kafka---理论知识

文章目录kafka入门什么是kafkakafka中的基本概念消息和批次主题和分区生产者和消费者、偏移量、消费者群组Broker和集群保留消息为什么选择kafka优点常见场景活动跟踪传递消息收集指标和日志提交日志流处理kafka入门什么是kafka  Kafka可以看成一个流平台,这个平台上可以发布和订阅数据流,并把他们保存起来,进行处理。Kafka有点像消息系统,允许发布和订阅消息流,但是它和传统的消息系统有很大的差异,首先,Kafka是个现代分布式系统,以集群的方式运行,可以自由伸缩。其次,Kafk
原创
发布博客 2021.09.04 ·
414 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

设计模式---代理模式

静态代理某个对象提供一个代理,代理角色固定,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。举例子:小明现在想去追小红,但是他害羞不敢直接追,通过小代去追小红。这个时候,小明就是被代理类,小代就是代理类,因为小明要让小代去送公仔、送花、送巧克力,这些行为,小代肯定也是要有的,所以小明和小代是集成同一个接口。最求者和代理者的公共行为:/** *
原创
发布博客 2021.09.03 ·
120 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计模式---装饰模式

装饰模式定义:动态地给一个对象添加一些额外的职能,就增加功能来说,装饰模式比生成子类更为灵活。举列子:衣服、帽子、鞋子等可以理解为对人的装饰。"Component"是定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责(不是必须的)。Decorator装饰抽象类,继承了Component,从外类来拓展Component类的功能,但对于Component来说,是无需知道Decorator的存在的。至于ConcreteDe
原创
发布博客 2021.09.03 ·
92 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

消息中间件---RabbitMQ---安装和集群

文章目录RabbitMQ安装安装过程常用端口可能的问题管理RabbitMQ管理日志一般存放位置管理虚拟主机启动和关闭rabbitmq以服务方式以应用程序方式单独关闭RabbitMQ应用用户管理用户权限控制设置用户角色RabbitMQ 的用户角色分类查看RabbitMQ集群RabbitMQ内建集群内建集群的实际目标可以保证消息的万无一失吗?集群中的队列和交换器队列交换器元数据集群中的节点构建我们自己的集群RabbitMQ安装安装过程在Linux(以CentOS7为例)下安装RabbitMQ(版本根据需要
原创
发布博客 2021.09.01 ·
523 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

消息中间件---RabbitMQ---springboot的集成

SpringBoot整合RabbitMQpom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.
原创
发布博客 2021.08.31 ·
109 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计模式---策略模式

策略模式:它定义了算法家族,分别封装起来,让它们之间开源互相替代,此模式让算法的变化,不会影响到使用算法的客户。运用场景:商场收银软件,营业员根据客户所购买的单价和数量,向客户收费。但是根据活动的不同,每次的价格都不一样。比如,全场打八折、全场打五折、满300减100等活动。如果用if-else作处理的话,就显得很累赘,加上如果拓展更多的活动,只能添加更多的分支。CashContext类,是对策略的运用。public class CashContext {//维护着策略类的引用,调用策略,只需要设
原创
发布博客 2021.08.31 ·
80 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

消息中间件---RabbitMQ---基础与原生api的使用

文章目录AMQP概论AMQP包括的要素生产者、消费者、消息信道交换机、队列、绑定、路由键AMQP概论AMQP  AMQP是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递信息,并不受客户端/中间件不同产品,不同的开发语言等条件限制。目标是实现一种在全行业广泛使用的标准消息中间件技术,以便降低企业和系统集成的开销,并且向大众提供工业级的集成服务。主要实现有RabbitMQ。包括的要素生产者、消费者、消息  生产者: 消息的创建者,发送到rabbitmq;  
原创
发布博客 2021.08.28 ·
1267 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Docker--3--手动打包springboot镜像

文章目录手动打包springboot镜像手动打包springboot镜像  我们需要对业务项目打包发布,一样需要制作成为业务镜像,供运维使用,下面讲述springboot的制作过程:  1、将springboot打好的jar包上传  2、在同级目录下,创建Dockerfile文件,内容如下:3、dockerfile打包业务镜像4、启动镜像,即得到业务运行docker run -d -p 8090:8090 --name member member:v15、浏览器打开页面校验:http
原创
发布博客 2021.08.18 ·
218 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多