gatekeeper学习概述
1、概述
该产品部署在网络隔离装置两端,以代理程序的身份,完成两侧设备连接维护,数据转发的功能。场景简化如图所示:
软件核心是一个基于Netty的网络应用程序,考虑到系统的可维可测性,集成了web化的配置、监控和调试功能。
2、启动类是GateKeeperWebMain
public static void main(String[] args) throws Exception {
startJetty(PORT);
} private static void startJetty(int port) throws Exception {
LOGGER.debug("Starting server at port {}", port);
Server server = new Server(port);
Configuration.ClassList classlist = Configuration.ClassList
.setServerDefault(server);
classlist.clear();
classlist.add("org.eclipse.jetty.webapp.WebXmlConfiguration");
classlist.add("org.eclipse.jetty.annotations.AnnotationConfiguration");
server.setHandler(getServletContextHandler());
addRuntimeShutdownHook(server);
server.start();
LOGGER.info("Server started at port {}", port);
server.join();
}
3. web容器是jetty,在web服务启动过程中,通过spring初始化后台相关bean,并在初始化完成后启动后台监听服务。
4. 发布维护过程中的一些收获
1、功能的可用性
产品部署在全国各地多个地方,生产环境掉电重启,网络不稳定等多种异常情况都会出现。
- 软件需要保证掉电重启自动恢复等。
- 通过代理程序的心跳机制及重连机制,保证网络正常或网络断开恢复后能正常提供服务。
2、服务的可靠性
- 第三方服务端处理速度不一定快,如果是同步阻塞的话,就会加大系统自身负担,被外部拖累。
- 设备不可达等情况,应有快速失败机制。(一旦出现一定的超时,如果有多次重试的机制,可能会使得网络负担更大,造成雪崩效应。)
3、系统的维护性
- 提供版本一键安装升级工具,操作简单快速。
- 提供一键日志采集功能。获取服务器核心的操作系统日志、业务日志,便于有问题时采集分析。
- 现场人员可以通过web监控调试页面,查看当前系统状态及网络情况。便于简单问题的现场自行处理。
gatekeeper学习概述的更多相关文章
- 深度学习概述教程--Deep Learning Overview
引言 深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支.从快速发展到实际应用,短短几年时间里, ...
- WPF学习概述
引言 在桌面开发领域,虽然在某些领域,基于electron的跨平台方案能够为我们带来某些便利,但是由于WPF技术能够更好的运用Direct3D带来的性能提升.以及海量Windows操作系统和硬件资源的 ...
- iOS开发学习概述及知识整理
设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了.这个界面模仿了Evernote iOS app的风格. 我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用 ...
- PGM:图模型学习概述
http://blog.csdn.net/pipisorry/article/details/52571640 动机 前面我们讨论的问题出发点是给定一个图模型.如在独立性和推理讨论中,假定模型--结构 ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟篇
xilinx的7系列FPGA根据不同的器件类型,集成了GTP.GTX.GTH以及GTZ四种串行高速收发器,四种收发器主要区别是支持的线速率不同,图一可以说明在7系列里面器件类型和支持的收发器类型以及最 ...
- BS学习概述
从最初的牛腩新闻公布系统,到如今的JS,回想一下,自己的BS也算是学了大半,可是有时候想起来还是总是有一种不踏实的感觉,一是由于从开学到如今赶上了三级考试,自考.软考,导致BS学习时间被大大压缩了,代 ...
- 安全开发流程(SDL)学习概述
1.简介 SDL的全称是Security Development Lifecycle,即:安全开发生命周期.由微软最早提出,是一种专注于软件开发的安全保障流程.为实现保护最终用户为目标,它在软件开发流 ...
- MooseFS学习-概述
MFS(MooseFS)是一个容错的.网络分布式文件系统,是GFS的开源实现.它把数据分散在多个物理机上,对外展现为一个整体资源. 支持的功能 Unix的通用文件系统功能:目录树:记录POSIX文件属 ...
随机推荐
- webservice - 使用JAX-WS注解的方式快速搭建服务端和客户端
1.Define the interface import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebRe ...
- CSIC_716_20191106【列表、元组、字典、集合】
python的数据类型及其内置方法 一.列表(续) list.count( ).list.index( ) list = ['1', '2', '3', '2', 'a', 'b', 'c', 'a' ...
- linux dmesg命令使用
linux dmesg命令使用 2012-11-27 09:37 2783人阅读 评论(0) 收藏 举报 分类: linux内核与编程(199) 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
- Java导出pdf文件数据
提示:导出pdf文件,需要3个jar包iText-2.1.5.jar,iTextAsian.jar,iText-rtf-2.1.4.jar. public boolean outputPdfJhsy( ...
- VC中隐藏和显示IDC_STATIC
void CImageShowAndHideDlg::OnBnClickedButton1() //隐藏 { CWnd* pWnd = GetDlgItem(IDC_STATIC); ...
- 牛客多校第四场 J Free 最短路
题意: 求最短路,但是你有k次机会可以把路径中某条边的长度变为0. 题解: 跑k+1次迪杰斯特拉,设想有k+1组dis数组和优先队列,第k组就意味着删去k条边的情况,每次松弛操作,松弛的两点i,j和距 ...
- 云-腾讯云-笔记:pom.xml 配置
ylbtech-云-腾讯云-笔记:pom.xml 配置 1. pom.xml返回顶部 1.1 com.qcloud / 腾讯云 <!-- https://mvnrepository.com/ar ...
- JSON关联属性转换异常
问题:FastJSON在转换对象过程中,该对象还有关联属性,该属性还是一个对象,就出现栈溢出异常,会报一下错误,解决办法:在该属性类的一边加上@JSONField(serialize=false);有 ...
- PAT甲级——A1110 Complete Binary Tree【25】
Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each in ...
- 「APIO 2019」奇怪装置
题目 考虑推柿子 最开始的想法是如果两个\(t\)在\(mod\ B\)意义下相等,那么只需要比较一下\((t+\left \lfloor \frac{t}{B}\rfloor \right)mod\ ...