-
架构解密从分布式到微服务:深入理解网络,NIO
NIO我们知道,分布式系统的基础是网络。因此,网络编程是分布式软件工程师和架构师的必备技能之一,而且随着当前大数据和实时计算技术的兴起,高性能RPC架构与网络编程技术再次成为焦点。不管是RPC领域的ZeroC Ice、Thrift,还是经典分布式框架Actor模型中的Akka,或者实时流领域的Storm、Spark、 Flink, 又或者开源分布式数据库中的Mycat、Volt...
-
springboot 项目之默认全局异常拦截
在web项目中,不可避免地会出现系统异常,例如资源找不到的404错误,服务器异常的5**错误,如果对这些异常不进行任何处理,则是非常不友好的。今天就对springboot项目中的异常拦截处理进行一个简单的使用说明。这里我使用的是springboot默认的异常拦截,也就是新建一个BasicErrorController类继承BasicErrorController。默认异常拦截在...
-
java初探Tess4j识别图片文字
想学习下识别图片中的文字,找到了Tess4j图文识别的方式,于是就初步探究下,玩下识别验证码。第一步,下载1、以3.4.2版本为例,下载Tess4j-3.4.2-src.zip。2、下载中文字库,chi_sim.traineddata。下载Tess4j参考:http://sourceforge.net/projects/tess4j/字库下载参考:https://github....
-
Nacos Discovery和Eureka的区别
Eureka架构图:Eureka架构图1.服务注册(register):Eureka Client会通过发送REST请求的方式,向Eureka Server注册自己的服务。注册时,提供自身的元数据,比如ip地址、端口、运行状况指标、主页地址等信息。Eureka Server接收到注册请求后,就会把这些元数据信息存储在一个双层的Map中。 什么时候注册?在启动微服务的时候。2.服...
-
一种解决jar包冲突的实现:隔离机制
业务背景随着业务的发展 和 架构的升级, 业务会越来越多的依赖公司内部提供的 中间件 ,如 rpc服务框架、分库分表框架、异步消息框架、公共工具包等等。每个中间件都有自己的 jar包依赖体系,最常用的如: logback、log4j、httpclient 、common-lang 、guava、zookeeper 等等 ,这些jar包依赖不仅会产生版本冲突,甚至会有jar包不兼...
-
25岁的Flash正式被抛弃
几周前,Adobe公司放弃了对Flash Player的支持,并强烈建议所有用户出于安全原因立即卸载浏览器插件。从今天开始,Adobe更是完全放弃了Flash。目前,当用户尝试在浏览器(例如Chrome)中加载Flash游戏或内容时,该内容现在无法加载,而是显示一条小横幅,该横幅指向Adobe网站上的Flash报废页面。虽然这一天早有预兆——许多年前,许多浏览器默认禁用Fl...
-
CodeReview规范
CodeReview规范目标和原则提高代码质量,及早发现潜在缺陷,降低修改/弥补缺陷的成本促进团队内部知识共享,提高团队整体水平评审过程对于评审人员来说,也是一种思路重构的过程,帮助更多的人理解系统是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码可以被用来确认自己的设计和实现是一个清楚和简单的鼓励相互学习对方的长处和优点高效迅速完...
-
Dubbo 版 Swagger 来啦
背景Swagger 是一个规范和完整的前端框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 规范也逐渐发展成为了 OpenAPI 规范。Springfox 是一个集成了 Swagger,基于 Sring MVC/Spring Webflux 实现的一个 Swagger 描述文件生成框架,通过使用它定义的一些描述接口的注解自动生成 Swag...
-
数据库同步软件DBSync的设计与实现
DBSync工作原理示意图DBSync是一款数据库同步软件,支持各种数据库之间的同步,支持增量同步。本文分享该软件的产品渊源、设计思想、技术要点、功能特征、使用方法,最后分析其优缺点,供IT技术人员参考,也欢迎大家提供宝贵意见,促进我们持续进步。阅读本文,用时大约15分钟。1、产品渊源早在2003年,我们在企业信息化的过程中,就经常遇到系统对接问题。很多客户的一些老旧软件,不方...