- 博客(197)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 Web服务统一身份认证协议设计与实现
单点登录(SSO)是目前比较流行的企业业务整合的解决方案之一,它的机制是在企业网络用户访问企业网站时作一次身份认证,随后就可以对所有被授权的网络资源进行无缝的访问,而不需要多次输入自己的认证信息.Web服务具有松散耦合、语言中立、平台无关性、开放性的特性,通过对集中单点登录模型的分析和比较,提出了基于Web服务和token-id的单点登录管理框架.介绍了该系统的体系机构及关键部分的工作原理.本项目主要是采用spring boot +mysql 实现。
2023-01-15 10:22:37 3283 14
原创 java mongodb orm 实现-基于mongodb-driver开发的ORM(一:功能总览)
导论:MongoDB是一个非常有前途的数据库,MongoDB官方对自己的定位是通用数据库,其实这个定位跟MySQL有些像。虽其流行度还远未达到MySQL的水平,但笔者有个可能不恰当的比较,MongoDB就像N年前的MySQL,随着时间的推移,会变得越来越强大,也会越来越流行。由于基于mongo 官方提供的api使用比较复杂,不方便与业务开发,所以本项目基于官方api进行封装,简化了关于文档的查询,创建以及索引维护。m-dbEnglish 简体中文简介这是个什么?欢迎使用本项目。本项目基于mo
2021-11-28 17:58:30 1552
原创 PKI证书签发系统(web版)新
原来的项目进行翻新功能维护采用新的加密算法和生成证书方式。pki-new 新版本一个pki证书申请,审核和证书下载安装的管理系统软件,通过调用java自带的工具,将信息存入数据库,同时也是一个学习ssh框架的好demo,系统采用Java自带的加密算法实现CA证书的签发和发布,采用mvc模式实现证书下载,安装和统一管理。 .新版本特点:(1):采用跨平台方式进行证书生成;(2):优化证书算法(3):添加动态权限控制(4):支持异步处理功能介绍系统采用java自带秘钥工具生成CA证书,通过
2020-09-03 22:56:02 1576 14
原创 Netty游戏服务器实战开发(11):Spring+mybatis 手写分库分表策略(续)
在大型网络游戏中,传统的游戏服务器无法满足性能上的需求。所以有了分布式和微服务新起,在传统web服务器中,我们保存用户等信息基本都是利用一张单表搞定,但是在游戏服务器中,由于要求比较高,我们不能存在大表操作,即分库分表策略。在以前的文章中有关介绍分库分表的,下面我们来实战一下,首先我们做一个这样的计算。在博主开源的游戏服务器中有这样一个场景:玩家数据保存到player表中,其中将游戏数据库分为1...
2018-10-23 20:56:58 1472 1
原创 springMVC +mybatis+mysql多套数据源配置
导读- 在项目中可能有时候我们需要配置多套数据源,网上巴拉巴拉半天,都讲得太潦草了,对于第一次搞的人来说确实有点头疼,与其说在网上瞎找,还不如认真的自己动手操练一波,下面我就来介绍一下mybatis实现多套数据源的方式。 刚开始我也是和大家一样,利用mybatis的mybatis-generator-core-1.3.2从表生成xml文件,这里写个小插曲,照顾一下新手,(
2018-03-13 11:53:16 11028 22
原创 idea中搭建基于maven的ssm整合框架
自从进入一家游戏公司以后,就抛弃了eclipse转战于idea,刚开始一直很不习惯,但是用了一周以后,在打开eclipse的时候,有一种想卸载掉的冲动,好吧,我是觉得idea比eclipse好用,关于它们的战争我们就不讨论了,下面介绍一下idea中怎么搭建ssm基于maven的整合框架吧。 作为一个优秀的框架,spring一直横穿整合javaee的世界,在学习javaweb的时候,由原
2017-08-26 15:58:03 17068 8
原创 深入学习理解(8):java-ThreadLocal详解
ThreadLocal是什么?有什么用?怎么用? 1。ThreadLocal是什么 带着这样的问题我们来学习一下java并发编程中的一个重要的角色分子ThreadLocal。 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLo
2017-02-23 16:05:20 6179 8
原创 PKI证书签发系统(web版)
这几天没事干,学校安排小学期做一个pki证书签发系统,班上的学霸美女一组,哈哈!虽然90%的活都是我做的,但是帮帮女生也是可以得嘛!扯远了!看看效果吧!用的是ssh框架做的一个签发证书网站,有普通用户申请证书,然后管理员利用密钥库生成证书!提供用户下载这个证书安装!看看效果图吧!不过对前台不精通的我也只能做一个这样的界面了,实验室专业做前台的给我改了改!看看效果吧! 效果差不多是这样的。
2016-07-14 21:08:56 14095 47
原创 【无标题】
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2024-05-21 14:05:16 873
原创 CA证书签发系统(web版)
一个pki证书申请,审核和证书下载安装的管理系统软件,通过调用java自带的工具,将信息存入数据库,同时也是一个学习ssh框架的好demo,系统采用Java自带的加密算法实现CA证书的签发和发布,采用mvc模式实现证书下载,安装和统一管理。系统采用java自带秘钥工具生成CA证书,通过WEB形式展现出来,管理员审核生成证书,普通用户提交证书信息。采用idea编译环境,采用maven结构项目,可配置系统环境,方便查询,优化代码。详细代码:https://github.com/twjitm/pki-new。
2023-02-06 22:46:00 1773 1
原创 PKI证书签发系统(2.0web版)
一个pki证书申请,审核和证书下载安装的管理系统软件,通过调用java自带的工具,将信息存入数据库,同时也是一个学习ssh框架的好demo,系统采用Java自带的加密算法实现CA证书的签发和发布,采用mvc模式实现证书下载,安装和统一管理。系统采用java自带秘钥工具生成CA证书,通过WEB形式展现出来,管理员审核生成证书,普通用户提交证书信息。采用idea编译环境,采用maven结构项目,可配置系统环境,方便查询,优化代码。详细代码:https://github.com/twjitm/pki-new。
2023-02-05 10:31:49 825 1
原创 java mongodb orm 实现-基于mongodb-driver开发的ORM(二:连接维护和主键自增)
导论:MongoDB是一个非常有前途的数据库,MongoDB官方对自己的定位是通用数据库,其实这个定位跟MySQL有些像。虽其流行度还远未达到MySQL的水平,但笔者有个可能不恰当的比较,MongoDB就像N年前的MySQL,随着时间的推移,会变得越来越强大,也会越来越流行。上篇文章说到,通过mongodb-driver原生包进行开发,封装易用的接口,降低使用门槛,去除冗余的代码。使得项目更简洁一、:连接维护(编码/解码)二、:自定义-主键自增Ticket一:连接维护(编码/解码)1.1 连接c
2021-12-25 15:37:03 1288
原创 每天一点shell(1) :判断文件或者文件夹是否存在
shell 判断文件或者文件夹是否存在#shell判断文件夹是否存在 #如果文件夹不存在,创建文件夹if [ ! -d "/myfolder" ]; then mkdir /myfolderfi #shell判断文件,目录是否存在或者具有权限 folder="/var/www/"file="/var/www/log" # -x 参数判断 $folder 是否存在并且...
2019-12-14 15:47:24 362
原创 Netty游戏服务器实战开发(15):游戏服务器中的数据缓存
导读游戏服务器缓存作用非常重要:很大部分决定游戏服务器性能问题。缓存的作用在很多游戏服务器开发过程中,有需要提前加载到内存中的数据,有不需要加载到内存中的数据,当然,加载到内存中的数据可分为字典数据和部分玩家数据。比如:配表信息,玩家查询信息,玩家基础信息等。通常我们使用redis作为一个缓存中间件,当然,redis不仅用于游戏服务器,也适用于很多传统互联网行业。是一款优秀的KV缓存数据库...
2019-08-31 15:21:10 3025 7
原创 Netty游戏服务器开发实战(14):游戏推送的设计
导读- 本篇主要介绍如何实现游戏服务器推送消息到客户端或者服务器和服务器之间进行消息推送,结合Netty组件,设计一个具有推送功能的高性能游戏服务器框架。什么是推送?为何需要推送?首先,我们要明白什么是推送?推送,就是把服务器消息或者某个客户端的消息发送给另外一个客户端或者是服务器,一般对于客户端来说是一个被动接受消息的过程。在游戏服务器中,游戏活动的开始...
2019-05-25 10:43:18 2283
原创 Netty游戏服务器实战开发(13):游戏中的配表规则
在一个游戏开发过程中,少不了和策划,客户端等同学打交道。应为一个完整的游戏开发团队,有如下人员组成:1:服务器开发人员2:客户端开发人员3::策划4::美术5:其他其中还会分很多细节,比如策划可以分为场景策划,数值策划,玩法策划等等,但是作为一个策划人员不仅能够有好的游戏思想,最重要的是学会游戏中的配表。这是一个策划的基本功。规则很重要,游戏中的配表规则其实大部分主要是用来配合程序完...
2019-03-03 23:06:13 2062
原创 [已解决] java.net.ConnectException: Connection refused: no further information
程序抛出这个异常的原因多数是因为在此[host:port]没有监听,那么该如何解决这个问题呢,如下第一个要做的是看你的host和port是否写错了,如 [ 127.00.1:8080 ]第二个要看你的server是否真正的运行起来了,比如server在启动过程某些组件加载异常,会导致服务启动不成功。第三个有可能是防火墙的原因,关闭防火墙试试第四个就是如果你是自己写的socket那么检查如下...
2018-12-27 11:38:01 103828 11
转载 kafka 创建消费者报错 consumer zookeeper is not a recognized option
在做kafka测试的时候,使用命令bin/kafka-console-consumer.sh --zookeeper 192.168.0.140:2181,192.168.0.141:2181 --topic test --from-beginning启动消费者,发现一只报错consumer zookeeper is not a recognized option,搜索了半天,一只没有解决,最后,...
2018-11-17 10:36:25 529
原创 数组平衡点算法
去参加一场面试,最后面试官让写一个算法,当时我已经给出思路,可能手写的代码有点问题,面试官就死死的盯着我说,回去等通知吧。呵呵。 /** * 数组平衡点 * * @param array 数据源 * @return 返回平衡点,没有返回-1 可能存在多个 */ private static int[] balancePoint(int a...
2018-11-01 09:40:25 1202
转载 http的keep-alive和tcp的keepalive区别
1、HTTP Keep-Alive在http早期,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就断开这个tcp连接。使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd服务器的吞吐率(更少...
2018-10-28 14:48:20 1074
原创 【已解决】AbstractRoutingDataSource的determineCurrentLookupKey
在分布分表开发过程中,我们常常利用spring整合开发,在上篇文章中我们学习了如何使用分库分表策略,在测试过程中,博主偶然发现public class DynamicDataSource extends AbstractRoutingDataSource { Logger logger = LoggerFactory.getLogger("DynamicDataSource"); ...
2018-10-24 17:12:22 8011 4
原创 Netty游戏服务器实战开发(10):Netty结合kafka实现分布式消息队列
在分布式游戏服务器系统中,消息处理队列主要解决问题就是解耦系统中的业务,使得每个系统看起来功能比较单一,而且解决一些全服数据共享等问题。通常我们知道kafka是作为消息队列比较火的一种方式,其实还有(Active MQ,Rabbit MQ,Zero MQ)个人觉得kafka比较好用点,哈哈,习惯吧。同样我们来复习kafka基础。kafka基础。的内容来介绍kafka的基本安装。首先我们要...
2018-10-19 18:00:13 8940 10
原创 idea中搭建基于maven的spring-boot项目
其实我一直很想写一篇文章来说明一下如何在idea中创建一个spring-boot项目的,但是由于找工作和换工作的时间一直耽搁到现在,趁今天晚上加班的时间,终于挤出半个小时来讲述如何在idea中创建spring-boot项目。在上篇文章关于在《idea中搭建基于maven的ssm整合框架》得到读者的好拼反馈,但是由于spring配置使得spring的使用起来入门比较困难,所以有了 spring-b...
2018-10-18 21:30:06 10450 1
原创 深入学习理解(9):java:AbstractQueuedSynchronizer详解
导读:前一阵子在写轻量级RPC框架的时候,由于系统中所需要用异步RPC模型,由于系统所要求性能比较苛刻,所以基本所有耗时的操作都会采用异步调用的方式:比如异步读写DB,IO,更可能redis的操作都需要异步(主程说了,我咋办,做呗)。基于Netty的轻量级rpc框架已经开源,想去了解的小伙伴可以查看我另一篇文章。https://blog.csdn.net/baidu_23086307/art...
2018-10-01 16:18:25 436
原创 微服务架构设计基础-(2):微服务架构的特性
导读:天下大势,分久必合合久必分。软件也是一样。微服务是最新的架构风格,有望解决我们以前的架构风格所遇到的所有问题。就像其他风格一样,它也有自己的挑战。下面我们来说一下微服务架构的特性。让我们学习微服务不在迷茫。特性1. 单一职责微服务架构中的每个服务,都是具有业务逻辑的,符合高内聚、低耦合原则以及单一职责原则的单元,不同的服务通过“管道”的方式灵活组合,从而构建出庞大的系统。2. 轻...
2018-09-25 14:03:14 787
原创 编程实现一个比较任意两个软件版本号大小的函数 2018.11.01(更新)
如 1.2.3a 和 1.2.4b我写的方法,各位大大还有啥好的办法留言一下./** * * 编程实现一个比较任意两个软件版本号大小的函数,如 1.2.3a 和 1.2.4b * 当opt1大于opt2时返回true,当opt1小鱼opt2时返回false * * @param opt1 * @param opt2 * @r...
2018-09-21 15:44:15 5205
原创 Netty游戏服务器实战开发(6):Netty整合Zookeeper实现分布式服务发现与注册
1:Zookeeper基础安装zookeeper。当然,很多时候我们会在Windows上开发,所以,我们需要在本地搭建一个zookeeper环境。方便开发过程中的测试。首先我们去Apache上下载zookeeper。https://zookeeper.apache.org/下载下来后解压得到如下文件打开conf里面的zoo_simple.cfg ,拷贝一份,重新命名为zoo.cfg修改如...
2018-09-19 11:52:34 5685 6
原创 微服务架构设计基础-(1)微服务方法论和文化
微服务是最新的架构风格,有望解决我们以前的架构风格所遇到的所有问题。就像其他风格一样,它也有自己的挑战。下面我们来讨论的问题是如何在保持服务尽可能自主的同时实现微服务之间的耦合。在这里,将描述四个选项,并在结论中选择一个明确最好的方式。对我来说,微服务是一种自主服务,它对一项业务能力负全部责任。完整的职责包括演示,API,数据存储和业务逻辑。Autonomous是我的关键词,通过使服务自治,可以...
2018-09-19 10:16:40 913
原创 Netty游戏服务器实战开发(5):利用Netty打造轻量级RPC组件
简介:什么是RPC?RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。Net...
2018-09-18 12:34:43 3123 3
转载 Apache Curator实战
Apache Curator入门实战 Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量。1.Zookeeper安装部署Zookeeper的部署很简单,如果已经有Java运行环境的话,下载tarball解压后即可运行。[root@vm Temp]$ wge...
2018-09-17 17:06:16 1227
转载 分布式 - RPC同步和异步说明
要实时就用同步,要吞吐率就用异步。 同步调用流程略实现负载均衡:连接池中建立了与一个RPC-server集群的连接,连接池在返回连接的时候,需要具备负载均衡策略。 实现故障转移:连接池中建立了与一个RPC-server集群的连接,当连接池发现某一个机器的连接异常后,需要将这个机器的连接排除掉,返回正常的连接,在机器恢复后,再将连接加回来。 实现发送超时:因为是同步阻塞调用,拿到一个...
2018-09-13 17:20:12 9365
原创 mybatis异步操作数据库
很多时候我们需要用mybatis来做数据库orm,基于mybatis 优秀的基因,我们能够轻松的搞定数据库的orm。 但是mybatis一般的使用方法都是一个同步查询,主线程调用数据库查询操作,等待返回结果,这样在高并发网络情况下代价是很高的。所以我们需要封装一套提供异步查询回调机制。异步操作。提到异步操作,我们就得提到回调接口。回调接口就是通过在主线程监听其他线程执行完的结果取得返回值。或...
2018-09-13 10:54:43 11417 1
转载 如何优雅地用Redis实现分布式锁
如何优雅地用Redis实现分布式锁锁是一个很重要也很基础的概念,锁可以看做是多线程情况下访问共享资源的一种线程同步机制。这是对于单进程应用而言的,即所有线程都在同一个JVM进程里的时候,使用Java语言提供的锁机制可以起到对共享资源进行同步的作用。如果分布式环境下多个不同线程需要对共享资源进行同步,那么用Java的锁机制就无法实现了,这个时候就必须借助分布式锁来解决分布式环境下共享资源的同步问...
2018-09-05 16:01:08 403
转载 Connection reset by peer的常见原因
Connection reset by peer的常见原因:1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭; 如果知道实际连接服务器的并发客户数没有超过服务器的承载量,则有可能是中了病毒或者木马,引起网络流量异常。可以使用netstat -an查看网络连接情况。2)客户关掉了浏览器,而服务器还在给客户端发送数据;3)浏览器端按了Stop;这两种情况一般不会...
2018-08-28 18:11:24 19217
原创 Netty游戏服务器实战开发(4):自定义消息池化处理
通过上篇《Netty实战开发(3):自定义消息》我们都知道,客户端发送过来的消息我们服务器通过自定义编解码实现解析每条消息,并且做对应的处理,但是上篇介绍的重点是消息的编解码,接下来我们介绍消息的处理,并且利用线程池化技术实现消息队列处理。首先我们来复习一下线程池模型。...
2018-08-26 15:39:06 1458 1
原创 给你一个小于 60 位的整数 p ,求大于 p 的最小的数 p1 ,使得 p1 中包含数 2333 。
哈哈,没事瞎写写算法,忘大家来修复呀。 题目:给你一个小于 60 位的整数 p ,求大于 p 的最小的数 p1 ,使得 p1 中包含数 2333 。public class Test { public static void main(String[] args) { System.out.println(test("1999999999999")); }...
2018-08-10 11:04:23 949
mybatis异步操作db源码以及测试
2018-09-13
servlet怎么发布接口供android客户端访问?
2016-04-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人