- netty4源码阅读与分析---netty线程模型
红尘之一骑
javaNIOnetty源码阅读与分析
本文主要说下我自己对netty线程模型的理解,以及这样的线程模型的好处。通俗的来讲,netty的线程模型描述的就是老板和员工的故事。老板(通常情况下是一个老板)负责接活,与客户沟通,协调(netty的accept),谈成后(通道建立),他需要从员工中选出一位员工来负责处理后续具体的事宜(worker线程,这里我们有16位员工,编号1-16),员工做事时按照任务的先后顺序进行处理,这样可以避免错乱,
- IO模型及Netty线程模型
一指禅心
IO/Nettynetty网络
Netty简介1.简介版本:Netty4.XNetty是基于NIO的异步网络通信框架能快速的搭建高性能易扩展的网络应用程序(服务器/客户端)2.特征设计适用于各种传输类型的统一API-阻塞和非阻塞套接字基于灵活且可扩展的事件模型,可将关注点明确分离高度可定制的线程模型-单线程,一个或多个线程池真正的无连接数据报套接字支持(从3.1开始)性能更高的吞吐量,更低的延迟减少资源消耗减少不必要的内存复制安
- docker elasticsearch8启动失败
沙漠炫神
docker运维elasticsearchelk
dockerelasticsearch8.12.0启动后提示这个,并且始终无法访问localhost:9200receivedplaintexthttptrafficonanhttpschannel,closingconnectionNetty4HttpChannel解决方案:重新创建elasticsearch容器,加上-expack.security.enabled=false满血复活
- 19.kubernetes上部署Redis主从并实现读写分离
CodingDemo
Kubernetes入门实战kubernetesredis容器
介绍部署Redis主从首先需要确定Redis的master节点和slave节点,由于Kubernetes上的Pod默认是没有固定IP的,这里使用HeadlessServices结合StatefulSet,为每个Redis服务的Pod分配一个固定的DNS记录,就可以达到明确主从节点的目的camellia-redis-proxy是一款高性能的redis代理,使用netty4开发,主要特性如下:支持代理
- Netty导读
天罚神
netty4javanio
Netty导读一、一些资讯01Netty4、5版本02NettyNio03常见的使用场景二、阅读建议01Java多线程编程02项目实践03源码阅读策略一、一些资讯01Netty4、5版本现在稳定推荐使用的主流版本还是Netty4,Netty5中使用了ForkJoinPool,增加了代码的复杂度,但是对性能的改善却不明显,所以这个版本不推荐使用,官网也没有提供下载链接。Netty是一个高性能、异步事
- 「高并发通信框架Netty4 源码解读(二)」NIO的前世今生及核心概念
源码之路
Netty底层使用的是JavaNIO,是JDK自带的,NIO三个核心概念包括Buffer、Channel和Selector,我们解NIO的前世今生。0.前言计算机毫无用处,除了答案什么也没有。——毕加索本专题介绍了Java平台上的高级输入/输出,具体点说,就是使用Java2标准版(J2SE)软件开发包(SDK)1.4及以后版本进行的输入/输出。J2SE1.4版代号Merlin,包含可观的I/O新特
- Dubbo源码解析第一期:如何使用Netty4构建RPC
飞向札幌的班机
dubbodubborpc网络协议
一、背景早期学习和使用Dubbo的时候(那时候Dubbo还没成为Apache顶级项目),写过一些源码解读,但随着Dubbo发生了翻天覆地的变化,那些文章早已过时,所以现在计划针对最新的ApacheDubbo源码来进行“阅读理解”,希望和大家一起再探Dubbo的实现。由于能力有限,如果文章有错误的地方,欢迎大家留言指正。本期的主题是Dubbo如何使用Netty4构建RPC来通讯。二、Server端视
- 「高并发通信框架Netty4 源码解读(六)」NIO通道之Socket通道
源码之路
socket网络通信太重要了。也是本专题的重中之重,所以小编单独写一篇文章来介绍Socket通道。Socket通道有与文件通道不同的特征。新的socket通道类可以运行非阻塞模式并且是可选择的。这两个性能可以激活程序(如网络服务器和中间件组件)巨大的可伸缩性和灵活性。本节中我们会看到,再也没有为每个socket连接使用一个线程的必要了,也避免了管理大量线程所需的上下文交换总开销。借助新的NIO类,
- Elasticsearch启动后访问9200失败
诸葛苍穹
GIS开发elasticsearch大数据
receivedplaintexthttptrafficonanhttpschannel,closingconnectionNetty4HttpChannelreceivedplaintexthttptrafficonanhttpschannel,closingconnectionNetty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200,remo
- java 从零开始手写 RPC (04) -序列化
老马啸西风2020
序列化java从零开始手写RPC(01)基于socket实现java从零开始手写RPC(02)-netty4实现客户端和服务端java从零开始手写RPC(03)如何实现客户端调用服务端?前面几节我们实现了最基础的客户端调用服务端,这一节来学习一下通讯中的对象序列化。fastjson为什么需要序列化netty底层都是基于ByteBuf进行通讯的。前面我们通过编码器/解码器专门为计算的入参/出参进行处
- Netty源码分析----NioEventLoop之任务队列
_六道木
(*文章基于Netty4.1.22版本)这篇文章主要分析一下NioEventLoop中任务队列相关的代码源码分析taskQueueexecute方法调用的时候或者执行完startThread方法,会调用addTask添加任务protectedvoidaddTask(Runnabletask){if(!offerTask(task)){reject(task);}}finalbooleanoffer
- netty4.x学习四http服务器的搭建
昨日已逝去
通过学习了解到netty可以像tomcat一样搭建一个httpServer服务器,这里简单的实现一下。首先,我们介绍一下httpRequest认识Http请求在动手写Netty框架之前,我们先要了解http请求的组成,如下图:image.pngHTTPRequest第一部分是包含的头信息HttpContent里面包含的是数据,可以后续有多个HttpContent部分LastHttpContent标
- netty4服务器发送消息,netty 服务器端主动发消息给客户端
枯叶蚊
netty4服务器发送消息
netty服务器端主动发消息给客户端内容精选换一换客户在云容器引擎上搭建服务为手机应用订阅信息。首先客户端会向部署在CCE集群上的服务端(redis)发起请求,成功订阅信息服务。后继服务端侧会定时推送订阅的消息给客户端。服务端部署后,第一次订阅信息通信正常,但是10分钟内没有数据通信,客户端就接收不到订阅信息了。客户端第一次向服务端建立通信链接的时候(订阅),会主动开放对服务端的通信权限设备接入到
- Netty 源码分析 —— NIO 基础(五)之零拷贝与其它源码解读
小安的大情调
我准备战斗到最后,不是因为我勇敢,是我想见证一切。--双雪涛《猎人》[TOC]Thinking一个技术,为什么要用它,解决了那些问题?如果不用会怎么样,有没有其它的解决方法?对比其它的解决方案,为什么最终选择了这种,都有何利弊?你觉得项目中还有那些地方可以用到,如果用了会带来那些问题?这些问题你又如何去解决的呢?本文基于Netty4.1.45.Final-SNAPSHOT1、NIO堆外内存与零拷贝
- java 从零开始手写 RPC (06) reflect 反射实现通用调用之客户端
老马啸西风2020
通用调用java从零开始手写RPC(01)基于socket实现java从零开始手写RPC(02)-netty4实现客户端和服务端java从零开始手写RPC(03)如何实现客户端调用服务端?java从零开始手写RPC(04)-序列化上一篇我们介绍了,如何实现基于反射的通用服务端。这一节我们来一起学习下如何实现通用客户端。因为内容较多,所以拆分为2个部分。基本思路所有的方法调用,基于反射进行相关处理实
- java netty实现tcp协议_Netty实现网络通信
何为自律
javanetty实现tcp协议
Netty是一个JavaNIO客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议。Netty大大简化了网络程序的开发过程比如TCP和UDP的socket服务的开发。更多关于Netty的知识,可以参阅《Netty4.x用户指南》(https://github.com/waylau/netty-4-user-guide)下面,就基于Netty快速实现一个聊天小程序。准备J
- Netty内存模型-PoolChunk
薛定谔的猫Plus
1概述从netty4开始,netty加入了内存池管理,采用内存池管理比普通的newByteBuf性能提高了数十倍。首先介绍PoolChunk2原理PoolChunk主要负责内存块的分配与回收,首先来看看两个重要的术语。page:可以分配的最小的内存块单位。chunk:一堆page的集合。image上图中是一个默认大小的chunk,由2048个page组成了一个chunk,一个page的大小为819
- netty4.x使用小记
九号自行车司机
HelloWorld引入netty包io.nettynetty-all4.1.33.Final实现handlerimportio.netty.buffer.ByteBuf;importio.netty.channel.ChannelHandlerContext;importio.netty.channel.ChannelInboundHandlerAdapter;/***Handlesaserve
- Netty4-Netty入门-模型理论
最好束手就擒
Javajava开发语言netty
Netty官网说明Netty是由JBOSS提供的一个Java开源框架。Netty提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络IO程序Netty可以帮助你快速、简单的开发出一个网络应用,相当于简化和流程化了NIO的开发过程Netty是目前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,知名的Elasticsea
- springboot整合grpc
向大阳在此
javaprotobufspringbootgrpc
springboot整合grpc一、简介二、proto3三、SpringBoot整合Grpc)一、简介GRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP2协议,基于protobuf3.x,基于Netty4.x+。对于开发者而言:1)需要使用protobuf定义接口,即.proto文件2)然后使用compile工具生成特定语言的执行代码,比如JAVA、C/C++、Python等
- Spring boot 整合grpc 运用
何xiao树
springbootqt后端
文章目录GRPC基础概念:ProtocolBuffers:proto基础语法:调用类型:Springboot整合grpc项目结构:整合代码:父pomproto模块服务端:客户端:实际调用:原生集成GRPC基础概念:GRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP2协议,基于protobuf3.x,基于Netty4.x.ProtocolBuffers:一个跨语言、跨平台的具有
- 【手撸RPC框架】SpringBoot+Netty4实现RPC框架
最怕的其实是孤单
【手撸RPC框架】SpringBoot+Netty4实现RPC框架线程模型Netty高性能架构设计简单了解React线程模型,参考文章【五分钟快速理解Reactor模型】举例说明:Reactor的三种线程模型线程模型1:传统阻塞I/O服务模型模型特点:采用阻塞IO模式获取输入的数据每个链接都需要独立的线程完成数据的输入,业务处理、数据返回。问题分析:当并发数很大,就会创建大量的线程,占用很大系统资
- 基础知识之什么是I/O
燕然一勒
操作系统操作系统linuxunixI/O
本文内容来之书籍《Netty4核心原理与手写RPC框架实战》1.什么是I/O我们都知道在UNIX世界里一切皆文件,而文件是什么呢?文件就是一串二进制流而已,其实不管是Socket,还是FIFO(FirstInputFirstOutput,先进先出队列))、管道、终端。对计算机来说,一切都是文件,一切都是流。在信息交换的过程中,计算机都是对这些流进行数据的收发操作,简称为I/O操作(Inputand
- 「高并发通信框架Netty4 源码解读(七)」NIO通道之Selector选择器
源码之路
选择器提供选择执行已经就绪的任务的能力,这使得多元I/O成为可能。就绪选择和多元执行使得单线程能够有效率地同时管理多个I/O通道(channels)。C/C++代码的工具箱中,许多年前就已经有select()和poll()这两个POSIX(可移植性操作系统接口)系统调用可供使用了。许过操作系统也提供相似的功能,但对Java程序员来说,就绪选择功能直到JDK1.4才成为可行的方案。对于主要的工作经验
- Netty自带的心跳机制——IdleStateHandler
钱多多_qdd
netty
一、前言Netty提供了对心跳机制的天然支持,心跳可以检测远程端是否存活,或者活跃。今天我们就一起初识一下Netty4的心跳机制。Netty4.0提供了一个类,名为IdleStateHandler,这个类可以对三种类型的心跳检测。二、项目中的应用上述是项目中应用到的心跳机制关键代码,主要步骤:在pipeline中添加IdleStateHandler;在IdleStateHandler后面再添加Id
- java智慧停车系统源码
IT课程分享
java开发语言
java智慧停车系统源码技术架构:后端开发语言java,采用最新springcloudalibaba版本开发,框架oauth2+springboot2.6(可升级到3.0)+doubble3.2,使用nacos,seata,sentinel,,数据库mysql/mongodb/redis/可追加oceanbase和tidb超大型数据库,即时通讯底层框架netty4,安卓和ios均为原生开发,后台管
- java写jvm_用Java实现JVM第一章《命令行工具》
半木zxy
java写jvm
小傅哥|https://bugstack.cn沉淀、分享、成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获。目前已完成的专题有;Netty4.x实战专题案例、用Java实现JVM、基于JavaAgent的全链路监控、手写RPC框架、架构设计专题案例、源码分析等。你用剑、我用刀,好的代码都很烧,望你不吝出招!一、背景描述为了更好的学习jvm阅读过《Java虚拟机规范》
- 教你用 Netty 实现一个简单的 RPC!
zl1zl2zl3
nettyRPCNettyrpc
众所周知,dubbo底层使用了Netty作为网络通讯框架,而Netty的高性能我们之前也分析过源码,对他也算还是比较了解了。今天我们就自己用Netty实现一个简单的RPC框架。1需求模仿dubbo,消费者和提供者约定接口和协议,消费者远程调用提供者,提供者返回一个字符串,消费者打印提供者返回的数据。底层网络通信使用Netty4.1.16。2设计创建一个接口,定义抽象方法。用于消费者和提供者之间的约
- java websocket netty_用SpringBoot集成Netty开发一个基于WebSocket的聊天室
王知遇
javawebsocketnetty
前言基于SpringBoot,借助Netty控制长链接,使用WebSocket协议做一个实时的聊天室。项目效果项目统一登录路径:http://localhost:8080/chat/netty用户名随机生成,离线调用异步方法,数据写操作,登录显示历史聊天消息GitHub项目名:InChat项目地址:https://github.com/UncleCatMy...项目介绍:基于Netty4与Spri
- java 从零开始手写 RPC (01) 基于 websocket 实现
老马啸西风2020
RPC解决的问题RPC主要是为了解决的两个问题:解决分布式系统中,服务之间的调用问题。远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。这一节我们来学习下如何基于websocket实现最简单的rpc调用,后续会实现基于netty4的版本。开源地址:https://github.com/houbb/rpc完整流程在这里插入图片描述其中左边的Client,对应的就是前面的Servi
- jQuery 键盘事件keydown ,keypress ,keyup介绍
107x
jsjquerykeydownkeypresskeyup
本文章总结了下些关于jQuery 键盘事件keydown ,keypress ,keyup介绍,有需要了解的朋友可参考。
一、首先需要知道的是: 1、keydown() keydown事件会在键盘按下时触发. 2、keyup() 代码如下 复制代码
$('input').keyup(funciton(){  
- AngularJS中的Promise
bijian1013
JavaScriptAngularJSPromise
一.Promise
Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性。其核心是,promise是一个带有then()函数的对象。
为了展示它的优点,下面来看一个例子,其中需要获取用户当前的配置文件:
var cu
- c++ 用数组实现栈类
CrazyMizzz
数据结构C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T, int SIZE = 50>
class Stack{
private:
T list[SIZE];//数组存放栈的元素
int top;//栈顶位置
public:
Stack(
- java和c语言的雷同
麦田的设计者
java递归scaner
软件启动时的初始化代码,加载用户信息2015年5月27号
从头学java二
1、语言的三种基本结构:顺序、选择、循环。废话不多说,需要指出一下几点:
a、return语句的功能除了作为函数返回值以外,还起到结束本函数的功能,return后的语句
不会再继续执行。
b、for循环相比于whi
- LINUX环境并发服务器的三种实现模型
被触发
linux
服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。
1 循环服务器与并发服务器模型
在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。
目前最常用的服务器模型有:
·循环服务器:服务器在同一时刻只能响应一个客户端的请求
·并发服务器:服
- Oracle数据库查询指令
肆无忌惮_
oracle数据库
20140920
单表查询
-- 查询************************************************************************************************************
-- 使用scott用户登录
-- 查看emp表
desc emp
- ext右下角浮动窗口
知了ing
JavaScriptext
第一种
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/
- 浅谈REDIS数据库的键值设计
矮蛋蛋
redis
http://www.cnblogs.com/aidandan/
原文地址:http://www.hoterran.info/redis_kv_design
丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。
- maven编译可执行jar包
alleni123
maven
http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven
<build>
<plugins>
<plugin>
<artifactId>maven-asse
- 人力资源在现代企业中的作用
百合不是茶
HR 企业管理
//人力资源在在企业中的作用人力资源为什么会存在,人力资源究竟是干什么的 人力资源管理是对管理模式一次大的创新,人力资源兴起的原因有以下点: 工业时代的国际化竞争,现代市场的风险管控等等。所以人力资源 在现代经济竞争中的优势明显的存在,人力资源在集团类公司中存在着 明显的优势(鸿海集团),有一次笔者亲自去体验过红海集团的招聘,只 知道人力资源是管理企业招聘的 当时我被招聘上了,当时给我们培训 的人
- Linux自启动设置详解
bijian1013
linux
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。
阅读之前建议先看一下附图。
本文中假设inittab中设置的init tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc
- Spring Aop Schema实现
bijian1013
javaspringAOP
本例使用的是Spring2.5
1.Aop配置文件spring-aop.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmln
- 【Gson七】Gson预定义类型适配器
bit1129
gson
Gson提供了丰富的预定义类型适配器,在对象和JSON串之间进行序列化和反序列化时,指定对象和字符串之间的转换方式,
DateTypeAdapter
public final class DateTypeAdapter extends TypeAdapter<Date> {
public static final TypeAdapterFacto
- 【Spark八十八】Spark Streaming累加器操作(updateStateByKey)
bit1129
update
在实时计算的实际应用中,有时除了需要关心一个时间间隔内的数据,有时还可能会对整个实时计算的所有时间间隔内产生的相关数据进行统计。
比如: 对Nginx的access.log实时监控请求404时,有时除了需要统计某个时间间隔内出现的次数,有时还需要统计一整天出现了多少次404,也就是说404监控横跨多个时间间隔。
Spark Streaming的解决方案是累加器,工作原理是,定义
- linux系统下通过shell脚本快速找到哪个进程在写文件
ronin47
一个文件正在被进程写 我想查看这个进程 文件一直在增大 找不到谁在写 使用lsof也没找到
这个问题挺有普遍性的,解决方法应该很多,这里我给大家提个比较直观的方法。
linux下每个文件都会在某个块设备上存放,当然也都有相应的inode, 那么透过vfs.write我们就可以知道谁在不停的写入特定的设备上的inode。
幸运的是systemtap的安装包里带了inodewatch.stp,位
- java-两种方法求第一个最长的可重复子串
bylijinnan
java算法
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class MaxPrefix {
public static void main(String[] args) {
String str="abbdabcdabcx";
- Netty源码学习-ServerBootstrap启动及事件处理过程
bylijinnan
javanetty
Netty是采用了Reactor模式的多线程版本,建议先看下面这篇文章了解一下Reactor模式:
http://bylijinnan.iteye.com/blog/1992325
Netty的启动及事件处理的流程,基本上是按照上面这篇文章来走的
文章里面提到的操作,每一步都能在Netty里面找到对应的代码
其中Reactor里面的Acceptor就对应Netty的ServerBo
- servelt filter listener 的生命周期
cngolon
filterlistenerservelt生命周期
1. servlet 当第一次请求一个servlet资源时,servlet容器创建这个servlet实例,并调用他的 init(ServletConfig config)做一些初始化的工作,然后调用它的service方法处理请求。当第二次请求这个servlet资源时,servlet容器就不在创建实例,而是直接调用它的service方法处理请求,也就是说
- jmpopups获取input元素值
ctrain
JavaScript
jmpopups 获取弹出层form表单
首先,我有一个div,里面包含了一个表单,默认是隐藏的,使用jmpopups时,会弹出这个隐藏的div,其实jmpopups是将我们的代码生成一份拷贝。
当我直接获取这个form表单中的文本框时,使用方法:$('#form input[name=test1]').val();这样是获取不到的。
我们必须到jmpopups生成的代码中去查找这个值,$(
- vi查找替换命令详解
daizj
linux正则表达式替换查找vim
一、查找
查找命令
/pattern<Enter> :向下查找pattern匹配字符串
?pattern<Enter>:向上查找pattern匹配字符串
使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找
N:按照反方向查找
字符串匹配
pattern是需要匹配的字符串,例如:
1: /abc<En
- 对网站中的js,css文件进行打包
dcj3sjt126com
PHP打包
一,为什么要用smarty进行打包
apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。
为什么要进行打包呢,主要目的是为了合理的管理自己的代码 。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的J
- php Yii: 出现undefined offset 或者 undefined index解决方案
dcj3sjt126com
undefined
在开发Yii 时,在程序中定义了如下方式:
if($this->menuoption[2] === 'test'),那么在运行程序时会报:undefined offset:2,这样的错误主要是由于php.ini 里的错误等级太高了,在windows下错误等级
- linux 文件格式(1) sed工具
eksliang
linuxlinux sed工具sed工具linux sed详解
转载请出自出处:
http://eksliang.iteye.com/blog/2106082
简介
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾
- Android应用程序获取系统权限
gqdy365
android
引用
如何使Android应用程序获取系统权限
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点
- HoverTree开发日志之验证码
hvt
.netC#asp.nethovertreewebform
HoverTree是一个ASP.NET的开源CMS,目前包含文章系统,图库和留言板功能。代码完全开放,文章内容页生成了静态的HTM页面,留言板提供留言审核功能,文章可以发布HTML源代码,图片上传同时生成高品质缩略图。推出之后得到许多网友的支持,再此表示感谢!留言板不断收到许多有益留言,但同时也有不少广告,因此决定在提交留言页面增加验证码功能。ASP.NET验证码在网上找,如果不是很多,就是特别多
- JSON API:用 JSON 构建 API 的标准指南中文版
justjavac
json
译文地址:https://github.com/justjavac/json-api-zh_CN
如果你和你的团队曾经争论过使用什么方式构建合理 JSON 响应格式, 那么 JSON API 就是你的 anti-bikeshedding 武器。
通过遵循共同的约定,可以提高开发效率,利用更普遍的工具,可以是你更加专注于开发重点:你的程序。
基于 JSON API 的客户端还能够充分利用缓存,
- 数据结构随记_2
lx.asymmetric
数据结构笔记
第三章 栈与队列
一.简答题
1. 在一个循环队列中,队首指针指向队首元素的 前一个 位置。
2.在具有n个单元的循环队列中,队满时共有 n-1 个元素。
3. 向栈中压入元素的操作是先 移动栈顶指针&n
- Linux下的监控工具dstat
网络接口
linux
1) 工具说明dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是,
- C 语言初级入门--二维数组和指针
1140566087
二维数组c/c++指针
/*
二维数组的定义和二维数组元素的引用
二维数组的定义:
当数组中的每个元素带有两个下标时,称这样的数组为二维数组;
(逻辑上把数组看成一个具有行和列的表格或一个矩阵);
语法:
类型名 数组名[常量表达式1][常量表达式2]
二维数组的引用:
引用二维数组元素时必须带有两个下标,引用形式如下:
例如:
int a[3][4]; 引用:
- 10点睛Spring4.1-Application Event
wiselyman
application
10.1 Application Event
Spring使用Application Event给bean之间的消息通讯提供了手段
应按照如下部分实现bean之间的消息通讯
继承ApplicationEvent类实现自己的事件
实现继承ApplicationListener接口实现监听事件
使用ApplicationContext发布消息