Jboot v1.2.2 发布,多处细节优化,精摹细琢
Jboot是一个基于JFinal和undertow开发的微服务框架。提供了AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、Opentracing数据追踪、metrics数据监控、分布式session、代码生成器、shiro安全控制、swaggerapi自动生成等功能。Jbootv1.2.2主要更新如下:新增:ParamType类,方便swagger注解使用新增:JbootCache新增getTtl()和setTtl()方法,方便对缓存设置过期时间新增:添加ActionCache的key生成机制的配置,方便自己对ActionCache的key的管理新增:JbootController新增getBodyString()方法,方便接收客户端POST过来的body数据新增:添加jetty的支持,需要自行添加jetty的maven依赖新增:AOP添加对@Bean(name="serviceName")的支持,方便对一个接口有多个实现类的情况进行注入修复:JFinalconstan
如何设计一个DNS
前言DNS这个东西,可大可小,可简单可复杂。对于以园区网为主的传统企业/单位而言,要考虑多出口的链路优化、智能解析、私有域名的解析、监控、管理等一系列问题,还是需要有一个好的设计优化的。我们前阵子刚完成了DNS架构的升级,在这里整理一下做个分享。需求分析在讨论DNS的架构之前我们先分析一下我们的需求。多链路优化通常一个园区网都会有多个出口。我们需要通过路由策略来决定用户的请求最终落入哪个出口上。在网络层上,BGP自然不必多说了,静态路由的话,我们也可以设法去弄到各个运营商的地址表(万能的淘宝)然后写入路由,从而让用户的请求落入最合理的出口链路上。“让用户的请求落入最合理的出口链路上”,靠路由表就够了吗?非也,因为还有CDN。很自然地,由于有CDN,大部分网站的所提供的解析,都会根据用户的DNS请求来源,而智能解析到对应运营商区域内的CDN上。也就是说,实际上我们DNS递归时的网络路由策略,基本决定了用户访问网站的实际路由。例如我们的DNS通过电信的链路去递归解析,那么用户解析到的网站地址
MySQL主从复制的实现过程
推荐阅读微服务:springboot系列教程学习源码:Javaweb练手项目源码下载调优:十五篇好文回顾面试笔试:面试笔试整理系列一、什么是主从复制将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。二、主从复制的作用1、主数据库出现问题,可以切换到从数据库。2、可以进行数据库层面的读写分离。3、可以在从数据库上进行日常备份。三、复制过程Binarylog:主数据库的二进制日志。Relaylog:从服务器的中继日志。第一步:master在每个事务更新数据完成之前,将该操作记录串行地写入到binlog文件中。第二步:salve开启一个I/OThread,该线程在master打开一个普通连接,主要工作是binlogdumpprocess。如果读取的进度已经跟上了master,就进入睡眠状态并等待master产生新的事件。I/O线程最终的目的是将这些事件写入到中继
MariaDB 在 2017 年以燎原之势顺应全球发展潮流
MariaDB团队回顾了2017年所发生的一些事,MariaDB团队表示,在过去一年中,他们得到了社区,客户和合作伙伴的极力支持。2017年对他们来说更像是里程碑的一年,今年的发展顺应了全球性发展的主题,给MariaDB带来了新的机遇。全球性问题的解决方案:为了让客户更容易找到特定于其工作负载类型的解决方案。MariaDB推出了用于事务性工作负载的MariaDBTX和用于分析性工作负载的MariaDBAX等解决方案。这些优化方案得到了MariaDB的技术产品,以及用于优化生产部署环境工具和服务的支持。MariaDBServer10.2,MariaDBMaxScale2.1,MariaDBColumnStore1.1的GA版本也发布完成。全球活动:4月份,MariaDB团队举办了第一届年度MariaDB全球用户M|17大会。远在亚洲和欧洲的客户来到纽约,分享MariaDB团队的成功故事,最佳实践和技术交流。全球范围内的发展:2017年,Debian遵循Li
MySQL - 常见的三种存储引擎
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据,不同的存储引擎...存储引擎数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是插件式存储引擎。查看存储引擎SHOWENGINES命令来查看MySQL使用的引擎,命令的输出为(我用的NavicatPremium):由此可见,MySQL给用户提供了诸多的存储引擎,包括处理事务安全表的引擎和出来了非事物安全表的引擎。如果要想查看数据库默认使用哪个引擎,可以通过使用命令:SHOWVARIABLESLIKE'storage_engine';在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。Support列的值表示
Nginx反向代理WebSocket响应403的解决办法
在Nginx反向代理一个带有WebSocket功能的SpringWeb程序(源代码地址)时,发现访问WebSocket接口时总是出现403响应,Nginx的配置参考的是官方文档:http{//ssl相关配置...map$http_upgrade$connection_upgrade{defaultupgrade;''close;}server{listen8020;location/ws{proxy_passhttp://some-ip:8080;proxy_http_version1.1;proxy_set_headerUpgrade$http_upgrade;proxy_set_headerConnection$connection_upgrade;}}}唯一不同的是我们的Nginx配置了https。于是打开Spring日志查看直接访问和通过Nginx访问的差别。直接访问的日志:DEBUG...o.s.web.servlet.DispatcherServlet
Bootstrap v4.0.0-beta.3 发布,Web 前端 UI 框架
Bootstrapv4.0.0-beta.3发布了,Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。主要更新内容如下:重写本机和自定义检查控件。Bothbrowserdefaultandcustomcheckboxesandradiosnowhavesimplermarkupafterremovingthefromthe
Parcel:常见技术栈的集成方式
前言Parcel是什么Parcel是一个前端构建工具,Parcel官网将它定义为极速零配置的Web应用打包工具。没错,又是一个构建工具,你一定会想,为什么前端的构建工具层出不穷,搞那么多工具又要花时间去学习,真的有意义吗?在webpack已经成为前端构建工具主流的今天,一个新的工具能有什么优势来站稳脚跟呢?为什么要用Parcel一个好的打包工具在前端工程中占着比较重要的地位。然,何谓之好?或功能强大,或简单易用,或提高效率,或适合自己。在时代不断发展中,一个个好的工具正在被一个更好的工具所替代。随着对webpack复杂配置的吐槽声越来越多,Parcel打着"快速、零配置"的旗子出来了。Parcel的特性快速打包:启用多核编译,并具有文件系统缓存打包所有资源:支持JS,CSS,HTML,文件资源等等-不需要安装任何插件自动转换:使用Babel,PostCSS和PostHTML自动转换零配置代码拆分:使用动态import()语法拆分您的输出包,只加载初始加载时所需的内容模块热替换:不需要进行任何配置友好
7个前端不容错过的jQuery图片滑块插件
作为前端开发者,我们会碰到很到各种各样的jQuery插件,但老实说,很少有自己写的。今天要分享的几款jQuery图片滑块插件,也就是jQuery焦点图插件,基本上会在每个网站都有应用,可以下载看看,也许你可以用到。1、jQuery多图并列焦点图插件今天我们要来分享一款比较特别的jQuery焦点图插件,它允许你自己定义当前画面的图片数量,在这个演示中,我们定义了3张图片一起显示。和其他jQuery焦点图一样,这款焦点图插件的图片下方也有一排小按钮,可以任意切换图片。另外,每张图片也都有文字描述。在线演示/源码下载2、jQuery动画焦点图可自动播放图片这是一款简单而实用的jQuery焦点图插件,焦点图不仅可以在播放图片的时候让图片有淡入淡出的动画效果,而且图片可以自动播放。该jQuery焦点图的每一张图片都可以设置文字描述,并浮动在图片之上。由于其简单的配置,这款jQuery焦点图可以很方便地与你的网站相结合。在线演示/源码下载3、jQuery缩略图动态缩放焦点图今天我们要来分享一款jQuery焦点图,这款jQue
ASP.NET Core 系列视频完结,新项目实战课程发布。
今天把MVC的章节完成了,给大家从头到尾做了一个登录注册的示例,带前后端Model验证,算是完整的示例。同时借助于eShopOnContainers的示例也做了一个DBContextSeed的包装器来初始化ApplicationDbContext,这种方式可以灵活借用到其它项目里面去。到这里,我前期规划的基础视频就已经全部完成了。为什么要录这个视频找一个点开始。在生意专家的一年多时间里,大量的软件基础设施缺失、大量的人才缺失、面对不得不快速迭代的业务,我们一直走的比较艰难。我相信所有的中小企业都会面对的技术挑战,而在.NET互联网领域,目前还没有很出类拔萃的整体解决方案能把快速开发、运维、系统扩展等等这些方面融合在一起解决。我们不得不承认的是Java由于跨平台和强大的开源社区生态支持下,有着得天独厚的优势。但是.NETCore虽然还是一个新生儿,但是社区已经产生了巨大的潜力,国外和国内都有很多开源的作品涌现出来。我希望从.NETCore本身开始,一步一步地给大家普及。基础视频继续免费由于录制视频花费的时间比较大,
ASP.NET Core使用SkiaSharp实现验证码
前言本文并没有实现一个完成的验证码样例,只是提供了在当前.NETCore2.0下使用DrawingAPI的另一种思路,并以简单Demo的形式展示出来。SkiaSkia是一个开源的二维图形库,提供各种常用的API,并可在多种软硬件平台上运行。谷歌Chrome浏览器、ChromeOS、安卓、火狐浏览器、火狐操作系统以及其它许多产品都使用它作为图形引擎。Skia由谷歌出资管理,任何人都可基于BSD免费软件许可证使用Skia。Skia开发团队致力于开发其核心部分,并广泛采纳各方对于Skia的开源贡献。SkiaSharpSkiaSharp是由Mono发起,基于谷歌的Skia图形库,实现的一个跨平台的2D图形.NETAPI绑定。提供一个全面的2DAPI,可用于跨移动、服务器和桌面模式的图形渲染和图像处理。skiasharp提供PCL和平台特定的绑定:.NETCore/.NETStandard1.3Xamarin.AndroidXamarin.iOSXamarin.tvOSXamarin.MacWindowsCla
CentOS 7部署ASP.NET Core应用程序
看了几篇大牛写的关于Linux部署ASP.NETCore程序的文章,今天来实战演练一下。2017年最后一个工作日,提前预祝大家伙元旦快乐。不扯淡,直接进入正题。您有任何问题请在评论区留言。1.环境准备网上看了一下,Linux云服务器还挺贵的,那就只好先用VMware虚拟机搭建个吧。这里我选装的Linux系统版本的是CentOS,Linux系统众多发行版之一,相信各位园友也不陌生。软件版本信息如下:VMwareWorkstation14Pro官方下载CentOS7Minimal官方下载虚拟机安装、系统镜像配置过程,大家参考网上教程应该没啥问题,我这不再赘述。成功安装并登陆CentOS7Minimal系统后,发现无法上网,后来搜索找到原因:CentOS7Minimal默认没有启动网络配置。接下来就通过vi命令编辑网卡配置文件ifcfg-ens33(其他版本名称可能略有不同,但路径一致)。具体命令如下:vi/etc/sysconfig/network-scripts/ifcfg-ens33将O
C# ajax跨域
webconfig的
RabbitMQ持久化消息
RabbitMQ持久化消息RabbitMQ实现持久化消息需满足以下3个条件:delivery_mode=2使用durable=True声明exchange是持久化使用durable=True声明queue是持久化delivery_modedelivery_mode=2指明message为持久的.delivery_mode投递消息模式1.ram2.disc设置为disc后能从AMQP服务器崩溃中恢复消息--持久化但效率比ram:disc=3:1durabledurable(默认false)rabbitmq重启后queue和Exchange会被清除,包括数据。注:auto_delete:当所有消费客户端连接断开后,自动删除队列。exclusive:仅创建者可以使用的私有队列,断开后自动删除。RabbitMQ会自动删除这个队列,而不管这个队列是否被声明成持久性的(Durable=true)。也就是说即使客户端程序将一个排他性的队列声明成了Durable的,只要调用了连接的Close方法或者客户端程序退出了,R
RabbitMQ镜像策略set_policy
RabbitMQ镜像策略set_policy参数设置格式:#设置rabbitmqctlset_policy[-p
高级持续渗透-第五季关于后门
本文作者:Micropoor本文属于安全脉搏专栏作者分享暨金币奖励计划转载请参考:https://www.secpulse.com/archives/61458.html这一季依然是一个过渡季,根据之前的连载中,了解到后门是渗透测试的分水岭,它分别体现了攻击者对目标机器的熟知程度,环境,编程语言,了解对方客户,以及安全公司的本质概念。也同样检测了防御者需要掌握后门的基本查杀,与高难度查杀,了解被入侵环境,目标机器。以及后门或者病毒可隐藏角落,或样本取证,内存取证等。.对各种平台查杀熟知,对常见第三方软件的了解程度。既然题目以“艺术”为核心,那么怎样把后门“艺术”行为化呢?依然遵循以往,引入概念,只有概念清晰,本质清晰,对于攻击者,这样的后门更具有持久性,潜伏性,锁定性等。对于防御者,更能熟知反后门对抗,对待常用第三方软件的检测方式方法,切断攻击者的后渗透攻击。溯源或取证攻击者。在高级持续渗透测试中,PTES的渗透测试执行标准主要分为6段1报。既:前期交互阶段情报收集阶段威胁建模
windows环境下mysql主从配置
mysql主从配置。相关理论知识可以百度一下,这里就不多说了,直接说如何配置。一、环境介绍及说明主库所在的操作系统:win7主库的版本:mysql-5.6.24-winx64.zip主库的ip地址:127.0.0.1主库的端口:3306从库所在的操作系统:win7从库的版本:mysql-5.6.38-winx64.zip从库的ip地址:127.0.0.1从库的端口:3307下载地址:https://www.mysql.com/downloads/如果有多余的服务器也可以不用都配置到一台电脑上,只需要各服务器ip能通就行。注:主库和从库版本可以一致也可以不一致,需要说明一点,如果两者版本不一致,一般主库的版本需要比从库的版本低,这样就可以避免由于版本问题,有些sql不能执行的问题。二、数据库的安装由于我下载的mysql都是解压版的,所以只需要把下载好的zip包解压到服务器上即可,就不需要安装了。我的解压目录如下:1)、主库(master)的安装及配置进入主库mysq
PHP + AJAX 实现表格实时编辑
一、实验介绍1.1实验内容利用PHP来制作一个通过ajax来传递数据的可实时编辑的表格。1.2实验知识点熟练对php+ajax的使用对jquery的操作巩固1.3实验环境实验楼在线环境:Ubuntu14.04.5apache:apache2.4.7PHP:PHP5.5.9代码编辑器:brackets文本编辑器或其他。1.4适合人群本课程难度为一般,适合具有PHP基础的用户,熟悉PHP基础知识加深巩固,同时也要求学生有jquery相关的基础知识。二、实验原理通过ajax来传递数据,返回给浏览器的数据通过jquery的相关操作展现出来。三、开发准备首先打开Xfce终端,启动服务启动Apache服务器:$sudoserviceapache2start启动数据库Mysql:$sudoservicemysqlstart我们使用的是Apache服务器,所以为了访问的方便,我们需要将我们的代码文件放到它的根目录下。Apache默认的web根目录位
bezierMake.js——N阶贝塞尔曲线生成器
由于原生的Canvas最高只支持到三阶贝塞尔曲线,那么我想添加多个控制点怎么办呢?(即便大部分复杂曲线都可以用3阶贝塞尔来模拟)与此同时,关于贝塞尔控制点的位置我们很难非常直观的清楚到底将控制点设置为多少可以形成我们想要的曲线。本着解决以上两个痛点同时社区内好像并没有N阶的解决方案(js版)故这次作者非常认真的开源了bezierMaker.js!bezierMaker.js理论上支持N阶贝塞尔曲线的生成,同时提供了试验场供开发者可以自行添加并拖拽控制点最终生成一组绘制动画。非常直观的让开发者知道不同位置的控制点所对应的不同生成曲线。如果你喜欢这个作品欢迎Star,毕竟star来之不易。。项目地址:这里:sparkles::sparkles::sparkles:欢迎关注我的博客,不定期更新中——为什么需要一个试验场?在绘制复杂的高阶贝塞尔曲线时无法知道自己需要的曲线的控制点的精确位置。在试验场中进行模拟,可以实时得到控制点的坐标值,将得到的点坐标变为对象数组传递进BezierMaker类就可以生成目标曲线
使用rabbitmq消息队列
一、前言在python中本身就是存在队列queue。一个是线程队列queue,另一个是进程multiprocessing中的队列Queue。线程queue:只用于线程之间的数据交互进程Queue:用于同一进程下父进程和子进程之间的数据交互,或者同属于一个父进程下的多个子进程之间的交互二、RabbitMQ如果是多个进程间(不同的应用程序之间)、多个系统需要进行数据交互,那么就可以使用消息服务来解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ的基础介绍:点击查看实现最简单的队列通信send端#-*-coding:UTF-8-*-importpikaconnection=pika.BlockingConnection(pika.ConnectionParameters('localhost'))#声明一个管道channel=connection.chan