0

开源协作Web编辑器

在现代Web系统大流行时代,一款功能强大而切支持协作的Web的富文本编辑器是系统的最关键的组成部分。一款可真正在生产环境中使用的即插即用编辑器,可以能够解决我们实时协作问题:通过浏览器编辑结构化文档,并在屏幕上显示彼此的更改,从而使相隔数千里的用户能够进行协作编辑。本文我们就来介绍一些这样的Web编辑器。TinyMCETinyMCE是一款轻量级所见即所得开源Web编辑器,基于LGPL license发布可以更好的用于商业产品中。TinyMCE支持AJAX,具有配置简便,加载速度快的特点。TinyMCE的使用方法非常简单,只需在Html页面中增加两行即可: <script src="tin...

阅读全文>>

0

Kafka 原理以及分区分配策略剖析

一、简介Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列【Message Queue】)。流处理平台有以下3个特性:可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可以在流式记录产生时就进行处理。1.1 消息队列的两种模式1.1.1 点对点模式生产者将消息发送到queue中,然后消费者从queue中取出并且消费消息。消息被消费以后,queue中不再存储,所以消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只能被一个消费者消费。1.1.2 发布/订阅模式生产...

阅读全文>>

0

如何使用RabbitMQ实现事件总线

1 前置阅读在阅读本文章之前,你可以先阅读:RabbitMQ入门什么是观察者模式什么是事件总线2 实现首先,事件源与事件处理的映射字典。private static Dictionary<string, List<object>> eventHandlers = new Dictionary<string, List<object>>(); 然后,初始化RabbitMQ,创建到服务器的连接,创建一个通道等public RabbitMQEventBus(IConnectionFactory connectionFactory, string...

阅读全文>>

0

spring security 业界标准加密策略源码详解及

密码发展历史果奔时代最初,密码以纯文本格式存储。假定密码是安全的,因为数据存储密码已保存在访问它所需的凭据中。但是,恶意用户能够使用SQL注入之类的攻击找到方法来获取用户名和密码的大型“数据转储”。随着越来越多的用户凭证成为公共安全专家,我们意识到我们需要做更多的事情来保护用户的密码。单向 Hash然后鼓励开发人员在通过诸如SHA-256之类的单向哈希运行密码后存储密码。由于散列是一种方式,并且计算给出的哈希密码很难计算,因此,找出系统中的每个密码都不值得。为了击败这个新系统,恶意用户决定创建称为Rainbow Tables的查找表。他们不必每次都猜测每个密码,而是只计算一次密码并将其存储在查...

阅读全文>>

0

Nacos Discovery和Eureka的区别

Eureka架构图:Eureka架构图1.服务注册(register):Eureka Client会通过发送REST请求的方式,向Eureka Server注册自己的服务。注册时,提供自身的元数据,比如ip地址、端口、运行状况指标、主页地址等信息。Eureka Server接收到注册请求后,就会把这些元数据信息存储在一个双层的Map中。 什么时候注册?在启动微服务的时候。2.服务续约(renew):在服务注册后,Eureka Client会维护一个心跳来持续通知Eureka Server,说明服务一直处于可用状态,防止被剔除。默认每隔30秒eureka.instance.lease-renew...

阅读全文>>

0

前端内存泄漏及完善的解决方案

最近收到测试人员的反馈说我们开发的页面偶现卡死,点击无反应的情况,特别是打开页面较久的时候发生概率较高。打开任务管理器,看到内存占有率已经很高了,初步判断可能存在内存泄漏的情况。下面排查内存泄漏的原因。系统进程不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)。当内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。Chrome 限制了浏览器所能使用的内存极限(64 位为 1.4GB,32 位为 1.0GB)引起内存泄漏的原因1、意外的全局变量由于 js 对未声明变量的处理方式是在全局对象上创建该变量的引用。如果在浏览器中,全局对象就是 window 对象。变量在窗口关闭或...

阅读全文>>

0

字节跳动官方出品的免费图标库,超好用还能自定义修改

现在很多企业公司或品牌都会将自己开发的设计素材开放出来,像是图标集、字体或是网页框架等等,使这些项目可以被更多人使用,或是在开源的情况下创造出更多可能性,当然一方面也能提高被看到的机会。之前介绍过IBM Plex 就是其中一个例子:除了腾讯,这5家世界顶级公司也有自己的专属字体(打包下载)编者按:最近腾讯发布了一个中文字库,引起了很多设计师的热议,中文字体开发难度大,时间长,能做好非常不容易,所以很少有公司能有自己的字体。阅读文章 >>本文要介绍的「IconPark」是一套完整免费图标库,也是字节跳动(ByteDance)释出的官方图标集(旗下最知名的就属抖音、TikTok),Ic...

阅读全文>>

0

对API网关注册和接入的接口安全管理总结

今天谈下对API网关接入的接口服务进行安全管理方面的内容。在原来谈Kong网关的时候,曾经谈到Kong网关和安全相关的插件能力,其中包括了身份认证插件:Kong提供了Basic Authentication、Key authentication、OAuth2.0 authentication、HMAC authentication、JWT、LDAP authentication认证实现。安全控制插件:ACL(访问控制)、CORS(跨域资源共享)、动态SSL、IP限制、爬虫检测实现。这些内容相对还是比较抽象,因此准备重新再整理下对接口的安全管理。接口安全实际上本身分为了传输安全,数据安全,访问控...

阅读全文>>

0

ES6-promise使用

一、promise对象的使用所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件的结果。从语法上说,Promise 对象用于表示一个异步操作的最终完成 (或失败), 及其结果值。对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。then 方法then 方法接收两个函数作为参数,第一个参数是 Promise 执行成功时的回调,第二个参数是 Promise 执行失败时的回调,两个函数只会有一个被调用。Resolve()成功的回调函数,reject()失败的回调函数。会员登录...

阅读全文>>

0

基于阿里Ant Design构建的高颜值开源管理后台UI框架

继承 Ant Design 专业美观的优点,支持PC/手机/平板的响应式布局的优秀后台管理系统 UI 框架。关于 Artiely Vue AdminAnt Design 是阿里巴巴蚂蚁金服团队出品的前端 UI 组件库,背靠大厂、设计优美,是一个 React 实现的主要用于中后台管理系统的 UI 框架,同时为不同技术路线的前端开发者提供了 Angular 和 Vue 的实现。Ant Design Pro 是官方提供的基于 Ant Design 开发的管理后台框架,但遗憾的是只支持 React。而今天要推荐的开源项目就是一款基于 Ant Design Vue 开发的管理后台 UI 框架,因为作者没...

阅读全文>>