随笔分类 - 11 架构设计

摘要:大纲 1.背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试; 或者前后端分离后,经常会修改接口,然后重新部署; 这些情况都会涉及到频繁的打包部署; 手动打包常规步骤: 1.提交代码 2.问一下同组小伙伴有没有 阅读全文

posted @ 2020-08-25 00:27 panchanggui 阅读(80) 评论(0) 推荐(0) 编辑 |

摘要:目录 阐述背景 Leaf snowflake 模式介绍 Leaf segment 模式介绍 Leaf 改造支持 RPC 阐述背景 不吹嘘,不夸张,项目中用到 ID 生成的场景确实挺多。比如业务要做幂等的时候,如果没有合适的业务字段去做唯一标识,那就需要单独生成一个唯一的标识,这个场景相信大家不陌生。 阅读全文

posted @ 2020-07-22 12:19 panchanggui 阅读(82) 评论(0) 推荐(0) 编辑 |

摘要:背景 最近在设计和开发部门的基础架构,需要利用反射技术找到classpath目录下所有包含指定注解的类,然后根据注解配置完成指定的功能。 最初是想自己写代码来实现这些功能,边查资料边写,整了大半天,写出来的效果自己都不太满意。一方面是代码多,不好维护;另一方面是性能不太好。不过,在查资料的过程中,我 阅读全文

posted @ 2020-06-24 16:43 panchanggui 阅读(189) 评论(0) 推荐(0) 编辑 |

摘要:一、缘起 很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。 例如:58到家APP实时消息通道系统,对每个用户会维护一个APP到服务器的TCP连接,用来实时收发消息,对这个TCP连接,有这样一个需求:“如果连续30s没有请求包(例如登录,消 阅读全文

posted @ 2020-06-12 17:22 panchanggui 阅读(161) 评论(0) 推荐(0) 编辑 |

摘要:一、缘起 很多时候,业务有“在一段时间之后,完成一个工作任务”的需求。 例如:滴滴打车订单完成后,如果用户一直不评价,48小时后会将自动评价为5星。 一般来说怎么实现这类“48小时后自动评价为5星”需求呢? 常见方案:启动一个cron定时任务,每小时跑一次,将完成时间超过48小时的订单取出,置为5星 阅读全文

posted @ 2020-06-12 16:08 panchanggui 阅读(119) 评论(0) 推荐(0) 编辑 |

摘要:一、为什么要用分布式ID? 在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征? 1、什么是分布式ID? 拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日 阅读全文

posted @ 2020-06-04 14:35 panchanggui 阅读(122) 评论(2) 推荐(0) 编辑 |

摘要:大家可能都遇到过类似的需求: 生成订单60秒后,给用户发短信 下单之后15分钟,如果用户不付款就关闭订单 解决方式 是的没错,我们用一种术语来描述上面的任务,延时任务. 那么针对于类似这样的任务,一般我们都是怎么处理的呢? 对于这种延时任务,我们一般有以下的4中解决方式: 利用quartz等定时任务 阅读全文

posted @ 2020-04-26 11:17 panchanggui 阅读(320) 评论(0) 推荐(0) 编辑 |

摘要:定时任务: @Scheduled(cron= "0 39 3 * * *") public void getAllUnSignData(){ //检查任务锁,若其它节点的相同定时任务已经执行,则该节点的任务执行一个空任务,否则设置锁并执行该任务 String timerName = this.get 阅读全文

posted @ 2020-03-30 12:57 panchanggui 阅读(212) 评论(0) 推荐(0) 编辑 |

摘要:本文转自:http://www.hollischuang.com/archives/1716 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Ava 阅读全文

posted @ 2020-03-30 11:53 panchanggui 阅读(250) 评论(0) 推荐(0) 编辑 |

摘要:在软件开发中经常会提到持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD)这几个术语。但它们真正的意思是什么呢? 在谈论软件开发时,经常会提到持续集成Continuous Integration(CI)和持续交付Continuous D 阅读全文

posted @ 2020-03-28 23:51 panchanggui 阅读(273) 评论(0) 推荐(0) 编辑 |

摘要:转自: https://sq.163yun.com/blog/article/155843560335699968 https://sq.163yun.com/blog/article/155844837358661632 作者:刘超 网易云基础服务无论是在社区,还是在同客户交流的过程中,总会被问到 阅读全文

posted @ 2020-03-23 15:01 panchanggui 阅读(314) 评论(0) 推荐(0) 编辑 |

摘要:为什么用到ELK: 一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集 阅读全文

posted @ 2020-01-10 10:28 panchanggui 阅读(110) 评论(0) 推荐(0) 编辑 |

摘要:1 2 3 4 5 6 7 8 9 阅读全文

posted @ 2020-01-02 16:45 panchanggui 阅读(183) 评论(0) 推荐(0) 编辑 |

摘要:一、预备知识 本文讨论基于微服务架构下的身份认证和用户授权的技术方案,在阅读之前,最好先熟悉并理解以下几个知识点: 微服务架构相关概念:服务注册、服务发现、API 网关 身份认证和用户授权:SSO、CAS、OAuth2、JWT 文章在涉及到上述知识内容时,会附上参考链接。 二、背景 当企业的应用系统 阅读全文

posted @ 2019-12-19 22:54 panchanggui 阅读(1764) 评论(0) 推荐(0) 编辑 |

摘要:一、火热的中台 2019年,中台这个概念非常热门,由于这种模式有助于提高效率、降低成本、保证质量,一线互联网大厂,如阿里,腾讯,网易,滴滴,纷纷入坑中台。 数据中台、用户中台、搜索中台、电商中台、推荐中台、内容中台、技术中台、算法中台、移动中台……一系列中台不断涌现。 中台其实是一个非常复杂的具有共 阅读全文

posted @ 2019-12-10 11:28 panchanggui 阅读(93) 评论(0) 推荐(0) 编辑 |

摘要:本文转自:https://mp.weixin.qq.com/s/OloZhn2pwfIrOQit_8jefA 一、前言 2014年可以认为是微服务1.0的元年,当年有几个标志性事件,一是Martin Fowler在其博客上发表了“Microservices”一文,正式提出微服务架构风格;二是Netf 阅读全文

posted @ 2019-12-10 11:13 panchanggui 阅读(74) 评论(0) 推荐(0) 编辑 |

摘要:mysql计划任务每天定时执行,每天的零点执行一个存储过程 1、开启数据库定时调度 show variables like '%sche%'; //查看是否开启 select * from mysql.user where user='root' set global event_scheduler 阅读全文

posted @ 2019-12-04 11:27 panchanggui 阅读(995) 评论(0) 推荐(0) 编辑 |

摘要:问题分析 正常的H5支付流程如下 按照上面的支付流程会出现 App -> 微信 -> 支付 -> 点击 完成 -> safari访问redirect_url设置的URL,这种流程其实用户体验是有点糟糕的,我们期望是 App -> 微信 -> 支付 -> 点击 完成 -> App访问redirect_ 阅读全文

posted @ 2019-10-17 17:58 panchanggui 阅读(2347) 评论(0) 推荐(0) 编辑 |

摘要:服务升级机制 在项目敏捷开发的过程中,不可避免需要快速、安全的更新应用,目前比较流行的几种部署方案有: 滚动发布、灰度发布/金丝雀发布和蓝绿部署。 滚动发布(目前某银行内部生产环境交易系统的发布方式): 一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实 阅读全文

posted @ 2019-10-08 10:32 panchanggui 阅读(5418) 评论(0) 推荐(0) 编辑 |

摘要:在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。 根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可 阅读全文

posted @ 2019-10-07 21:16 panchanggui 阅读(106) 评论(0) 推荐(0) 编辑 |

摘要:##一、写在前面在收集资料时,我查询和学习了许多介绍OAuth的文章,这些文章有好有坏,但大多是从个例出发。因此我想从官方文档出发,结合在stackoverflow上的一些讨论,一并整理一下。整理的内容分为OAuth1.0a和OAuth2两部分。 OAuth 1.0a:One Leg ->Two L 阅读全文

posted @ 2019-09-26 01:15 panchanggui 阅读(623) 评论(0) 推荐(0) 编辑 |

摘要:随着互联网的发展,web应用的复杂度也一直在提升,慢慢的单一的web应用已经不能满足复杂的业务需求。例如百度的搜索、新闻、百科、贴吧,其实本质上都是不同的网站。当用户使用这些平台的时候,我们当然不希望用户在每一个平台都有一个单独的账号,不然的话用户和开发者可能都会有想哭的冲动。所以我们就需要一种用户 阅读全文

posted @ 2019-09-26 00:54 panchanggui 阅读(253) 评论(0) 推荐(0) 编辑 |

摘要:身份认证技术,也就是所谓的登录功能,是现代WEB系统最常见的功能之一。本系列文章就试图为大家详细的介绍身份认证技术。 Basic认证模式 Basic认证模式是较早被广泛应用的一种HTTP标准提供的认证模式。最常见的形式之一就是在url中直接写上用户名密码向服务器提供身份: http://user:p 阅读全文

posted @ 2019-09-26 00:46 panchanggui 阅读(218) 评论(0) 推荐(0) 编辑 |

摘要:本文准备用最简单的语言告诉大家什么是OAuth2 ,OAuth2是干什么的。 我们有一个资源服务器,资源服务器中有一系列的用户数据。 现在有一个应用想想要获取我们的用户数据。那么最简单的方法就是我们开发一个API。可是某天来了个恶意应用,或者是我们不想给它数据的应用,我们就会造成数据的泄漏。所以我们 阅读全文

posted @ 2019-09-26 00:42 panchanggui 阅读(121) 评论(0) 推荐(0) 编辑 |

摘要:《Spring入门经典》这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初学者也适合spring有过开发经验的工程师,前者可用于全面了解Spring IOC的知识点,后者且过目进而查漏补 阅读全文

posted @ 2019-09-12 15:51 panchanggui 阅读(180) 评论(0) 推荐(0) 编辑 |

摘要:版权声明:本文为CSDN博主「zejian_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/javazejian/article/details/56267036 关联文章: 关于Spring IOC (D 阅读全文

posted @ 2019-09-12 14:55 panchanggui 阅读(217) 评论(0) 推荐(0) 编辑 |

摘要:Spring Boot应用支持的最大并发量是多少? Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改。当在配置文件中敲出max后提示值就是它的默认值。 我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000。 并发量指的是 阅读全文

posted @ 2019-09-05 14:28 panchanggui 阅读(7553) 评论(0) 推荐(0) 编辑 |

摘要:转自:https://www.cnblogs.com/cjsblog/p/9712457.html 1. 引言 读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠 阅读全文

posted @ 2019-08-30 18:07 panchanggui 阅读(194) 评论(0) 推荐(0) 编辑 |

摘要:推荐第四种:https://github.com/shawntime/shawn-rwdb 通过MyBatis配置文件创建读写分离两个DataSource,每个SqlSessionFactoryBean对象的mapperLocations属性制定两个读写数据源的配置文件。将所有读的操作配置在读文件中 阅读全文

posted @ 2019-08-30 16:46 panchanggui 阅读(249) 评论(0) 推荐(0) 编辑 |

摘要:一般对于业务记录类随时间会不断增加的数据,当数据量增加到一定量(一般认为整型值为主的表达到千万级,字符串为主的表达到五百万)的时候,性能将遇到瓶颈,同时调整表结构也会变得非常困难。为了避免生产遇到这样的问题,在做系统设计时需要预估可能产生的数据量:预估记录主体个数*预估记录主体产生的记录数(e.g. 阅读全文

posted @ 2019-08-30 16:32 panchanggui 阅读(712) 评论(0) 推荐(0) 编辑 |

摘要:为什么要分库分表和读写分离? 类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求。随着时间和业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大 阅读全文

posted @ 2019-08-30 14:49 panchanggui 阅读(2268) 评论(0) 推荐(0) 编辑 |

摘要:一、读写分离 什么是数据库读写分离? 答:一主多从,读写分离,主动同步,是一种常见的数据库架构,一般来说: 主库,提供数据库写服务 从库,提供数据库读服务 主从之间,通过某种机制同步数据,例如mysql的binlog 一个组从同步集群通常称为一个“分组”。 分组架构究竟解决什么问题? 答:大部分互联 阅读全文

posted @ 2019-08-30 14:40 panchanggui 阅读(593) 评论(0) 推荐(0) 编辑 |

摘要:原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试 阅读全文

posted @ 2019-08-30 09:51 panchanggui 阅读(230) 评论(0) 推荐(0) 编辑 |

摘要:原文:https://www.cnblogs.com/hdwang/p/6081994.html 1.下载jenkins 地址:https://jenkins.io/index.html 本人下载了2.19.3版本的war包:jenkins.war 2.安装jenkins 拷贝jenkins.war 阅读全文

posted @ 2019-04-11 19:31 panchanggui 阅读(187) 评论(0) 推荐(0) 编辑 |

摘要:一、什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队 阅读全文

posted @ 2019-04-11 19:25 panchanggui 阅读(144) 评论(0) 推荐(0) 编辑 |

摘要:什么是Kubernetes? Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocke 阅读全文

posted @ 2019-04-11 17:56 panchanggui 阅读(144) 评论(0) 推荐(0) 编辑 |

摘要:从我的观点看:Docker是一个微容器,一个云计算的微PaaS容器,类似JVM但比其更强大的容器,直接基于Linux内核,支持各种语言,它比VM虚拟机更加轻量,能够在Linux或云计算IaaS等平台上直接运行,带着你的应用无缝地移植到各种运行环境。 有人无奈地说:Docker流行起来是因为我们的依赖 阅读全文

posted @ 2019-04-11 17:55 panchanggui 阅读(110) 评论(0) 推荐(0) 编辑 |

摘要:两者不是同一种类型。1、docker 是容器,tomcat是jsp应用服务器2、tomcat可以安装在物理机上,虚拟机上,也可以安装在Docker上。所以从这个角度讲,Docker也可以看做是一种超轻量化的虚拟机。3、Docker可以安装在物理机,虚拟机上,但不知道Docker上面是否可以再安装Do 阅读全文

posted @ 2019-04-11 17:54 panchanggui 阅读(8582) 评论(0) 推荐(0) 编辑 |

摘要:原文 1. 什么是领域(Domain) 我们所做的软件系统的目的都是来解决一系列问题,例如做一个电商系统来在线销售自己企业的产品;做一个灰度发布平台来提升服务的质量和稳定性。任何一个系统都会属于某个特定的领域,例如: 论坛是一个领域:要做一个论坛,那这个论坛的核心业务是确定的:比如用户发帖、回帖等核 阅读全文

posted @ 2019-02-27 11:50 panchanggui 阅读(323) 评论(0) 推荐(0) 编辑 |

摘要:本项目是一个基于 Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目。 @作者:Sheldon地址:https://github.com/zhangxd1989 技术栈 Spring boot - 微服务 阅读全文

posted @ 2019-02-20 16:11 panchanggui 阅读(910) 评论(0) 推荐(0) 编辑 |

摘要:转自 微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务。但如果要将微服务架构运用到生产项目上,并且能够发挥该架构模式的重要作用,则需要微服务框架的支持。 在Java生态圈,目前使用较多的微服务框架就是集成了包括Netfilix OSS以及Spring的Spring Cloud。它包括: 阅读全文

posted @ 2019-02-20 16:07 panchanggui 阅读(184) 评论(0) 推荐(0) 编辑 |

摘要:要描述了几种API版本控制的方法。用户可以查询原始的API,或者添加定制的头文件来接收特定的版本。如果应用程序收到一个重大修订,将URI修改为V2。在进行迭代改进时,将创建与更改日期相一致的端点,并允许用户将日期信息附加。然后,可以选择保留旧版本的时间。而且在设计和版本化API时,您可以应用许多不同 阅读全文

posted @ 2019-02-13 14:49 panchanggui 阅读(1256) 评论(0) 推荐(0) 编辑 |

摘要:目录 0:00 微服务与网关(Microservices & API Gateways) 大家好,我叫Macro,今天我们谈论有关微服务和网关的话题。我是Mashape的CTO,也同时是开源网关Kong的开发者之一。Kong是一个API网关,今天我们就来窥探一下它究竟是怎么工作的以及它如何运用到你的 阅读全文

posted @ 2019-02-13 14:08 panchanggui 阅读(1119) 评论(0) 推荐(0) 编辑 |

摘要:目录微服务专栏地址目录1. 简介2. 什么是API网关3. 为什么需要API网关4. API网关在微服务架构体系中处于什么位置4.1 调用者眼中的API网关4.2 所处的位置5. 网关技术实现有哪些6. zuul网关工作原理是什么样的6.1 整体处理流程图6.2 请求生命周期7. 技术上如何选型1. 阅读全文

posted @ 2019-02-13 14:05 panchanggui 阅读(1028) 评论(0) 推荐(0) 编辑 |

摘要:原文出处 一直以来都对Java反射究竟消耗了多少效率很感兴趣,今晚总算有空进行了一下测试 测试被调用的类和方法 package com.spring.scran; public class TestMethod { public void test() { for(int i = 0 ; i < 1 阅读全文

posted @ 2019-02-01 14:25 panchanggui 阅读(148) 评论(0) 推荐(0) 编辑 |

摘要:原文出处 早两天写了《从把三千行代码重构成15行代码谈起》这篇文章,看到评论中有一些同学的回复还是在质疑反射的性能,好像程序用上了反射,就像开上了拖拉机似的。本来我觉得这个话题没有什么好讨论的了,网上已经有太多太多的文章在说这个问题,有疑问的大可以到网上找相关的文章来查阅。但是,我想起来我刚编程的时 阅读全文

posted @ 2019-02-01 14:20 panchanggui 阅读(102) 评论(0) 推荐(0) 编辑 |

摘要:背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用。 但是在UI上进行 阅读全文

posted @ 2019-01-31 16:58 panchanggui 阅读(367) 评论(0) 推荐(0) 编辑 |

摘要:作者:赵计刚 来自:cnblogs.com/java-zhao/p/6716059.html 一、什么是服务网关 服务网关 = 路由转发 + 过滤器 1、路由转发:接收一切外界请求,转发到后端的微服务上去; 2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通 阅读全文

posted @ 2019-01-31 16:57 panchanggui 阅读(1081) 评论(0) 推荐(0) 编辑 |

摘要:网关一词较早出现在网络设备里面,比如两个相互独立的局域网段之间通过路由器或者桥接设备进行通信, 这中间的路由或者桥接设备我们称之为网关。 相应的 API 网关将各系统对外暴露的服务聚合起来,所有要调用这些服务的系统都需要通过 API 网关进行访问,基于这种方式网关可以对 API 进行统一管控,例如: 阅读全文

posted @ 2019-01-31 16:56 panchanggui 阅读(1218) 评论(0) 推荐(0) 编辑 |

摘要:1、API网关介绍 API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。 API网关方式的核心要点是,所有的客户端和消 阅读全文

posted @ 2019-01-31 16:54 panchanggui 阅读(755) 评论(0) 推荐(0) 编辑 |

摘要:socket通讯的单机瓶颈 物联网的项目socket使用方式有两种: 对于socket短链接来说就好比是http请求,请求服务器,服务器返回数据以后请求管道就关闭了,服务器与客户端的链接就释放了。但是对于socket长链接就不同了,当设备与服务器建立连接以后就要一直保持连接,或者说保持较长时间的链接 阅读全文

posted @ 2019-01-31 14:57 panchanggui 阅读(367) 评论(0) 推荐(0) 编辑 |

摘要:一、原理 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。 在平时的实际项目开发中,我们往往很少会去在意分布 阅读全文

posted @ 2019-01-31 14:31 panchanggui 阅读(96) 评论(0) 推荐(0) 编辑 |

摘要:本文来自于csdn,文章通过介绍ActiveMQ的安装,使用,搭建等等,简单整理了ActiveMQ。 本文转自:http://www.uml.org.cn/zjjs/201802111.asp 一.背景介绍 1.1 java消息服务: 不同系统之间的信息交换,是我们开发中比较常见的场景,比如系统A要 阅读全文

posted @ 2019-01-30 09:49 panchanggui 阅读(156) 评论(0) 推荐(0) 编辑 |

摘要:前面我们已经搭建和配置好了ActiveMQ,下面来看一个Demo,体验一下MQ。 JMS 消息模型 JMS消息服务应用程序结构支持两种模型:点对点模型,发布者/订阅者模型。 (1)点对点模型(Queue) 一个生产者向一个特定的队列发布消息,一个消费者从这个队列中依次读取消息。 模型特点:只有一个消 阅读全文

posted @ 2019-01-29 17:35 panchanggui 阅读(223) 评论(0) 推荐(0) 编辑 |

摘要:这里就不说怎么安装了,直接解压出来就行了。 目录: 一:JMQ的两种消息模式 1.1:点对点的消息模式 1.2:订阅模式 二:点对点的实现代码 2.1:点对点的发送端 2.2:点对点的接收端 三:订阅/发布模式的实现代码 3.1:订阅模式的发送端 3.2:订阅模式的接收端 四:发送消息的数据类型 4 阅读全文

posted @ 2019-01-29 17:30 panchanggui 阅读(331) 评论(0) 推荐(0) 编辑 |

摘要:Kafka应用场景 消息系统或是说消息队列中间件是当前处理大数据一个非常重要的组件,用来解决应用解耦、异步通信、流量控制等问题,从而构建一个高效、灵活、消息同步和异步传输处理、存储转发、可伸缩和最终一致性的稳定系统。当前比较流行的消息中间件有Kafka、RocketMQ、RabbitMQ、ZeroM 阅读全文

posted @ 2019-01-29 14:12 panchanggui 阅读(2961) 评论(0) 推荐(2) 编辑 |

摘要:何时使用MQmq作为一种基础中间件在互联网项目中有着大量的使用。 一种技术的产生自然是为了解决某种需求,通常来说是以下场景: 需要跨进程通信:B系统需要A系统的输出作为输入参数。当A系统的输出能力远远大于B系统的处理能力。针对于第一种情况有两种方案: 使用RPC远程调用,A直接调用B。使用MQ,A发 阅读全文

posted @ 2019-01-29 14:06 panchanggui 阅读(183) 评论(0) 推荐(0) 编辑 |

摘要:几种MQ产品说明: ZeroMQ : 扩展性好,开发比较灵活,采用C语言实现,实际上他只是一个socket库的重新封装,如果我们做为消息队列使用,需要开发大量的代码 RabbitMQ :结合erlang语言本身的并发优势,性能较好,但是不利于做二次开发和维护 ActiveMQ: 历史悠久的开源项目, 阅读全文

posted @ 2019-01-29 13:43 panchanggui 阅读(813) 评论(0) 推荐(0) 编辑 |

摘要:转自:https://segmentfault.com/a/1190000005988895 前言 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对服务雪崩, 一种常见的做法是手动服务降级. 而Hystrix的出现,给我们提供了另一种选择. 阅读全文

posted @ 2019-01-29 09:31 panchanggui 阅读(88) 评论(0) 推荐(0) 编辑 |

摘要:一、前言 在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是 A 系统调用 B 系统服务,B 系统调用 C 系统的服务。当尾部应用 C 发生故障而系统 B 没有服务降级时候可能会导致 B,甚至系统 A 瘫痪,这种现象被称为雪崩现象。所以在系统设计时候要使用一定的降级策略,来保证当 阅读全文

posted @ 2019-01-28 17:06 panchanggui 阅读(98) 评论(0) 推荐(0) 编辑 |

摘要:记得在三年前公司因为业务发展需要,就曾经将单体应用迁移到分布式框架上来。当时就遇到了这样一个问题:系统仅有一个控制单元,它会调用多个运算单元,如果某个运算单元(作为服务提供者)不可用,将导致控制单元(作为服务调用者)被阻塞,最终导致控制单元崩溃,进而导致整个系统都面临着瘫痪的风险。 那个时候还不知道 阅读全文

posted @ 2019-01-28 17:00 panchanggui 阅读(3740) 评论(0) 推荐(1) 编辑 |

摘要:生产者保证消息可靠投递 消费者保证消息可靠消费 RabbitMQ持久化 参考:https://blog.csdn.net/RobertoHuang/article/details/79605185 阅读全文

posted @ 2019-01-28 16:19 panchanggui 阅读(235) 评论(0) 推荐(0) 编辑 |

摘要:转自:https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html RabbitMQ基础知识 一、背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然 阅读全文

posted @ 2019-01-28 14:22 panchanggui 阅读(78) 评论(0) 推荐(0) 编辑 |

摘要:一、rabbitMQ是什么: RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。 学过websocket的来理解rabbitMQ应该是非常简单的了,websocket是基于服务器和页面之间的通信协议,一次握手,多次通信。 而rabbi 阅读全文

posted @ 2019-01-28 13:51 panchanggui 阅读(941) 评论(0) 推荐(0) 编辑 |

摘要:原文地址:http://mp.weixin.qq.com/s/Brd-j3IcljcY7BV01r712Q 转自:https://blog.csdn.net/xybelieve1990/article/details/70313216/ 一、缘起 一切脱离业务的架构设计与新技术引入都是耍流氓。 引入 阅读全文

posted @ 2019-01-28 11:49 panchanggui 阅读(70) 评论(0) 推荐(0) 编辑 |

摘要:转自:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959519&idx=1&sn=065074b135fc9cb243abe897261e1a72&scene=21#wechat_redirect 近期参加一些业界的技术大会,“ 阅读全文

posted @ 2019-01-28 10:56 panchanggui 阅读(59) 评论(0) 推荐(0) 编辑 |

摘要:1.应用场景 1.1 异步处理 场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是必须的,它只是一个通知,而这种 阅读全文

posted @ 2019-01-28 10:34 panchanggui 阅读(878) 评论(0) 推荐(0) 编辑 |

摘要:主要原因:是在高并发情况下,由于来不及同步处理,请求往往会发生堵塞,比如诸多的insert、update之类的请求同时到达mysql,直接导致无数的行锁表锁,甚至最后请求会堆积很多,从而触发大量的too mang connnections错误。通过消息队列,我们可以异步处理请求,从而缓解系统的压力。 阅读全文

posted @ 2019-01-28 10:33 panchanggui 阅读(250) 评论(0) 推荐(0) 编辑 |

摘要:netty做集群 channel如何共享? 方案一: netty 集群,通过rocketmq等MQ 推送到所有netty服务端, channel 共享无非是要那个通道都可以发送消息向客户端, MQ广播+ 多Netty ,Netty收到MQ消息后,如果本地存储有该channel,就发送,没有存储就忽略 阅读全文

posted @ 2019-01-22 18:28 panchanggui 阅读(3956) 评论(0) 推荐(0) 编辑 |

摘要:你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构。 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案,但业 阅读全文

posted @ 2019-01-04 16:22 panchanggui 阅读(176) 评论(0) 推荐(0) 编辑 |

摘要:Docker、微服务日益火热的今天,相信标题上这些名词大家都不陌生。但也相信有很多同学并不够清楚他们的概念,不理解它们的关系,也可能有这样的疑惑:不知道跟我有没有关系?要不要学习?怎么去学习?学哪些东西?没关系,今天我们就从头捋捋,让大家都能得到自己的答案。 Docker诞生于2013年,之后就是迅 阅读全文

posted @ 2018-12-18 16:13 panchanggui 阅读(304) 评论(0) 推荐(0) 编辑 |

摘要:在微服务中,使用什么协议来构建服务体系,一直是个热门话题。 争论的焦点集中在两个候选技术: (binary) RPC or Restful。 以Apache Thrift为代表的二进制RPC,支持多种语言(但不是所有语言),四层通讯协议,性能高,节省带宽。相对Restful协议,使用Thrifpt 阅读全文

posted @ 2018-11-07 16:35 panchanggui 阅读(179) 评论(0) 推荐(0) 编辑 |

摘要:JavaEE 技术体系总结: 一:常见模式与工具 设计模式,流行的框架与组件 常见的设计模式,编码必备 Spring5,做应用必不可少的最新框架 MyBatis,玩数据库必不可少的组件 二:工程化与工具 工欲善其事必先利其器,不管是小白,还是资深开发,玩Java技术体系,选择好的工具,提升开发效率和 阅读全文

posted @ 2018-11-07 10:58 panchanggui 阅读(599) 评论(0) 推荐(0) 编辑 |

摘要:转载请说明出处:http://blog.csdn.net/cywosp/article/details/38026809 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上 阅读全文

posted @ 2018-10-24 10:32 panchanggui 阅读(417) 评论(0) 推荐(0) 编辑 |

摘要:转载请说明出处:http://blog.csdn.net/cywosp/article/details/38017027 在上一篇文章(http://blog.csdn.net/cywosp/article/details/38014581)中讲到了使用HTTP重定向来实现服务器的负载均衡,本文则讲 阅读全文

posted @ 2018-10-24 10:24 panchanggui 阅读(1813) 评论(0) 推荐(0) 编辑 |

摘要:转载请说明出处:http://blog.csdn.net/cywosp/article/details/38014581 由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大 阅读全文

posted @ 2018-10-24 10:23 panchanggui 阅读(1227) 评论(0) 推荐(0) 编辑 |

摘要:序: 对Web站点扩展一开始不宜过早,除非是基于高可用性和就近部署的考虑。但对于架构师而言,在架构设计之初就要有扩展的计划,关键是要清楚何时进行扩展。这里先介绍的是水平扩展,所谓的扩展是通过扩展规模来提升承载能力的本领。这种本领往体现在增加物理服务器或集群节点,这种本领发挥强,可提升的承载空间越大, 阅读全文

posted @ 2018-10-24 10:21 panchanggui 阅读(182) 评论(0) 推荐(0) 编辑 |

摘要:我秀中国物联网地图服务平台目前接入的监控车辆近百万辆,每天采集GPS数据7亿多条,产生日志文件70GB,使用传统的数据处理方式非常耗时。 比如,仅仅对GPS做一些简单的统计分析,程序就需要几个小时才能跑完一天的数据,完全达不到实时分析的要求,更无法对数据进行一些深层次的挖掘。 另外历史数据的存储也是 阅读全文

posted @ 2018-10-24 10:02 panchanggui 阅读(1747) 评论(0) 推荐(0) 编辑 |

摘要:单体架构 在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开发、部署和维护的难度。这种用于简单的增删改查的数据访问框架(ORM)十分的重要。 SOA服务化架构 面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型, 阅读全文

posted @ 2018-08-22 16:30 panchanggui 阅读(1578) 评论(0) 推荐(0) 编辑 |

摘要:RPC Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Prov 阅读全文

posted @ 2018-08-22 15:10 panchanggui 阅读(385) 评论(0) 推荐(0) 编辑 |

摘要:日志数据是最常见的一种海量数据,以拥有大量用户群体的电商平台为例,双 11 大促活动期间,它们可能每小时的日志数量达到百亿规模,海量的日志数据暴增,随之给技术团队带来严峻的挑战。 本文将从海量日志系统在优化、部署、监控方向如何更适应业务的需求入手,重点从多种日志系统的架构设计对比;后续调优过程:横向 阅读全文

posted @ 2018-08-20 15:01 panchanggui 阅读(2226) 评论(0) 推荐(1) 编辑 |

摘要:微博日活跃用户1.6亿+,每日访问量达百亿级,面对庞大用户群的海量访问,良好的架构且不断改进的缓存体系具有非常重要的支撑作用。本文将由新浪微博技术专家陈波老师,跟大家详细讲解那些庞大的数据都是如何呈现的。 本文大纲 1、微博在运行过程中的数据挑战 2、Feed平台系统架构 3、Cache架构及演进 阅读全文

posted @ 2018-08-20 14:49 panchanggui 阅读(553) 评论(0) 推荐(0) 编辑 |

摘要:作者:陈彩华 来自:51cto技术栈(ID:blog51cto) 本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。 缓存概述 缓存概述 缓存的分类 缓存主要分为四类,如下图: 缓存的分类 CDN 缓存 CDN(Content Delivery Network 内容分发网络)的 阅读全文

posted @ 2018-08-20 08:57 panchanggui 阅读(11000) 评论(0) 推荐(3) 编辑 |

摘要:转自: http://www.cnblogs.com/xiaoMzjm/p/5223799.html 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 用户模块 阅读全文

posted @ 2018-08-02 13:54 panchanggui 阅读(73) 评论(0) 推荐(0) 编辑 |

摘要:这两年,微服务这个概念火了,火到什么程度呢?2016年有一个统计说,两千家企业里,30%在使用微服务,15%在实验开发和测试微服务架构,24%在学习微服务准备转型,只有剩下的30%的企业没有使用微服务。 微服务到底有什么好呢?微服务在2013年才被提出,短短几年就有这么快速的发展。微服务架构能够实现 阅读全文

posted @ 2018-07-12 14:25 panchanggui 阅读(1930) 评论(0) 推荐(0) 编辑 |

摘要:目录如下: 一、微服务架构介绍 二、出现和发展 三、传统开发模式和微服务的区别 四、微服务的具体特征 五、SOA和微服务的区别 六、如何具体实践微服务 七、常见的微服务设计模式和应用 八、微服务的优点和缺点 九、思考:意识的转变 十、参考资料和推荐阅读 一、微服务架构介绍 微服务架构(Microse 阅读全文

posted @ 2018-07-11 17:03 panchanggui 阅读(166) 评论(0) 推荐(0) 编辑 |

posts - 633, comments - 19, trackbacks - 0, articles - 0

Copyright © 2020 panchanggui
Powered by .NET 5.0.0-rc.2.20475.5 on Kubernetes