中间件技术

Ocelot简易教程(一)之Ocelot是什么

只愿长相守 提交于 2019-12-03 23:37:48
作者:依乐祝 原文地址: https://www.cnblogs.com/yilezhu/p/9557375.html Ocelot简易教程目录 Ocelot简易教程(一)之Ocelot是什么 Ocelot简易教程(二)之快速开始1 Ocelot简易教程(二)之快速开始2 Ocelot简易教程(三)之主要特性及路由详解 Ocelot简易教程(四)之请求聚合以及服务发现 Ocelot简易教程(五)之集成IdentityServer认证以及授权 Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据 Ocelot简易教程(七)之配置文件数据库存储插件源码解析 简单的说Ocelot是一个用.NET Core实现并且开源的API网关技术。 可能你又要问了,什么是API网关技术呢?Ocelot又有什么特别呢?我们又该如何集成到我们的asp.net core程序中呢? 下面我会通过一些列通俗易懂的教程来为大家讲解。今天的这篇文档先给大家简述下什么是API网关技术,以及Ocelot是什么,一个Ocelot的整体架构。 API网关是什么? API网关是系统暴露在外部的一个访问入口。就像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导、等等功能。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证

【转帖】关于数据库中间件的思考

六眼飞鱼酱① 提交于 2019-12-03 15:16:50
作者:kimmking 链接:https://www.zhihu.com/question/352256403/answer/878523206 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 题主,恭喜你,你深入思考了一系列重要问题,作为一个开源技术人员+数据中间件的爱好者,试着回答一下题主的几个问题: 什么时候需要数据中间件,中间件能干什么 数据中间件的实现原理,有哪些开源数据中间件 为什么都是国内开源的,并且大都停止了更新 推荐使用什么数据中间件,有什么优势 一、什么时候需要数据中间件,中间件能干什么 就像题主说的那样,随着业务的发展,MySQL、Oracle数据库里的表越来越大,一两年以后,2千万、甚至上亿记录的表就会出现了(一般可以简单认为表比较复杂的时候,MySQL几百万上千万的时候,Oracle几千万的时候,就会出现复杂查询或变更有性能问题),这时候可能会导致复杂的查询慢,插入和修改数据慢,修改表的DDL执行太慢导致无法修改列类型或者加索引或者加字段等等。怎么办呢?这时候我们可以由几个处理办法: 历史表:按时间拆分历史表出去,降低数据量,这个以前比较常见,其实也是一种特殊的水平拆分,对业务有侵入性 垂直拆分:按列,将上百列的宽表拆分成多个列少(也就是每条记录数据量小)的表,不降低记录数,但是降低整个表的数据量和索引量大小 水平拆分

常见端口及其服务

匿名 (未验证) 提交于 2019-12-03 00:25:02
序号 类型 端口 软件/服务名称 可能存在的漏洞/利用方式 1 中间件 6379 Redis 1)未授权访问 2 中间件 8161 Apache Group ActiveMQ 1)远程代码执行 3 中间件 873 Rsync 1)远程代码执行 4 中间件 9001 Supervisor 1)远程命令执行漏洞。 5 中间件 4899 Radmin 1)密码爆破 2)远程命令执行 6 中间件 2181 Zookeeper 1)未授权访问 7 中间件 11211 memcached 1)未授权访问 8 中间件 2375 Docker 1未授权访问 9 中间件 7001/7002 weblogic 1)密码爆破 2)Java反序列化漏洞 3)任意文件泄漏 10 中间件 8080 Resin 1)目录遍历 2)远程文件读取 11 中间件 8080 GlassFish 1)弱口令 2)任意文件读取 3)认证绕过 12 中间件 9990 jboss 1)密码爆破 2)远程代码执行 3)Java反序列化 13 中间件 9043 Websphere 1)密码爆破 2)任意文件泄露 3)java反序列化 14 中间件 80/81/443 IIS 1)PUT写文件 2)ms15034 3)http.sys内存下载 4)解析漏洞 5)短文件名泄漏 15 中间件 80/8080 Apache 1)解析漏洞

Mycat 数据库分库分表中间件

匿名 (未验证) 提交于 2019-12-03 00:19:01
国内最活跃的、性能最好的开源数据库中间件! 我们致力于开发高性能的开源中间件而努力! 支持SQL92标准 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster 基于Nio实现,有效管理线程,解决高并发问题。 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。 支持多租户方案。 支持分布式事务(弱xa)。 支持XA分布式事务(1.6.5)。 支持全局序列号,解决分布式下的主键生成问题。 分片规则丰富,插件化开发,易于扩展。 强大的web,命令行监控。 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。 支持密码加密 支持服务降级 支持IP白名单 支持SQL黑名单、sql注入攻击拦截

[系列] go-gin-api 路由中间件 - Jaeger 链路追踪(五)

匿名 (未验证) 提交于 2019-12-03 00:08:02
首先同步下项目概况: 上篇文章分享了,路由中间件 - 捕获异常,这篇文章咱们分享:路由中间件 - Jaeger 链路追踪。 啥是链路追踪? 我理解链路追踪其实是为微服务架构提供服务的,当一个请求中,请求了多个服务单元,如果请求出现了错误或异常,很难去定位是哪个服务出了问题,这时就需要链路追踪。 咱们先看一张图: 这张图的调用链还比较清晰,咱们想象一下,随着服务的越来越多,服务与服务之间调用关系也越来越多,可能就会发展成下图的情况。 这调用关系真的是... 看到这,我的内心是崩溃的。 那么问题来了,这种情况下怎么快速定位问题? 我们自己也可以设计一个链路追踪,比如当发生一个请求,咱们记录它的: 请求的唯一标识 请求了哪些服务? 请求的服务依次顺序? 请求的 Request 和 Response 日志? 对日志进行收集、整理,并友好展示 怎么去实现请求的唯一标识? 以 Go 为例 写一个中间件,在每次请求的 Header 中包含:X-Request-Id,代码如下: func SetUp () gin . HandlerFunc { return func ( c * gin . Context ) { requestId := c . Request . Header . Get ( "X-Request-Id" ) if requestId == "" { requestId =

Django之cookie与session、中间件

泪湿孤枕 提交于 2019-12-03 00:03:47
目录 cookie与session 为什么会有cookie和session cookie 设置cookie 获取cookie 删除cookie 实例:cookie版登录校验 session 设置session 获取session 删除session session也可以设置超时时间 实例:session版登录校验 django中间件 应用场景 自定义方法 django请求生命周期流程图 中间件之前端操作 跨站请求伪造(csrf) 钓鱼网站实例 防钓鱼网站策略 CBV加装饰器 csrf_exempt 两种装饰方式 其他装饰器 三种装饰方式 每日面试题 python2和python3的区别(至少写三个) 什么是可变,什么是不可变 m=10,n=5,互换值(至少两种方式) cookie与session 为什么会有cookie和session 由于HTTP协议是无状态的,无法记住用户是谁,这样我们在每一次登陆的时候,都要重新输入密码,甚至如果不设置cookie,网页可能都请求不了 cookie 保存在 客户端 浏览器上的键值对 是 服务端 设置在 客户端 浏览器上的键值对,也就意味着浏览器其实可以拒绝服务端的命令。默认情况下,浏览器都是直接让服务端设置键值对的 在操作开始之前我们需要对三板斧进行变形 obj1 = HttpResponse() return obj1 obj2 =

中间件 | 微服务架构

匿名 (未验证) 提交于 2019-12-02 23:57:01
Web应用架构受系统用户量、开发人员组织方式影响严重。过去二十年互联网迅速发展,Web架构也从单体式演进出微服务,背后还有比如 Martin Fowler 提出的理论支撑。虽然每个人都听说过微服务,但是很多人并不太清楚为什么要这么做,应该怎么做,怎么拆。要回答这个问题我认为需要从Web架构的演化历史的高度去理解这些架构设计中的取舍。 首先我们改进系统架构的目的是为了满足系统可靠性、并发量以及快速开发的需求。所有的改进方案都是为了解决这其中一个或多个问题而产生的。 单体结构 单体结构 最开始Web服务器、数据库全部部署在同一台服务器上,这也是最简单的应用架构,通常公司早期项目都采用这种方式。在很长一段时间里单体结构可以满足系统快速开发与并发量的需求。当用户量越来越大,通常会数据库性能会成为系统瓶颈,此时可以将Web业务与数据库部署在不同服务器上,增强数据库服务器的配置并做读写分离等提高系统的吞吐量与可用性。 与此同时也可以将业务系统等价部署在多台服务器上来提高系统吞吐量,但整体上这仍然是一个单体应用。 单体等价部署 随着用户、数据量进一步增大,单体应用的缺点会进一步显露出来,比如: 耦合严重、复杂度高、可靠性差 :单体应用越来越来很多业务会耦合在一起,一但某些模块出现Bug会影响整个系统正常运行,业务代码的耦合也会形成开发人员的依赖造成新业务难以推进 增加技术债、部署困难效率差

MySQL中间件性能测试 I

匿名 (未验证) 提交于 2019-12-02 22:06:11
本文根据黄炎在2018年7月7日【MySQL技术沙龙 ・ 成都站】现场演讲内容整理而成。 黄炎 爱可生研发总监,深入钻研分布式数据库相关技术,擅长业界相关MySQL中间件产品和开发,以及分布式中间件在企业内部的应用实践。 MySQL中间件性能测试 I 摘要: 我今天代表我的团队向大家来介绍一下MySQL中间件性能的测试,为大家带来一些不太一样的故事,包括我们在做性能测试的时候一些不太一样的视角。 分享大纲: 1.性能测试的常见的(错误)方法 * 3 2.性能测试的一些(我们用的)方法 * 2 3.分布式事务相关 * 1 我今天代表我的团队向大家来介绍一下MySQL中间件性能的测试,之所以讲选这个主题是因为我注意到大家都是高级的DBA,我们也有很多的高级的DBA,跟大家聊天的时候都会注意到,大家对于性能测试的第一印象: 性能 = sysbench 测试 = run 结果 = tps 数值要高大上 性能就是sysbench,然后测试就是跑一下,这就叫性能测试了,结果就是要TPS或者QPS,数值一定要高大上,这是大家对性能测试测试的第一印象也可能是唯一的印象。我们公司是属于乙方的技术服务提供商,我们对业界的很多产品进行过性能测试,所以今天想为大家带来一些不太一样的故事,以及我们在做性能测试的时候一些视角。 我今天大概会向大家介绍三件事情: 第一件事情 是我们观察到,大家在做性能测试的时候

阿里中间件技术:应用服务器篇

一世执手 提交于 2019-12-02 21:56:02
2016-04-20 架构说 19 阅读 应用服务器——系统运行的托管员 综述 阿里巴巴集团有国内最大规模的Java系统,几万台的应用服务器规模也空前庞大,目前主要使用的应用服务器有Tomcat,JBoss和Jetty三种。阿里巴巴自从2004年开始转向Java技术平台后,先后经历了从WebLogic到Jboss和Tomcat迁移。到了2008年,随着更为轻量级的Tomcat和Jetty容器的迅速发展,越来越多的应用系统开始尝试使用Tomcat或Jetty作为底层应用服务器。2013年上半年,阿里巴巴集团中间件成立了独立的应用服务器团队,主要面向整个集团进行应用服务器相关的工作,目前在公司内部主推Tomcat服务器。 本文将从中间件团队在2013年双十一大促前针对应用服务器上进行的工作展开,重点讲解Tomcat监控诊断工具,以及Pandora隔离技术两方面内容。 6.1、Tomcat监控管理工具 Tomcat Monitor模块是一个Tomcat的监控和诊断模块,提供了一些基本的工具,可以对Tomcat的连接池、线程、内存、类加载以及JVM相关等进行监控和诊断。Tomcat Monitor的出现,解决了广大开发人员无法快速定位线上问题的尴尬问题,同时也帮助开发人员能够通过简单且统一的命令行工具来排查问题、查看程序运行时状态,而不需要使用各种包括jmap

消息中间间选型分析

≯℡__Kan透↙ 提交于 2019-12-02 18:56:07
一、前言 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。 目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如 ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ 等。不管选择其中的哪一款,都会有用的不趁手的地方,毕竟不是为你量身定制的。有些大厂在长期的使用过程中积累了一定的经验,其消息队列的使用场景也相对稳定固化,或者目前市面上的消息中间件无法满足自身需求,并且也具备足够的精力和人力而选择自研来为自己量身打造一款消息中间件。但是绝大多数公司还是不会选择重复造轮子,那么选择一款合适自己的消息中间件显得尤为重要。就算是前者,那么在自研出稳定且可靠的相关产品之前还是会经历这样一个选型过程。 在整体架构中引入消息中间件,势必要考虑很多因素,比如成本及收益问题,怎么样才能达到最优的性价比?虽然消息中间件种类繁多,但是各自都有各自的侧重点,选择合适自己、扬长避短无疑是最好的方式。 二、各类消息队列简述 ActiveMQ 是 Apache 出品的、采用 Java 语言编写的完全基于 JMS1