- 博客(331)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注

原创 【Micro Server】Introduce of 'Micro Server'
Part1.What's 'Micro Server'? Microservices involve an architectural approach that emphasizes the decomposition of applications intosinglepurpose, highly cohesive and loosely coupled servic
2017-04-21 09:33:43
1239
11
原创 【NIO】解读 java.nio.channels.Selector
目录Part 1. What's Selector?Part 2.Why Selector?Part 3. How to use Selector?1) Create Selector2) Channel's Register3) Selection Key4) Selector.select()5) Selector.selectedKeys()Part 4.Demo TrainPart 1. What's Selector?Selector is the ..
2020-08-01 11:20:24
1098
原创 【NIO】解读 java.nio.channels.Channel
目录Part 1. DefinePart 2.Implementation1. Channel2.FileChannel3.ServerSocketChannel4.SocketChannel5. ServerSocketPart 3. Demo1. FileChannel2. ServerSocketChannelPart 1. DefineDifference between NIO's Channel and Stream:1 NIO ...
2020-07-24 21:27:10
3095
原创 【NIO】解读 java.nio.Buffer
目录Part 1. BackGroudPart 2.Doc Guide1. What's the buffer?2. What's the essential feature?3. how to operate buffer?4. Something you may wanna knowPart 3. Analysis as container and 'Read & Write' freature.Part 4. Demo TrainPart 1. ...
2020-07-20 20:30:30
715
原创 【FastJSON】使用serializeUsing定制序列化、反序列化
在fastjson 1.2.16版本之后,JSONField支持新的定制化配置serializeUsing,可以单独对某个类的某个属性定制序列化、反序列化。1.fastjson定制序列化、反序列化接口支持1)序列化package com.alibaba.fastjson.serializer;public interface ObjectSerializer { ...
2020-04-11 10:37:04
13639
1
翻译 【Web Design The Missing Link】More On Representation Design
包括 "self"参考和 "type"属性Google和GitHub的示例说明了我们喜欢的另外两个设计选择。第一个是包括一个kind属性(有时是拼写成kind或isA)。 第二个包括一个selfLink属性,在GitHub示例中称为url。 此属性使用了许多不同的拼写方式-我们喜欢名称self,它是ATOM规范中标准化的关系名称,已在IANA中注册,并由许多其他名称复制。尤其要注意,这些...
2020-01-22 09:51:35
340
翻译 【Web Design The Missing Link】Chatty APIs
REST API比较“琐碎(chatty)”是一个普遍的误解。如果您的API过于琐碎,那是因为您为客户设计了错误的资源,而不是因为您使用了REST。“ REST意味着琐碎”的误解可能来自对REST-API必须看起来像完全标准化的关系数据库规范。在规范化设计中,每个不同的概念都有单独的资源,例如订单,客户,帐户等。 如果仅定义这些资源,则想要向用户显示的UI客户端则必须执行许多GET才能检索订单,账...
2020-01-22 09:51:23
319
翻译 【Web Design The Missing Link】Handing Error
大多数API开发人员首先考虑API开发功能的完成,然后考虑异常和错误处理,但是对于所有客户端来说,错误处理的质量是API体验的关键部分。为什么好的错误设计对API设计人员来说尤其重要?从使用Web API的应用程序开发人员的角度来看,该接口另一侧的所有内容都是黑盒的。因此,错误成为提供有关如何使用API的上下文和可见性的关键工具。首先,开发人员学会通过错误来编写代码。 极限编程模型的测...
2020-01-22 09:51:12
293
翻译 【Web Design The Missing Link】Modeling Actions
您可能会遇到的另一种情况是要触发动作。假设您有用于标识某个过程的URL,并且希望能够启动,停止或暂停该过程。 在这种情况下,许多设计师都采用面向动词的,类似于RPC的API设计,但是有些设计选项仍然忠实于基于名词的Web实体模型。 一种是提供流程的状态属性,并允许客户端将其设置为启动,停止或暂停。另一个选择是允许客户端将操作请求发布到相关的URL。例如,流程资源可能具有一个名为actionRequ...
2020-01-22 09:50:42
325
翻译 【Web Design The Missing Link】Authentication
几年前,API设计指南将包含有关使用哪种身份验证方法的讨论。 当时领先的网站使用的标准或级别不同。 如今,几乎每个主要的Web-API都使用OAuth2。示例包括PayPal,Twitter,Google,Facebook,GitHub等。 您应该做同样的事情。使用OAuth 2.0意味着公开API的网络或移动应用无需共享密码。它允许API提供者撤销单个用户和整个应用程序的令牌,而无需用户更改...
2020-01-22 09:50:37
320
翻译 【Web Design The Missing Link】Complement With An SDK
如果您的API遵循良好的设计规范,并且是自洽(self-consistent)的,基于标准的并且有据可查的,那么使用您的API的应用程序开发人员可以在没有客户端SDK的情况下让他运转起来。记录良好的代码示例也是至关重要的资源。但是,大多数客户端程序员更喜欢在其选择的实现语言中使用精心设计的SDK,而不是直接使用HTTP-API。实际上,使用SDK的程序员可能会认为特定于语言的SDK是API,而完全...
2020-01-22 09:50:31
300
翻译 【Web Design The Missing Link】Versioning
API的版本控制是一个有争议的主题,您会在互联网上找到许多相互矛盾的指南。最常用的模式可能是在URL的路径段中带有版本标识符的模式。由于在版本控制方面几乎没有共识,因此仅提供有关该主题的意见可能不会很有帮助,但我们提供了两种想法:1.完全不进行API版本控制是一种明智的方法,越来越受到关注;2.链接和版本同时出现在url中不处理版本控制我们都知道API需要演变,并且在不破坏...
2020-01-22 09:50:18
319
翻译 【Web Design The Missing Link】Conclusion
近年来,随着Web API在商业上的重要性日益提高,Web API设计的最新水平和创新步伐不断提高。Web API基于万维网技术,特别是在HTTP和URI规范。 设计Web API时,最好将自己尽可能地限制在那些规范中能找到的概念和技术,这可以最大程度地减少客户端必须学习的特定于您的API的数量。HTTP和URI内在的概念是面向实体的,因此,以这种风格设计API更像是设计数据库,而不是设计典型...
2020-01-22 09:49:59
420
翻译 【Web Design The Missing Link】Appendix: Other Approaches to Representing Links
Chapter ResourceRepresentational State Transfer (REST), Roy Thomas Fielding2000 RESTful API Design Webinar, 2nd edition, Brian Mulloy, 2011Apigee BlogAPI Craft Google GroupChapterAppendix: O...
2020-01-22 09:49:54
360
翻译 【Web Design The Missing Link】Designing URLS
针对URL,使用名词而非动词REST面向数据模型的结果是,每个URL都可以被识别为事物。 这意味着,对于由API客户端的开发人员读取和编写的“知名URL”和“查询URL”,应该由名词组成,名词是用于指定事物的自然语言。众所周知的URL在上面的示例中,用于收集已知狗的URL为https://dogtracker.com/dogs。在API中,始终有必要发布至少一个众所周知的URL。...
2020-01-22 09:47:51
407
翻译 【Web Design The Missing Link】Designing Representations
目录使用JSON让JSON简洁化包含链接为什么这样更好?当有链接时URI模板还有用吗?类比万维网包含链接,步骤二注意事项在资源中如何表示链接?谁使用链接?更多API设计的许多讨论都是从如何设计URL开始的。在像REST这样的面向数据的模型中,我们认为最好从表示形式(Representations)设计开始。 我们将在“Designing URL...
2020-01-22 09:47:42
579
翻译 【Web Design The Missing Link】A Data-orinted Design Paradigm
REST API专注于它所暴露的问题域(problem domain)的基础实体,而不是操纵这些实体的一组函数。按照前言中介绍的示例,假设我们的议题(问题域)是”如何追踪狗及其主人“。 我们可能公开的主要实体包括:1、狗狗的集合:它的url可能是 https://dogtracker.com/dogs.2、单独的狗:每条狗都单独有一个url。我们稍后将讨论其URL格式。我们还需要...
2020-01-22 09:47:32
319
翻译 【Web Design The Missing Link】Web API and REST
API 设计者的工作API的工作是使应用程序开发人员尽可能地高效。在制作API时,您应该从应用程序开发人员的角度考虑设计选择。为什么? 看看下面的价值链。 应用程序开发人员是整个API策略的关键。编写API时,主要的设计原则应该是最大程度地提高应用程序开发人员的生产力和成功率。正确设计很重要,因为设计可以传达如何使用某些东西。 那么问题就变成了:对应用程序开发人员来说,利益最大化的...
2020-01-22 09:47:16
443
翻译 【Web Design The Missing Link】Introduction
根据定义,Web API使用HTTP。 在Web_API的早期,人们花费大量时间和精力来弄清楚如何在HTTP之上实现CORBA和DCOM等上一代分布式技术的功能。 这导致了诸如SOAP和WSDL之类的技术。经验表明,与大多数Web API相比,这些技术更复杂,更重且更易碎。取代SOAP和WSDL的想法是,您可以更直接地使用HTTP,而减少对上层技术的运用。 大多数现代Web API都比SOAP或W...
2020-01-22 09:46:57
304
翻译 【Web Design The Missing Link】Foreward
随着Web API在商业和技术中变得越来越重要,Web API设计的最新水平正在不断发展。作为API管理的领导者,Apigee与数百个客户一起开发和管理大量的API。通过反思我们的经验以及我们的客户和整个行业的经验,我们获得了一些见识,了解API设计创新正在带来真正的好处并成为显着的趋势。通过本书我们试图捕捉过去几年中出现的API设计中的一些重要趋势。本书力求简洁明了,但并不旨在成...
2020-01-22 09:46:43
255
原创 【IDEA】MAC 修改".vmoptions"导致 IDEA 无法启动 解决方案
Idea Version: “2019.3”Question:在IDEA的“Help | Edit Custom VM Options”菜单中修改了“.vmoptions”配置,(改错了文件路径),重启多次,软件一直打不开。即便卸载重装软件,问题依然复现。一、".vmoptions" 官方描述 Configuring JVM options and platform p...
2020-01-20 16:29:49
38470
42
原创 【Clean Smell】Why ‘lambda'?
最近在bibi看了一个视频,Up主一步步引出Lambda的方式看着很精彩,本文做个分享。【背景】如下,部门有十名员工,过滤"35岁以上","薪资高于5000" 的员工,怎么做呢?public class Employee { /** * 姓名 */ private String name; /** * 年龄 *...
2020-01-05 11:16:19
426
1
原创 【New Book】《Pure-Bash-Bible》- Dylan Araps
Forward 不知道您在使用linux系统时,是否经常需要编写脚本来处理复杂、重复的场景?比如对“独立程序”的启动、停止、暂定、状态检查,比如多台机器替换相同的文件,等等…… 对于一些逻辑简单的轻量级脚本,linux环境下使用bash来完成会是大部分人的首选,bash可在无任何其它语言或第三方依赖的安装环境下,快速写出脚本程序。 小编入门bash时...
2019-10-07 09:41:18
1002
原创 【Shell】独立程序(jar、class) - 启动、停止、重启 - 脚本
前言 当需要脚本来管理独立程序的启动、停止、重启、状态查询等功能时,小编为您提供一个模板,便于您参考。 脚本说明 run.sh #用于管理程序执行的脚本 run.conf #程序执行 配置项脚本展示 注:关键代码部分,已做解释。 1.run.sh#!/bin/sh### ===========...
2019-09-22 12:00:42
1036
1
原创 【科普】“GPS周数翻转”会是新的“千年虫”事件吗?
推荐一个不错的AI教程:https://www.captainbed.net/blog-vincent/一、导读0.千年虫计算机2000年问题,又叫做“千年虫”、“电脑千禧年千年虫问题”或“千年危机”。在某些使用了计算机程序的智能系统(包括计算机系统、自动控制芯片等)中,由于其中的年份只使用两位十进制数来表示,因此当系统进行(或涉及到)跨世纪的日期处理运 算时(如多个日期之间...
2019-09-09 23:41:10
2820
原创 Arthas工具使用推荐
推荐一个不错的AI教程:https://www.captainbed.net/blog-vincent/ 今日之主角,Arthas,中文名"阿尔萨斯";阿里巴巴开源,项目地址:https://alibaba.github.io/arthas/零、Content一、what? Arthas 是Alibaba开源的Java诊...
2019-09-02 18:31:18
1109
1
原创 【墙外的IT世界】CROKAGE: A New Way to Search Stack Overflow
前言Stack Overflow(SO)最强大的特性之一是随着时间的推移而不断积累开发人员上传的知识贡献(目前社区成员提供了超过1800万个问题和2700万个答案)。当开发人员遇到编码问题时,他们可以在stackoverflow中,搜索其特定难题是否已经提供了解决方案。Why CROKAGE?程序员在搜索问题时,可能会使用口语 - “如何在特定位置插入元素数组?” - 或者他们可...
2019-08-26 21:45:22
483
原创 【墙外的IT世界】Java-design-pattern 一个有意思的社区推荐
推荐一个不错的AI教程:https://www.captainbed.net/blog-vincent/本篇不生产“design pattern”代码,只推荐一个“真香”的repository、还有作者,哦对,还有他的gitter聊天室。1.分享内容 伴随java语言更新而不断更新的‘Java-design-pattern’论坛。 git仓库地址:...
2019-08-26 21:39:50
1065
原创 【墙外的IT世界】"结缘" github 的第 "N+1" 天
推荐一个不错的AI教程:https://www.captainbed.net/blog-vincent/ 2016年,北京,以VCS(version control system)的身份,初识“github”。后来渐渐觉得,“github”存在的意义远不止vcs,更是我看世界的一扇窗。 截止2019年5月,在全球范围,用户量超三千七百万,超...
2019-08-25 22:12:52
724
翻译 【java】Try With Resources
英文原文:https://www.journaldev.com/592/java-try-with-resources 今天和大家聊一下java中的 “try with resource”用法。通过“try-with-resource”实现资源自动管理,是java 7的一个重要特性。 (译者注:此处resource,指程序运行中打开的资源,比如:java strea...
2019-06-23 20:18:15
1181
翻译 【HTTP Live Streaming】(四)苹果公司提供的7款 hls 工具
一、目标 了解apple官方提供的工具,可以帮助我们细分视频流并创建成功传输所需的播放列表。二、介绍 有几种工具可以帮助您设置HTTP Live Streaming服务,下面分别介绍: 1.Media Stream Segmenter(mediastreamsegmenter) 通过UDP网络连接或stdin接收MPEG-2传输流...
2019-05-18 21:54:44
1574
翻译 【HTTP Live Streaming】(三)HLS 索引文件 && 常用场景下 功能介绍
一、 索引文件简介 HTTP Live Streaming将音频和视频作为一系列小文件发送,通常持续时间约为6秒,称为媒体段文件。 索引文件或播放列表提供媒体段文件的URL的有序列表。 HTTP Live Streaming的索引文件保存为M3U8播放列表,这是用于MP3播放列表的M3U格式的扩展名。 客户端访问索引文件的URL,然后客户端按顺序请求索引文件。 您可...
2019-05-18 21:49:24
1170
翻译 【HTTP Live Streaming】(二)HLS 架构 && 部署 - 梳理
一、宏观 从概念上讲,HTTP Live Streaming由三部分组成:服务器组件,分发组件和客户端软件。如图: 在典型配置中,硬件编码器接收音频 - 视频输入,将其编码为HEVC视频和AC-3音频,并输出分段的MPEG-4文件或MPEG-2传输流。然后,软件流分段器将流分成大量短媒体文件,这些文件放在Web服务器上。分段器还创建并维护包含媒体文件列表的索...
2019-05-18 21:31:48
957
翻译 【HTTP Live Streaming】(一)苹果公司 - 流媒体传输技术 - 概览
零、前言 前几个月偶然接触了下点播功能,自己实现了nginx-rtmp做直播,client端分别尝试了拉取flv和m3u8+ts之后,hls切分文件的思想吸引了我,把在apple官网学习到的内容翻译到自己博客里。一、是什么? HTTP直播(HLS)通过HTTP从普通网络服务器发送音频和视频,在基于iOS的设备(包括iPhone,iPad,iPod touc...
2019-05-18 21:16:36
1136
原创 【Aviator】(三)缓存引起的Full GC解决
【背景】 1.压测试算接口, 每分钟3600次请求 2.每1次试算需计算30个公式 3.通过监控,发现在上述条件下,30mins内老年代每分钟触发一次垃圾回收 (备注:老年代触发的 gc 是 full gc 会导致应用进程停顿 对性能的影响比较大)【思路】 1.静态变量的生命周期会伴随jvm全程,我封装的工具类中,使用了很多静态方法...
2019-04-05 13:40:04
5454
10
原创 【流媒体】nginx + nginx-rtmp-model 服务器搭建 && 推拉流测试
推荐一个不错的AI教程:https://www.captainbed.net/blog-vincent/No_1.what is 'nginx media server'? nginx通过rtmp模块提供rtmp服务, ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流. HLS也是差不多的原理,只是最终客户端是通过HTTP协...
2019-03-31 21:53:14
3276
6
原创 【流媒体】rtmp && hls 协议 梳理、比较
推荐一个不错的AI教程:https://www.captainbed.net/blog-vincent/ 目前接触视频直播、点播的协议主要是rtmp和hls,这篇文章就来认识下这2种协议各有什么特色,目的在做直播、点播功能时,对2种协议有对比、有认识。一、简介 复习下网络传输协议: add:“七层网络”通俗易懂的文章:h...
2019-03-31 21:52:37
1646
转载 【流媒体】视频技术的一些基础概念
原文地址:https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547042&idx=1&sn=26d8728548a6b5b657079eeab121e283&scene=2&srcid=0428msEitG9LJ3JaKGaRCEjg&from=timeline&isappin...
2019-03-31 21:51:13
2303
1
原创 【Aviator】(二)应用实战
正如上一篇博客所讲:“项目中之前的计算公式统一维护在base包(base包的公式会被订单、产品、api、财务、还款等系统依赖),由于公式会频繁地改动,造成base频繁升级,其他系统也得跟着发版”中存在的问题,把公式做成灵活可配,就是一件有意义的事情。零、公式计算描述 此次需求,客户选择金融产品后,根据所选择的“自有”、“浦发”、“微众”三种类型资金来源,来...
2019-03-16 17:28:19
3191
1
maven爆出的一个问题,没有查到原因,谁能帮我看看
2017-02-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人